Fehler "Auftrag kann nicht gefunden werden".
3 Antworten
odomike
vor 10 Jahren #111948
Hallo,
Ich beschloss, einen EA zu erstellen, der auf dem manuellen Handelssystem von SonicR basiert (http://www.forexfactory.com/showthread.php?t=114792). Anstatt die gleichen benutzerdefinierten Indikatoren zu verwenden, die sie in der Strategie verwendet haben, habe ich beschlossen, MT4-Standardindikatoren zu verwenden (EMA 34 High und Low, CCI Period 63, SMA 10 Close), um die Strategie zu replizieren. Damit will ich sicherstellen, dass ich keine Probleme mit dem SQ EA Wizard habe. Ich hatte keine Probleme mit der Einrichtung der Strategie und der Handelsregeln in SQ, aber nach dem Speichern der .mql4-Datei und dem Backtesting in Metatrader 4 erhalte ich immer diesen "ORDER CANNOT BE FOUND"-Fehler im Tester-Journal und der EA platziert überhaupt keine Trades. Es ist so verwirrend, weil ich die Strategie und die Handelsregeln immer und immer wieder durchgegangen bin, um sicherzustellen, dass es keine Fehler gibt, und ich kann wirklich keine sehen. Warum bekomme ich also diese Fehler?
Kann mir bitte jemand helfen, dieses Problem zu lösen? Ich bin Ihnen wirklich dankbar für alle Ihre freundlichen Gesten.
Vielen Dank im Voraus.
~Michael.
N.B.: Da ich bei der Erstellung der Strategie keine benutzerdefinierten Indikatoren verwendet habe, können Sie sie sehr einfach auf Ihrem Computer nachbilden.
stearno
vor 10 Jahren #123679
Odomike,
Das Problem ist, dass sich in diesem EA 3 Regeln gleichzeitig über-/unterschreiten. Eine gute Faustregel ist es, nur eine Regel über/unter kreuzen, während die anderen Regeln sind mit > oder < statt.
Ich habe Ihre Indikatoren in einem Diagramm dargestellt, um zu zeigen, warum.
Die kleinen vertikalen blauen Linien zeigen an, wann die Kerze unter den MA1, dann unter den MA2 und dann unter den CCI der Stufe 2 kreuzt. Es gibt 6 Kerzen zwischen der ersten MA-Kreuzung und der Kreuzung des CCI. Da sich nicht alle zum gleichen Zeitpunkt kreuzen, erhalten Sie die Fehlermeldung.
Sie sollten also den Cross Below/Above für das letzte Element verwenden, das in der Reihenfolge der drei Indikatoren überquert wird. Wenn zum Beispiel der CCI immer als letztes gekreuzt wird, können Sie diese Regeln verwenden:
Lang
CCI kreuzt über Level 1
Angebot > MA1
Angebot > MA2
Wenn ein Indikator nicht immer als letzter kreuzt, d.h. in beliebiger Reihenfolge, dann können Sie die Regeln dementsprechend schreiben. Ihre Regeln könnten also lauten:
Lang
((( CCI kreuzt über Level 1
Angebot > MA1
Gebot > MA2)
OR (CCI > Stufe 1
Geldkurs kreuzt über MA1
Gebot > MA2)
OR (CCI > Stufe 1
Angebot > MA1
Bid kreuzt über MA2)))
Ich hoffe, das hilft.
-Stearno
odomike
vor 10 Jahren #123711
stearno
vor 10 Jahren #124327
Michael,
Gute Fragen.
Zur zeitlichen Eingrenzung habe ich Screenshots von dem beigefügt, was ich persönlich mache. Ich verwende die Stunde im Vergleich zu einer Variablen. Ich setze dann die Variablen in den Parametern für die Stunden, die ich handeln möchte.
Ich persönlich verwende zwei Stundensätze, damit ich die Möglichkeit habe, in zwei Sitzungen an einem Tag zu handeln (z.B. London Open und NY Open). Ich verwende Parameter, um die Variablen einzustellen, damit ich diese Parameter optimieren kann. Sie können diese Idee übernehmen und viele Variationen machen, die am besten zu dem passen, was Sie wollen.
Ich denke, Ihre Strategie sieht gut aus. Haben Sie versucht, einen Backtest durchzuführen? Übrigens habe ich festgestellt, dass es immer am besten ist, zuerst einen Backtest zu machen und zu sehen, dass die Aufträge ausgeführt werden und so weiter. Dann führe ich einen visuellen Backtest durch, um die Indikatoren, die der EA verwenden wird, auf dem Chart zu beobachten, damit ich jedes Mal, wenn der EA einen Auftrag öffnen oder schließen soll, visuell sehen kann, ob er das tut, was ich will. Ich kann dann ableiten, warum es nicht ist und lernen, wie man besser sagen, der Computer durch diese Bedingungen, wie zu tun, was ich will es zu.
Zu Ihren anderen Fragen, wann Sie >< und wann Sie das Kreuz oben/unten verwenden sollten.
Eine einfache Gedächtnisstütze, die ich benutze, um sie zu unterscheiden, ist: Kreuze oben/unten, der Anfang des Balkens muss auf der einen Seite sein und das Ende des Balkens auf der anderen Seite.
Mit >< ist es viel lockerer, da die Auswahl dieser Option nur bedeutet, dass der Balken über/unter dem Vergleichspunkt liegen muss. Es spielt keine Rolle, ob er jetzt darüber liegt, viele Balken zurückliegt, schon immer darüber lag, usw. Alles, was zählt, ist, dass in diesem Moment, in dem der EA diese Regel ausführt, der Wert größer oder kleiner als (oben oder unten) sein muss.
Zur Veranschaulichung habe ich ein kleines Diagramm mit Bildern beigefügt. Die rote Linie ist der gleitende Durchschnitt.
Wenn ich sage, Close[1] < Gleitender Durchschnitt, dann erhalte ich den Balken 'A'.
Wenn ich sage, dass Close[1] > Gleitender Durchschnitt, dann würde ich den Balken "C" erhalten.
Wenn ich sage, dass Close[1] über dem gleitenden Durchschnitt liegt, dann erhalte ich den Balken "B".
Im Grunde müssen wir uns fragen: "Möchte ich, dass mein Indikator zu diesem Zeitpunkt (im obigen Beispiel verwenden wir den Schlusskurs des letzten Balkens zu diesem Zeitpunkt, Close[1]) über dem Schlusskurs oder unter dem Schlusskurs liegt, oder möchte ich das Tief des letzten Balkens auf der einen Seite des Indikators und das Hoch auf der anderen Seite haben.
Vielleicht könnte ein Beispiel helfen. Hier ist ein Beispiel für etwas, das ich bei der Verwendung dieser Vergleiche gelernt habe:
Bei Verwendung von > 30 Pips. Also, wenn der Auftrag bei 29 Pips Gewinn und nächste ging auf 30 Pips, die Regel ausgelöst, die Aktion zu schließen 50% des Auftrags. Auf der nächsten Bar, ging der Auftrag zu 31 Pips Gewinn. Raten Sie mal. Der Gewinn der Order ist immer noch größer als 30 Pips. Also wurde die Aktion erneut ausgelöst und 50% des Auftrags geschlossen. So ging es weiter, bis nur noch ein Mini-Lot vorhanden war und 50% nicht mehr geschlossen werden konnten. Aber ich werde sagen, Backtesting dies war lustig, weil, wenn ich die EA visuell beobachten würde, würde es Aufträge wie ein Maschinengewehr Spray schließen.
So fand ich heraus, die Ursache dafür war, weil ich Profit > 30 Pips verwendet. Und was ich nicht erinnern war, dass 31, 32, 33, 34 Pips sind alle größer als 30. Also habe ich schließen 50%, wenn Profit Crosses über 30 Pips. Also das funktioniert, würde es gehen von 29 bis 30 Pips in einem bar, und dann schließen 50% meiner Bestellung. Also jetzt, wenn es ging bis zu 31, 32, 33, 34 Pips der Gewinn, es würde nicht schließen mehr Aufträge.
Aber das Problem mit dieser Regel war, wenn der Gewinn wieder auf 25, dann wieder auf 29 und 30 gehen würde und es würde 50% der Bestellung schließen, weil die Regel wieder erfüllt war. (Das hat nichts damit zu tun, aber ich habe das Problem so gelöst, dass die Regel beim Schließen von 50% der Order auch den Wert einer Variablen auf 2 gesetzt hat. Ich habe dann eine weitere Bedingung zur Regel hinzugefügt, die besagt, dass kein Teilschluss erfolgen soll, wenn diese Variable = 2 ist. Damit war das Problem gelöst und es wurde nur einmal geschlossen.)
Ich hoffe, die obigen Ausführungen sind hilfreich.
-Stearno
Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)