Wie kann man erreichen, dass nur gehandelt wird, wenn die Korallenindy eine bestimmte Farbe hat?
10 Antworten
stearno
vor 13 Jahren #110903
Ich habe Schwierigkeiten mit dem beigefügten Indikator. Ich möchte, dass der EA nur einen Kaufauftrag ausführt, wenn die Koralle grün ist und nur einen Verkaufsauftrag, wenn die Koralle rot ist.
Es werden jedoch Kaufaufträge erteilt, wenn der Index rot ist, obwohl dies nicht der Fall sein sollte:
Als ich den Indy als benutzerdefinierten Indikator in den EA-Assistenten lud, hatte er 4 Ausgänge. Ich ging in MT4 und bewegte den Cursor herum und fand heraus, dass, wenn der Indy grün war, dann der Preis in das Feld Wert 2 war.
Wenn sie rot war, befand sie sich im Feld Wert 3.
Daher habe ich diese Ausgaben im Import von benutzerdefinierten Indikatoren des EA Wizard entsprechend benannt.
Dann habe ich eine Regel aufgestellt, die besagt, dass, wenn das Ausgabefeld 2 (mit der Bezeichnung "grün") größer als 0 ist (denn wenn es nicht grün ist, ist es 0), nur Kaufaufträge ausgeführt werden. Wenn das Feld 3 größer als 0 ist (denn wenn es rot ist, füllt es das Feld 3), dann nur Verkaufsaufträge ausführen.
Aber leider. Wie Sie sehen können
es macht einen Kaufauftrag, wenn es rot ist. Können Sie mir helfen, wie ich das beheben kann oder was ich falsch mache?
Danke,
Stearno
0
stearno
vor 13 Jahren #120944
Ich dachte, ich würde eine Fehlersuche bei den Korallen durchführen...vielleicht könnte ich das Problem herausfinden. Als erstes musste ich feststellen, ob die Koralle das Problem überhaupt verursacht. Also tauschte ich sie gegen einen normalen Gleitenden Durchschnitt aus. Die Regel besagte, dass, wenn der HA-Schlusskurs unter dem MA lag, nur Verkaufsaufträge möglich waren. Liegt er darüber, dann nur Kaufaufträge.
. Es hat nicht funktioniert. Das bedeutet also, dass das Problem nicht bei den Korallen lag...
Schritt zwei. Vielleicht war mein Code falsch. Also einfachste Sache, machen einfachen Code. Also schuf ich eine neue Strategie und hatte nur auf MACD Kreuz, es würde kaufen und Reverse-Kreuz es verkaufen würde.
. Getestet die EA und es war kaufen und verkaufen, wie es sollte.
Ich fügte dann zu diesem funktionierenden EA hinzu, dass der Schlusskurs unter einem Exponential MA liegen musste, um zu verkaufen
und musste für den Kauf über dem MA schließen (außerdem wurde der reguläre Preis anstelle von HA verwendet, um HA aus den Variablen auszuschließen)
.
Die Strategie wurde ausgeführt und es wurde immer noch oberhalb des MA verkauft und unterhalb des MA gekauft.
Fazit: Es gibt nur zwei Dinge, die in diesem Prozess der Eliminierung von Variablen konstant sind, und das bin ich selbst und die Software. Also muss einer von beiden die Ursache sein. Höchstwahrscheinlich bin ich es, denn Mark ist ein besserer Programmierer als ich, also sehen Sie sich bitte meinen beigefügten Code an und sagen Sie mir, was ich falsch gemacht habe, damit es nicht so funktioniert, wie ich es gerne hätte. Ich habe meine ursprüngliche MA beigefügt. Ich danke Ihnen im Voraus für Ihr Feedback.
Ich danke Ihnen!
-Stearno
0
Mark Fric
vor 13 Jahren #120964
Hallo Stearno,
Dieser THV 4HA-Indikator, den Sie in Ihrer Strategie verwenden, ist der gleiche wie THV4 Coral?
THV 4HA hat einen zusätzlichen True/False-Parameter, daher nehme ich an, dass es sich um einen anderen Indikator handelt. Können Sie es posten, damit ich es damit testen kann?
Als ich Ihre einfache Version des EA mit nur MACD und gleitendem Durchschnitt getestet habe, hat er nie einen Verkauf über MA oder einen Kauf unter MA eröffnet.
Könnten Sie mir die Strategie schicken, die dies mit Ihren Tests erreicht?
Mark
Mark
StrategyQuant Architekt
0
stearno
vor 13 Jahren #120976
Ich habe die THV HA beigefügt. Ich habe es mit der HA indi versucht, die mit EA Wizard kommt, und ich habe es mit rohen Preisdaten (EA Wizard Dateien von jedem beigefügt) versucht. Ich habe auch versucht, ohne Korallen und verwendet eine regelmäßige MA, die als auch beigefügt ist. Sie alle endeten im gleichen Ergebnis.
Ich bin auch auf meiner Arbeit Computer gerade jetzt, so dass ich es auf diesem PC versucht, um die Ursache der spezifischen MT4 app auf meinem persönlichen Computer auszuschließen. Es hatte das gleiche Ergebnis, so ist es nicht die spezifische MT4 ich verwendet wurde.
Ich habe eine Teststrategie für den Kauf/Verkauf auf der Grundlage des Kreuzes über/unter 0 des MACD entwickelt. Kaufen, wenn über MA und verkaufen, wenn unter MA. Es funktionierte. So scheint es, es ist etwas falsch in der Art, wie ich es codiert.
Ich freue mich auf Ihre Rückmeldung, was in meiner Kodierung falsch ist und dieses Problem verursacht.
-stearno
0
Mark Fric
vor 13 Jahren #120979
Hallo,
Ich habe den Fehler gefunden, das Problem liegt im Coral-Indikator. Zum Beispiel für kurze Regel haben Sie eine Bedingung iCustom(THV4 Coral, Rot) > Close.
Das Problem ist, dass, wenn der Coral-Indikator ansteigt (grün), kein Wert für Rot definiert ist, und der Indikator nicht 0 zurückgibt (wie ich es erwarten würde), sondern eine maximale doppelte Zahl.
Dieser Vergleich ist also immer zutreffend und hindert Ihren EA nicht daran, Short-Trades zu tätigen.
Eine Lösung wäre die Verwendung des Wertes von Coral, nicht von Red/Green, wie folgt: iCustom(THV4 Coral, Coral)
eine andere Lösung wäre zu prüfen, ob der Rückgabewert von THV4 Coral nicht größer als 1000 ist - das bedeutet, dass er keinen Wert hat.
Mark
Mark
StrategyQuant Architekt
0
stearno
vor 13 Jahren #120983
Okay, ich bin in den Code des Indikators gegangen und habe anhand Ihrer Hinweise auf die Grundursache herausgefunden, wo die Puffer auf "= Empty_Value" gesetzt wurden. Ich änderte den leeren Wert auf 0. Jetzt funktioniert es.
Ein lustiger Nebeneffekt ist, dass, wenn die Koralle von rot zu gelb wechselt, das Rot eine gerade Linie zum Nullpunkt bildet und das Grün eine gerade Linie vom Nullpunkt bis zur Korallenlinie. Das sieht irgendwie lustig aus.
Aber wie auch immer, das ist, was ich mit dem EA verwenden und dann die richtige indy auf dem Diagramm verwenden.
Nochmals vielen Dank!
-Stearno
0
stearno
vor 13 Jahren #120984
Okay, jetzt funktioniert der EA also, nachdem ich die von Ihnen genannten Änderungen vorgenommen habe.
Ich ging dann und fügte einige Regeln ein wenig, um weiterhin auf diese EA bauen. Die letzte, die funktioniert ist #5 (beigefügt) und es kompiliert gut.
Aber als ich zu #6 und #6b kam, wo ich einen TRIX-Indikator hinzufügte, versuchte ich, ihn zu kompilieren, und im MetaEditor gab es Fehler. Ich kehrte zum EA-Assistenten zurück und führte einen "Gültigkeitstest" durch, der mir zeigte, dass es sich um einen gültigen EA handelte. Ich dachte dann, es könnte das Problem sein, das ich zuvor mit der MT4-Build-Nummer hatte, die eine niedrigere Version war als die des MetaEditor-Build-Nummer. Also habe ich versucht, es mit beiden MetaEditoren zu kompilieren, aber das Problem wurde nicht behoben.
Was muss ich tun, um dies zu beheben, da der EA-Assistent sagt, dass es ein gültiger EA ist, aber MT4 gibt eine Warnung beim Kompilieren es. Ich habe die Log-Dateien angehängt, so können die Fehler sehen, die ich erhielt (in den gezippten Dateien).
Ich habe gerade einen Test durchgeführt und nur diesen einen Indikator zu #5 hinzugefügt. Dieser Indikator ist es, der die Probleme verursacht. Ich habe mir die mq4-Datei angesehen und es sieht so aus, als ob die Probleme durch die externen Parameter verursacht werden. Ist dies korrekt? Was muss ich tun, um die Datei benutzbar zu machen? Und warum sagt der EA-Assistent, dass die Datei gültig ist?
**Aktualisierung**
Ich bin den Code durchgegangen und habe die Elemente entfernt, die die Fehler verursachen. Jetzt funktioniert es. Vielleicht kann die Gültigkeitsprüfung auch dies überprüfen? Es war ein wenig verwirrend, warum EA Wizard es zuließ, aber MT4 es ablehnte.
-Stearno
0
Mark Fric
vor 13 Jahren #121000
Hallo,
Ihr Beitrag enthielt keinen Anhang, können Sie mir also sagen, wo der Fehler liegt?
Der EA-Assistent kann keine MetaTrader-Compiler-Fehler überprüfen, wenn der benutzerdefinierte Indikator Fehler enthält.
Ich kann jedoch die Gültigkeitsprüfung verbessern, bitte teilen Sie mir nur mit, wo das Problem lag.
Mark
Mark
StrategyQuant Architekt
0
stearno
vor 13 Jahren #121016
Mark,
Entschuldigung, der Indikator ist beigefügt.
Ich verstehe, dass Validity keine MT4-Kompilierungsfehler überprüfen kann. Ich habe eher vermutet, dass es in seinem Test die gleiche Logik verwendet wie der MT4, der die Kompilierungsfehler produziert. Aber vielleicht ist das zu schwierig (zu viele mögliche Fehler) oder Sie haben keinen Zugriff auf den Softwarecode, um die Logik überhaupt zu sehen. Jedenfalls wollte ich diese Situation weitergeben, damit Sie entscheiden können, was Sie in Zukunft am besten tun (oder lassen) sollten. Ich habe mein Problem behoben, da ich einen modifizierten Indikator habe, der in einem EA besser funktioniert.
Danke
Stearno
0
Mark Fric
vor 13 Jahren #121027
Hallo,
das Problem mit diesem Indikator war wahrscheinlich, dass EA Wizard ihn nicht richtig erkannt hat, wir haben es in der neuesten Version behoben.
Es ist dem EA Wizard nicht möglich, den Code für MetaTader zu validieren, aber der von EAW generierte Code sollte ohne Probleme funktionieren.
Wenn Sie einen Kompilierungsfehler bei einem EA haben, der von EAW generiert wurde, senden Sie ihn mir einfach zu (sowohl sqw- als auch mq4-Dateien) und wir werden ihn uns ansehen.
Mit freundlichen Grüßen,
Mark
Mark
StrategyQuant Architekt
0
stearno
vor 13 Jahren #121030
Okay, ich gebe das weiter, falls es hilft.
Ja, ich stimme zu, dass der Indikator kompliziert ist. Fehler treten in jedem EA auf, wenn dieser Indikator verwendet wird. Daher habe ich eine einfache EA-Sqw-Datei angehängt, um die Kompilierungsfehler mit diesem Indikator zu zeigen. Wenn Sie die MQ4-Datei aus dem EA Wizard exportieren und kompilieren, werden Sie die Fehler sehen.
Außerdem habe ich denselben Indikator eingefügt, den ich im EA-Assistenten ändern konnte, damit er funktioniert.
0
Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
ex strat - kaufen unter ma.jpg
ex strat - von verkaufen über MA.jpg