Antwort

Fehler "Auftrag kann nicht gefunden werden".

3 Antworten

odomike

Abonnent, bbp_participant, Gemeinschaft, 32 Antworten.

Profil besuchen

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.

0

stearno

Kunde, bbp_participant, Gemeinschaft, 379 Antworten.

Profil besuchen

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

0

odomike

Abonnent, bbp_participant, Gemeinschaft, 32 Antworten.

Profil besuchen

vor 10 Jahren #123711

Tausend Dank, Stearno. Ich habe beschlossen, nicht mit dem Aufbau meines EA auf der Grundlage des SonicR-Systems fortzufahren. Mir sind einige Fehler aufgefallen, die mich zu dieser Entscheidung veranlasst haben.
Ich habe beschlossen, einen weiteren EA auf der Grundlage des RSIOMA_V2 Indikator. Ich habe den benutzerdefinierten Indikator zum EA-Assistenten hinzugefügt und er hat alle Indikatoreigenschaften erkannt. In meinen Strategieparametern habe ich die Indikatoreigenschaften als einige der vom Benutzer konfigurierbaren Parameter für den EA hinzugefügt. Nun, in den Strategieregeln, habe ich dies getan ... 
 
SpreadInPips <= MaxAllowedSpread (Der Standardwert hierfür ist 2. Ich versuche, dies zu verwenden, um "Whipsaws" von Nachrichtenmeldungen zu vermeiden, während der EA handelt)
RSIOMA kreuzt unter Sell_Trigger (Standardwert für RSIOMA ist 14 und Sell_Trigger ist 70)
 
Sobald der oszillierende RSIOMA unter 70 sinkt, sollte ein Verkauf ausgelöst werden. Das ist die Short-Entry-Regel.
 
Dann für Long Entry Rule:
 
SpreadInPips <= MaxAllowedSpread
RSIOMA kreuzt über Buy_Trigger (Standardwert für Buy_Trigger ist 30)
 
Die gleiche Idee wie der Verkaufstrigger ... RSIOMA geht über 30 und der EA löst einen Kaufhandel aus.
Und wenn der Trend bereits in Bewegung ist und es eine leichte Umkehrung gibt, und der Trend dann weitergeht, dann:
 
SpreadInPips <= MaxAllowedSpread
RSIOMA kreuzt unter Buy_Trigger
 
OR
 
SpreadInPips <= MaxAllowedSpread
RSIOMA kreuzt oberhalb von Sell_Trigger
 
Mein Problem ist, dass ich nicht weiß, wann ich Crosse unten oder Kreuze oben verwenden soll oder wie ich alles einrichten soll, damit es gut funktioniert. Und ich halte immer diese lästige Fehler in der Strategie-Tester-Journal: "BROKER STOP DIFFERENCE: 0.00". Ich weiß nicht, was das bedeutet. Dieser Fehler wird angezeigt, sobald der EA startet und dann platziert der EA keine Trades. Und ich bekomme immer diesen Fehler:
 
"TestGenerator: Nicht übereinstimmende Datenfehler (Hochwert 171,18600 am 2014.03.12 09:05 wird nicht vom kleinsten Zeitrahmen erreicht, Hochpreis 171,17400 stimmt nicht überein)"
 
Bitte helfen Sie mir hier weiter.
 
Zweitens, wie kontrolliere ich die Zeit, die der EA handelt und wann er nicht handeln sollte? Sagen wir zum Beispiel:
 
1. Ich möchte, dass mein EA den Handel von 1:00 bis 6:00 GMT beginnt, dann stoppt und keine weiteren Geschäfte mehr tätigt.
2. Dann beginnt wieder von 8:00 GMT bis 20:00
 
Wie kann ich das bewerkstelligen? Ich weiß, dass der EA-Assistent solche Aufgaben bewältigen kann, aber mit Leichtigkeit. Ich glaube, ich mache irgendetwas nicht richtig, und ich erhalte immer eine Fehlermeldung, wenn ich versuche, dies zu bewerkstelligen.
 
Nochmals vielen Dank für Ihre Hilfe und Unterstützung. Ich weiß das sehr zu schätzen.
——————————————————————————————
 
N.B: Das beigefügte Bild zeigt die möglichen Einstiegspunkte für Kauf- und Verkaufsaufträge im gezeigten Chart. Und die letzten 2 Teile der Strategieregeln sind nicht in der beigefügten Quelldatei enthalten. Bitte helfen Sie mir weiter.

0

stearno

Kunde, bbp_participant, Gemeinschaft, 379 Antworten.

Profil besuchen

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

 

 

0

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