Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 217

 
artmedia70:


Wenn ich versuche, Alert anzurufen, um das zu überprüfen, kommt nichts heraus. Das Problem ist, dass sich mein Indikator in den letzten drei Bars nicht verändert hat. Ich habe ihn so eingestellt, dass er falsche Bewegungen unterbindet.

Wenn ich zum Beispiel ein Wachstum sehe, geht es nach oben, aber wenn die nächsten Bewegungen innerhalb des angegebenen Filters stattfinden, ändert es sich nicht und bewegt sich ausschließlich horizontal. Nebhodhimosti, bevor der Indikator flach, vergleichen Sie die letzten beiden Werte und bestimmen den Trend. Wenn Sie möchten, kann ich Ihnen den Code schicken.

 
Forexman77:

Wenn ich versuche, Alert anzurufen, um das zu überprüfen, kommt nichts heraus. Das Problem ist, dass sich mein Indikator in den letzten drei Bars nicht verändert hat. Ich habe ihn so eingestellt, dass er falsche Bewegungen unterbindet.

Wenn ich zum Beispiel ein Wachstum sehe, geht es nach oben, aber wenn die nächsten Bewegungen innerhalb des angegebenen Filters stattfinden, ändert es sich nicht und bewegt sich ausschließlich horizontal. Nebhodhimosti, bevor der Indikator flach, vergleichen Sie die letzten beiden Werte und bestimmen den Trend. Wenn Sie möchten, kann ich Ihnen den Code schicken.

Ich habe Ihnen gezeigt, wie Sie den nächstgelegenen Extremwert der Indikatorlinie in Ihrem Expert Advisor finden können. nBars gleich Bars machen oder nBars einfach durch Bars ersetzen
 
artmedia70:
Ich habe Ihnen gezeigt, wie Sie den nächstgelegenen Extremwert einer Indikatorlinie in einem EA finden können. nBars gleich Bars machen oder nBars einfach durch Bars ersetzen

Viele Parameter werden nun angezeigt, wenn ein beliebiger Wert aufgerufen wird: a, b oder c.

Der Code des Indikators:

#property copyright ""
#property link      ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//--- input parameters

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,2);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,
    MA_1_t,                                                  
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   static double MA_otshet;
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
      if(raznica_static > -0.001 && raznica_static < 0.001)
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
      else
      if(raznica > -0.001 && raznica < 0.001)
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
      if((raznica > 0.001) || (raznica <- 0.001))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
Nein... Zeigen Sie mir lieber, was Sie in Ihrem EA machen. Wie erhalten Sie die Daten von Ihrem Indikator?
 
artmedia70:
Nein... Zeigen Sie mir lieber, was Sie in Ihrem EA machen. Wie nehmen Sie die Daten von Ihrem Induktor auf?

Nicht viel, versuchen, Alert und sehen die nächste hoch dort)

Laden Sie den Indikator auf den Tag, drei Tage ohne Veränderung, das muss das Problem seinA?

for (i=2; i<Bars; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1);
double b=iCustom(NULL, 0, "EMAF",0,0,i);
double c=iCustom(NULL, 0, "EMAF",0,0,i-1);
if ((a-b)*(b-c)<0) {
if (b<c) {
;// Boden gefunden
}
if (b>c) {
Alert ("b=",b) // Boden gefunden
}
}
}

 
Forexman77:

Nicht viel, versuchen, Alert und sehen die nächste hoch dort)

Laden Sie den Indikator auf den Tag, drei Tage ohne Veränderung, das muss das Problem seinA?

for (i=2; i<Bars; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1);
double b=iCustom(NULL, 0, "EMAF",0,0,i);
double c=iCustom(NULL, 0, "EMAF",0,0,i-1);
wenn ((a-b)*(b-c)<0) {
wenn (b<c) {
//Finden Sie den Boden
}
wenn (b>c) {
Alert ("b=",b)// Pflock gefunden
}
}
}

Das kann nicht das Problem sein. Wir haben eine Schleife vor Bars gemacht. Schreibpause nach der Meldung;
 
artmedia70:
Das kann nicht das Problem sein. Wir haben die Schleife vor Bars gemacht. Nach der Warnung schreiben Sie break;

.
Nach der Pause erscheint eine Meldung. Aber der Wert stimmt nicht mit dem Indikator überein, vielleicht ist etwas mit dem Indikator selbst nicht in Ordnung?
Der Indikator zeigt die Linie so an, wie ich sie brauche. Die Berechnung des Indikators basiert auf drei Bedingungen, die der aktuellen Situation entsprechen.
 
Forexman77:
Nach der Pause erscheint eine Meldung. Aber, der Wert stimmt nicht mit dem Indikator überein, vielleicht stimmt etwas mit dem Indikator selbst nicht?
Der Indikator zeigt die Linie so an, wie ich sie brauche. Der Indikator wird anhand von drei Bedingungen berechnet, die der aktuellen Situation entsprechen.

Anstelle von Alert("b=",b); Typ:

Alert("Цена b="+DoubleToStr(b,Digits)+"\nВремя бара="+TimeToStr(Time[i]));
 
artmedia70:

Anstelle von Alert("b=",b); Write:



Ich kann es nicht, ich habe es auf verschiedene Arten versucht. Die Werte sind eindeutig nicht angemessen,

Ja und Zeit in allen Werten "Bar time=2010.11.04 00:00". Aufruf durch das Skript.

Höchstwahrscheinlich liegt das Problem beim Indikator: Der Wert wird aus

ExtMapBuffer1[i]

der sich aus drei verschiedenen Bedingungen ergibt, die der aktuellen Zeit entsprechen.

Wenn ich den aktuellen EURUSD-Wert nenne, ist alles in Ordnung: 1,3717, was man von den Höchstständen nicht sagen kann.

 
Leute, könntet ihr mir bitte den Code nennen, der den Saldo vom Monatsanfang anzeigt?