Wer kann mir helfen, nächsten Trade erst bei Signalwechsel

 

Kann mir jemand schreiben wie ich im MQL5 eingeben kann, dass der nächste Trade erst erfolgen soll, wenn ein Signalwechsel stattfindet.

Bsp1: Es kommt vor, dass wenn ich einen EA erstmalig verwende, er sofort in die Richtung einsteigt, wo er gerade sein Signal bekommt. Ich möchte aber erst einsteigen, wenn zum ersten mal das Signal (kaufen oder verkaufen) wechselt, also wenn ein Signalwechsel von kaufen auf verkaufen oder von verkaufen auf kaufen wechselt.

Bsp2: Es kommt vor, dass wenn ein Stopp ausgeführt wird, dass sofort wieder ein Trade in die selbe Richtung eröffnet wird, weil im Speicher immer noch das selbe Signal ist, wie der ausgestoppte Trade ausgelöst wurde. Ich möchte aber, dass wenn ein Stopp ausgelöst wurde, der nächste Trade erst wieder eröffnet wird, wenn sich das Signal (kaufen oder verkaufen) wechselt, also wenn ein Signalwechsel von kaufen auf verkaufen oder von verkaufen auf kaufen wechselt.

Teilen Sie mir einfach die Zeilen mit, welche ich einfügen muss und wo ich es einfügen muss. Ich denke bei Bsp1 wo anders als bei Bsp2, da Bsp1 nur beim ersten Start, bei Bsp2 nach jeder ausgestoppten Position erforderlich.

Vielen Dank für Ihre Hilfe.

 

Entweder die Order per Bar ausführen lassen oder aber die Order nur ausführen lassen wenn sich die indis kreuzen (je nachdem welche indis genutzt werden). Du hast wahrscheinlich eine "größer/niedriger als" funktion im code. Daher geschieht das.

 
Manfred289:

Kann mir jemand schreiben wie ich im MQL5 eingeben kann, dass der nächste Trade erst erfolgen soll, wenn ein Signalwechsel stattfindet.

Bsp1: Es kommt vor, dass wenn ich einen EA erstmalig verwende, er sofort in die Richtung einsteigt, wo er gerade sein Signal bekommt. Ich möchte aber erst einsteigen, wenn zum ersten mal das Signal (kaufen oder verkaufen) wechselt, also wenn ein Signalwechsel von kaufen auf verkaufen oder von verkaufen auf kaufen wechselt.

Bsp2: Es kommt vor, dass wenn ein Stopp ausgeführt wird, dass sofort wieder ein Trade in die selbe Richtung eröffnet wird, weil im Speicher immer noch das selbe Signal ist, wie der ausgestoppte Trade ausgelöst wurde. Ich möchte aber, dass wenn ein Stopp ausgelöst wurde, der nächste Trade erst wieder eröffnet wird, wenn sich das Signal (kaufen oder verkaufen) wechselt, also wenn ein Signalwechsel von kaufen auf verkaufen oder von verkaufen auf kaufen wechselt.

Teilen Sie mir einfach die Zeilen mit, welche ich einfügen muss und wo ich es einfügen muss. Ich denke bei Bsp1 wo anders als bei Bsp2, da Bsp1 nur beim ersten Start, bei Bsp2 nach jeder ausgestoppten Position erforderlich.

Vielen Dank für Ihre Hilfe.

Kein Gewähr für korrekten Code (ist PseudoCode einfach runtergeschrieben, so als Idee...)

int NO_Signal =0;

int BUY_Signal =1;

int SELL_Signal =-1;

int gCurrentSignal ;

Ich würde in der Initphase (also beim Starten des EA) den leeren Signalstatus setze, z.B. als

gCurrentSignal  = NO_Signal;

.

Dann im OnTick Teil "einfach" prüfen:

if (gCurrentSignal  != GetCurrentSignal())

{

     int currentSignal  = GetCurrentSignal();

    if (gCurrentSignal == NO_Signal)

     {

                gCurrentSignal=currentSignal ;

     } else {

    gCurrentSignal=currentSignal ;

    if (gCurrentSignal == BUY_Signal)

     {

           // DoBuy

     } else {

           // DoSell

    }

}

}

 

Hallo Manfred,


einfach Zeilen mitteilen geht leider nicht so einfach.

Da kann man nicht mehr erwarten als ein Hinweis, wie z.B. globale Variablen nutzen, oder Uwe mit einem Pseudo-Code.

Bei der Nutzung von globalen bzw. statischen Variablen kannst Du den erstmaligen bzw. momentanen Status des EAs festhalten um danach entsprechend zu reagieren.



Gruß

Hanns.

Grund der Beschwerde: