Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Pfeile keine Objekte (http://www.expert-advisor.com/forum/showthread.php?t=6497)

Max2018 04.09.19 11:09

Pfeile keine Objekte
 
Hallo,

dieser "Markt" Indikator
https://www.mql5.com/de/market/product/33075#

zeichnet Signale in Form von Pfeilen in den Chart.
ABER diese Pfeile sind keine Objekte! (siehe Foto)

FRAGE 1: Was ist das und wie kann man solche Pfeile als Signal auslesen?
FRAGE 2: Kann man den Code von so einem Indikator der von der Marktplattform "MetaTrader" bereit gestellt wird irgendwie als mql4 auslesen?

https://c.mql5.com/31/315/high-volum...creen-3456.png

AVT 04.09.19 14:25

Zitat:

Zitat von Max2018 (Beitrag 42818)
...
zeichnet Signale in Form von Pfeilen in den Chart.
ABER diese Pfeile sind keine Objekte! (siehe Foto)
FRAGE 1: Was ist das und wie kann man solche Pfeile als Signal auslesen?

Mach' mal das (Ansicht ->) Datenfenster auf. Da siehst Du die Buffer für die einzelnen Dinger.
Zitat:

Zitat von Max2018 (Beitrag 42818)
FRAGE 2: Kann man den Code von so einem Indikator der von der Marktplattform "MetaTrader" bereit gestellt wird irgendwie als mql4 auslesen?

So was nennt man Dekompilieren und "Das tut man nicht!" und zwar deshalb, weil Programmierer oft viel Arbeit in etwas stecken; wenn Sie OpenSource Fans sind, wird der Code unter einer Lizenz veröffentlicht, wenn nicht, dann sollte man das respektieren. AVT

Max2018 04.09.19 14:28

zu 1.) Danke. Im Datenfenster habe ich das Signal gefunden.
zu 2.) Stimmt, das sehe ich auch so..... Mir ging es nur um die Frage, wie ein Objekt erzeugt werden kann, was man dann aber nicht in der Objektliste sehen kann...... :confused:

AVT 04.09.19 15:34

Zitat:

Zitat von Max2018 (Beitrag 42821)
Mir ging es nur um die Frage, wie ein Objekt erzeugt werden kann, was man dann aber nicht in der Objektliste sehen kann...... :confused:

über Buffer so (haste lauter Bomben im Chart):
Code:

//=============================================================================
#property copyright  "© BigSister"
#property description "object demo"
#property strict

#property indicator_chart_window

#property indicator_buffers 3
#property indicator_color1 clrGold      // object
#property indicator_width1 2
#property indicator_color2 clrLimeGreen  // faster line
#property indicator_color3 clrMagenta    // slower line

//=============================================================================
extern int    EMA1peri    = 10;    // Ema1 Period
extern int    EMA2peri    = 20;    // Ema2 Period
extern int    WinDiNo      = 77;    // Wingdings Symbol number
extern bool  ShowLines    = false; // Show lines

//=============================================================================
// --- buffers
double Ema1Buff[];
double Ema2Buff[];
double ObjectBuff[];

//=============================================================================
int OnInit(void)
{
  IndicatorDigits(Digits);
  IndicatorShortName("DemoOBJ");
 
  IndicatorBuffers(3);
 
  SetIndexBuffer(0,ObjectBuff);                    // signal object
  SetIndexLabel(0,"Object");
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,WinDiNo);
 
  SetIndexBuffer(1,Ema1Buff);                      // faster line
  SetIndexLabel(1,"Ema1");
  if(ShowLines==true) SetIndexStyle(1,DRAW_LINE);
  else                SetIndexStyle(1,DRAW_NONE);
 
  SetIndexBuffer(2,Ema2Buff);                      // slower line
  SetIndexLabel(2,"Ema2");
  if(ShowLines==true) SetIndexStyle(2,DRAW_LINE);
  else                SetIndexStyle(2,DRAW_NONE);
 
  return(INIT_SUCCEEDED);
}

//=============================================================================
void OnDeinit(const int reason)
{
  // == print code why we were deinitialized
  Print(__FUNCTION__," DeInit reason code = ",reason);
}

//=============================================================================
int OnCalculate (const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
 
  int limit=rates_total-prev_calculated;
  if(prev_calculated>0) limit++;
  limit=Bars-MathMax(EMA1peri,EMA2peri);
 
  for(int i=limit; i>0; i--)
  {
      Ema1Buff[i]=iMA(NULL,0,EMA1peri,0,MODE_EMA,PRICE_CLOSE,i);
      Ema2Buff[i]=iMA(NULL,0,EMA2peri,0,MODE_EMA,PRICE_CLOSE,i);
   
      if    (  Ema1Buff[i+1]>=Ema2Buff[i+2]  //previous 1above2 now 1below2
              && Ema1Buff[i]<=Ema2Buff[i+1] )  ObjectBuff[i]=Ema1Buff[i+1];
      else if(  Ema1Buff[i+1]<=Ema2Buff[i+2]  // previous 1below2 now 1above2
              && Ema1Buff[i]>=Ema2Buff[i+1])  ObjectBuff[i]=Ema1Buff[i+1];
      else                                    ObjectBuff[i]=EMPTY_VALUE;
  }
 
  //== return the value of prev_calculated for next call
  return(rates_total);
}
//=============================================================================


Max2018 04.09.19 17:35

Aaah ok - Danke


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:43 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum