Balken aus Indikatoren zählen

 

Hi, habe folgendes Problem, möchte bei meiner Strategie einen Trend Indikator verwenden (siehe Att_1).

Im meinen Test EA (siehe Att_2) ist als Beispiel für OpenBuyOrder MACD drinnen und für CloseLongPositions ForexTrend_v2 drinnen, derzeit nur mit Wert = 1.

 

Wie kann ich nun bestimmen das CloseLongPositions nur ausgeführt wird wenn die Trend Bars mind. Für fünf Perioden bzw. Bars auf rot sind (siehe unteren Schnappschuss), wenn es weniger als fünf sind soll sich nichts tun!

 

Habe schon alles mögliche versucht mit Operanden FOR, PeriodSeconds().. leider ohne Erfolg.

 

Bedanke mich vorab für eure Hilfe!

Dateien:
 
andy.penez:

Hi, habe folgendes Problem, möchte bei meiner Strategie einen Trend Indikator verwenden (siehe Att_1).

Im meinen Test EA (siehe Att_2) ist als Beispiel für OpenBuyOrder MACD drinnen und für CloseLongPositions ForexTrend_v2 drinnen, derzeit nur mit Wert = 1.

 

Wie kann ich nun bestimmen das CloseLongPositions nur ausgeführt wird wenn die Trend Bars mind. Für fünf Perioden bzw. Bars auf rot sind (siehe unteren Schnappschuss), wenn es weniger als fünf sind soll sich nichts tun!

 

Habe schon alles mögliche versucht mit Operanden FOR, PeriodSeconds().. leider ohne Erfolg.

 

Bedanke mich vorab für eure Hilfe!

Bist das auch du?


https://www.mql5.com/en/forum/311895

 
andy.penez:

Hi, habe folgendes Problem, möchte bei meiner Strategie einen Trend Indikator verwenden (siehe Att_1).

Im meinen Test EA (siehe Att_2) ist als Beispiel für OpenBuyOrder MACD drinnen und für CloseLongPositions ForexTrend_v2 drinnen, derzeit nur mit Wert = 1.

 

Wie kann ich nun bestimmen das CloseLongPositions nur ausgeführt wird wenn die Trend Bars mind. Für fünf Perioden bzw. Bars auf rot sind (siehe unteren Schnappschuss), wenn es weniger als fünf sind soll sich nichts tun!

 

Habe schon alles mögliche versucht mit Operanden FOR, PeriodSeconds().. leider ohne Erfolg.

 

Bedanke mich vorab für eure Hilfe!

Prüf erst einmal die Fehlermeldungen, die im Log entstehen und dann check den iCustom-Aufruf...

 
Carl Schreiber:

Prüf erst einmal die Fehlermeldungen, die im Log entstehen und dann check den iCustom-Aufruf...

Hi, interessant hat wohl einer fast das gleiche Problem, wenn ich das wäre würde dort wohl beim Benutzer Andy.Penez stehen!?


Nun zum Thema, habe keine Fehlermeldungen. Nur schaffe ich es nicht im „ForexTrend_v2“ Indikator die „CloseLongPositions“ auszuführen, wenn mind. 5x hintereinander rote Balken (nicht blaue) vorkommen!

Habe folgendes mit iCustom versucht, bin aber nicht zum gewünschten Ergebnis gekommen, es wird auch bei blau geschlossen und so wie es ausschaut wird auch nicht richtig gezählt (siehe Schnappschuss)

  {
   int ticket = -1;
   double price;   
   
   
   //Close Long Positions
   double c0 = iCustom(NULL, PERIOD_CURRENT, "ForexTrend_v2", 7, 50.6, 3000, 1, 0);
   double c1 = iCustom(NULL, PERIOD_CURRENT, "ForexTrend_v2", 7, 50.6, 3000, 1, 1);
   double c2 = iCustom(NULL, PERIOD_CURRENT, "ForexTrend_v2", 7, 50.6, 3000, 1, 2);
   double c3 = iCustom(NULL, PERIOD_CURRENT, "ForexTrend_v2", 7, 50.6, 3000, 1, 3);
   double c4 = iCustom(NULL, PERIOD_CURRENT, "ForexTrend_v2", 7, 50.6, 3000, 1, 4);
   if( c0 == 1 && c1 == 1 && c2 == 1 && c3 == 1 && c4 == 1 //ForexTrend_v2 is equal to fixed value
   )
     {   
      if(IsTradeAllowed())
         myOrderClose(OP_BUY, 100, "");
      else //not autotrading => only send alert
         myAlert("order", "");
     }

Was mache ich falsch, hat jemand eine Idee?

 

So wie es ausschaut ist der Wert 1 für die roten Balken und 0 für die blauen, siehe Schnappschuss

Dateien:
snap_1.jpg  103 kb
snap_2.png  15 kb
Test_EA.mq4  9 kb
 
andy.penez: 

So wie es ausschaut ist der Wert 1 für die roten Balken und 0 für die blauen, siehe Schnappschuss

Dass muss nicht unbedingt so sein, der eine Balken, kann auch nur optisch über dem anderen liegen, dann wären beide 1.

Da hilft einfach der Blick in das Datenfenster, wenn Du die Maus über den Chart ziehst.

Weiters würde ich nicht unbedingt die double-Werte c0,..c4 mit Ganzzahlen vergleichen, sauberer und sicherer wäre: c==1.0. Dann entsteht das Problem dass Double-Zahlen meist nie genau 1 sind sondern zB 1.0000000000000000000000000000000000000000000000000000000001!

Also ich würde in Deinem Fall zB. empfehlen: if ( c0*c1*c2*c3*c4 > 0.5 ).

Außerdem kannst Du die Werte c0,..c4 mit Comment in dem EA auf dem Chart Dir anzeigen lassen und alles im visual Modus im Tester überprüfen...