Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Tut mir leid - das war mein Fehler, dass ich es nicht richtig erklärt habe. Ich schaue auf D1, 4Hr und schließlich 1Hr für die MA's auseinander gefächert werden (unter einer Last von anderen Filtern) - Sobald sie alle aufgereiht, auf der H1 wird es warten, bis jede Bar zieht zurück auf die 21 EMA ONCE, und dann von dort wird es eine Bestellung über die Hochs und einen Stopp unter der 60 EMA - ATR.
Der Pullback zum 21 EMA erfolgt nur einmal. Danach sucht er nicht mehr nach weiteren Rücksetzern auf den 21 EMA. Es sollte jedoch sicherstellen, dass der aktuelle offene PENDING-Auftrag mit den Lots, Stopps und Take Profits NACH jedem Stundenschluss genau auf dem neuesten Stand ist. Ich kann mir jedoch nicht erklären, warum es manchmal einwandfrei funktioniert und die Pending Order nach jedem H1-Schluss aktualisiert, und manchmal nicht? Der Grund, warum die Pending Order sich selbst aktualisiert, ist ""if(OrderStopLoss() < iMA(NULL, 60, MA_Period, 0, 1, 0, 0) - ATR) ".
Wenn das nicht zutrifft, dann nicht - ABER es gibt zahllose Fälle, in denen das zutrifft, und dennoch wird die Order nicht gelöscht und eine neue mit den neuen Werten platziert?
Ich bin mir nicht sicher, ob Sie etwas in dem obigen Code in Bezug auf das Video sehen können? (Erster Code, den Sie korrigiert haben). Ich hoffe, das ist klarer?
Ich denke, Sie müssen es auf die harte und mühsame Art und Weise tun ... drucken Sie die relevanten Variablen, bewegen Sie sich durch die Zeit in der Strategie-Tester, Tick für Tick, wenn nötig, zu überprüfen, was die Variablen sind ... dann, wenn Sie feststellen, dass sie etwas passieren sollte, und sie nicht können Sie in diesem Code zu konzentrieren.
Es ist relativ einfach, einfache Syntaxprobleme im Code eines anderen zu erkennen. Es ist schwieriger und sehr viel zeitaufwändiger, Fehler in der Kodierung der Strategie zu erkennen, denn dazu muss man die Strategie genauso gut, wenn nicht sogar besser verstehen als die Person, die die Kodierung vornimmt.
Eine Sache, über die ich mir im Klaren sein muss, ist dieser Code hier, in der Schleife, wie stelle ich sicher, dass er die OrderDelete()-Funktion ausführt und die Schleife bei jedem H1-Schluss ausgeführt wird? Liegt das daran, dass ich dies am "int start" habe, der anzeigt, ob die Schleife auf einer H1-Basis ausgeführt wird oder nicht? (Die "IsNewCandle()") ?
CheckForMATrade() wird einmal pro neuem Balken aufgerufen, wenn Sie auf einem H1-Chart laufen, wird das einmal zu Beginn des neuen H1-Balkens sein ... der Rest wird jeden Tick ausgeführt.
Berechnen Sie den korrekten ATR-Wert für den Beginn des neuen Balkens? wenn man bedenkt, dass Sie gerade erst mit Bar 0 begonnen haben, wollen Sie wirklich den MA auf der Grundlage von Bar 0 erhalten? Indikatoren sind nicht mein Ding, also gehen Sie nicht davon aus, dass ich sage, dass Sie falsch liegen, ich frage nur
Ja, ich habe gerade einen Ausdruck gemacht, um die MA-ATR-Mathematik zu überprüfen. Sie ist korrekt. Ich tue es auf Bar 1 (die zuletzt geschlossenen H1 bar). Die Mathematik ist richtig, ich glaube nur nicht, dass die Berechnungen konsequent auf JEDEN H1 Bar schließen getan werden...
Der MA liegt aber nicht auf Takt 1...
Eine letzte Frage, wenn es Ihnen nichts ausmacht - ich bekomme immer noch diesen blöden Order Modify error 1! Es stellt sich heraus, dass er von hier kommt, wenn ich ihn ausdrucke? Irgendwelche Ideen?
Guter Punkt - danke :) Ich glaube, ich weiß, warum die Order nicht gelöscht wird... WENN der OrderStopLoss NICHT > als der MA-ATR ist, dann tut er nichts... Es macht also Sinn... Nur manchmal schaue ich es mir an, und es ist, als ob es die Order nicht löschen und eine neue platzieren will, obwohl es das sollte?
Eine letzte Frage, wenn es Ihnen nichts ausmacht - ich bekomme immer noch diesen blöden Order Modify error 1! Es stellt sich heraus, dass er von hier kommt, wenn ich ihn ausdrucke? Irgendeine Idee?
Das ist das Problem... (ähnlich für OP_SELL)
if( OrderStopLoss() < BuyStopPrice )
. . . und wenn Sie eine Fehlermeldung 1 erhalten, liegt das daran, dass OrderStopLoss() == BuyStopPrice ist, so dass Sie die Order so ändern, dass sie denselben StopLoss-Wert hat, daher Fehlermeldung 1, und jetzt fragen Sie sich, wie einerseits OrderStopLoss() == BuyStopPrice und andererseits OrderStopLoss() < BuyStopPrice
Sind Sie dem Link im Beitrag gefolgt und haben ihn gelesen, bis Ihnen die Augen bluteten? Ich wette, das haben Sie nicht... https://www. mql5.com/en/forum/146380 wenn Sie dieses Problem weiterhin ignorieren, wird es Sie immer wieder einholen und Sie werden weiterhin Zeit verschwenden... setzen Sie sich damit auseinander, verstehen Sie es, leiden Sie nicht länger darunter, seien Sie glücklich
Ok, ich werde durch alle, dass wieder zu lesen - zurück zu dem Problem mit dem Video angehängt, wie ich denke, ich habe es gelöst ist unten, ABER es funktioniert nicht auf der Buy-Seite? Aus irgendeinem Grund werden überhaupt keine Trades ausgelöst. Auf der Verkaufsseite funktioniert es jedoch GENAU so, wie ich es haben möchte.
Auf der Kaufseite ist alles genau umgekehrt. All diese if-Anweisungen sind nur gleitende Durchschnitte. Die spezifische Zeile, die ich geändert habe, ist "triggerBarTime+H1_high>= ema21". Auf der Kaufseite würde sie wie folgt aussehen: "triggerBarTime+H1_low<= ema21" - Wenn ich "triggerBarTime" herausnehme, funktioniert es sowohl bei Kauf- als auch bei Verkaufsaufträgen. Wenn ich jedoch "triggerBarTime" eintrage, funktioniert es perfekt auf der Verkaufsseite (d.h., die Aufträge werden auf JEDEM Balken geschlossen, perfekt neu berechnet und ein neuer Auftrag mit angepassten Parametern platziert). ABER es werden keine Aufträge platziert und es wird auch nicht versucht, etwas auf der Kaufseite zu tun? Dies ist eine wirklich wichtige Änderung, die ich vornehmen muss...
Schauen Sie sich dieses Video an: http: //screencast.com/t/uJu3nlNxAXDF - Hoffentlich wird es hier wirklich gut erklärt!! :D
Keine Sorge, wenn Sie nicht helfen können :)