Antwort

Hilfe bei der Definition von Shift

4 Antworten

eawNewbie

Kunde, bbp_participant, Gemeinschaft, 11 Antworten.

Profil besuchen

vor 9 Jahren #113451

Ich verstehe auch nicht ganz, was Sie erreichen wollen, aber Sie können den Parameter Shift verwenden.

 

Shift = 0 bedeutet den Wert des aktuellen Balkens, Shift = 1 bedeutet den Indikatorwert des vorherigen Balkens und so weiter.

Shift = 9 bedeutet, dass der Indikatorwert 9 Takte zurückgeht.

Ich habe dies aus einem anderen Thread zitiert. Der Thread war nicht auf mein Problem anwendbar, aber dieser Beitrag ist es, also hoffe ich, dass es in Ordnung ist, ihn zu zitieren

 

 

Ich verstehe, dass Shift = 0 den aktuellen Balken bedeutet (z.B.: laufender Balken), was nicht klar ist, ist "Wert beim aktuellen Balken"?

 

Bedeutet die letzte Aussage "Shift = 0 bedeutet Wert zum aktuellen Balken" den Preis/Wert zum genauen Zeitpunkt des Ereignisses im Zeitrahmen des aktuellen Balkens?

 

Seitdem habe ich sowohl hier als auch bei MQL5 nach einer vollständigen Definition von Shift gesucht.

 

 

Ich bin auf dieses Problem gestoßen, als ich versucht habe, eine Position zu eröffnen, nachdem der aktuelle Balken mindestens 3 Pips über dem Hoch des vorangegangenen Balkens liegt.

 

Wird dieser Code inzwischen wie gewünscht funktionieren?

 

//Var

Versatz=3

 

//rule

Und (Hoch[0] > (Hoch[1] + ConvertToRealPips(Offset))

 

 

danke

0

eawNewbie

Kunde, bbp_participant, Gemeinschaft, 11 Antworten.

Profil besuchen

vor 9 Jahren #129243

Ich konnte die obige Bedingungsregel nicht zum Funktionieren bringen, also habe ich beschlossen, sie zu entfernen und stattdessen eine "enter at stop order" mit folgendem Code anzuwenden

 

      // Aktion
      sqOpenOrder("NULL", OP_BUYSTOP, getOrderSize(MagicLong, OP_BUYSTOP ), getOrderPrice(MagicLong), "", MagicLong, "OffsetBuy");
 

 

Leider schlägt auch dies fehl, also mache ich etwas falsch...?

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 9 Jahren #129245

ja, durch die Verwendung von Shift = 0 in High, Low oder Indikatoren erhalten Sie deren Werte zu dem angegebenen Zeitpunkt, als die Funktion aufgerufen wurde.

 

Wenn ich deinen Zustand prüfe

Und (Hoch[0] > (Hoch[1] + ConvertToRealPips(Offset))

 

funktioniert es richtig, was funktioniert bei Ihnen nicht? Wird sie zu anderen Zeiten geöffnet als erwartet?

 

Oder öffnet er überhaupt keine Geschäfte? Dann prüfen Sie das Fehlerprotokoll, ob es nicht einen Fehler gibt, Handelsgrößenfehler sind durchaus üblich.

Mark
StrategyQuant Architekt

0

eawNewbie

Kunde, bbp_participant, Gemeinschaft, 11 Antworten.

Profil besuchen

vor 9 Jahren #129287

Vielen Dank für Ihre Bestätigung von Shift.

 

Wenn ich die obige Regel verwende, scheint die Bedingung nicht erfüllt zu sein, da jede Aktion nach dem "then" nicht geparst wird. Ich kann keine Hinweise darauf finden, warum aus dem Lesen der Protokolle, auch mit verbose = 2 als ob es keinen Fehler nur die Bedingung nicht wahr zurück.

 

Ich habe die Bedingung entfernt, und die Trades werden wie erwartet geöffnet. Die Bedingung filtert alle Gelegenheiten während des Backtesting-Zeitraums heraus. Ich muss überprüfen, ob die Bedingung im Testzeitraum tatsächlich besteht. Ohne die Bedingung erhalte ich buchstäblich Hunderte von Trades, mit der Bedingung ergibt sich null Trades.

 

Wenn Sie sagen, dass es kein Problem mit der Bedingungsstruktur gibt, werde ich manuell überprüfen, ob die Bedingung tatsächlich existiert. Vielleicht werde ich versuchen, "ist größer als" in "ist kleiner als" zu ändern.

 

Was ist schneller, die Überprüfung der Bedingung innerhalb der Wenn-Anweisung oder die Überprüfung der Bedingung durch Änderung des Befehls "Open at Market" in "Open at Stop" und Durchführung des Tests, wenn der Stop innerhalb der "Dann-Anweisung" erreicht wird? Ich habe festgestellt, dass beim Hinzufügen des Befehls innerhalb des "then-Konstrukts" die Aktion nicht ausgeführt wird, aber die nächste Aktion wird ausgeführt.

0

eawNewbie

Kunde, bbp_participant, Gemeinschaft, 11 Antworten.

Profil besuchen

vor 9 Jahren #129288

Ok, ich habe es noch einmal versucht, und die Bedingung ist erfüllt

 

Ich weiß nicht, was da passiert ist. 

danke

0

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)