Siehe dieses Thema, wahrscheinlich ein wenig verwirrend, aber Sie können die Idee zu finden.
Die MT5 Handelssystem ist sehr verschieden von MT4, so müssen Sie Ihr Denken zu ändern.

- www.mql5.com
Ich schreibe einen EA, der meinen für MT4 geschriebenen EA modifiziert. Ich eröffne eine Order mit OrderSend.
Einfach, wenn ich verstehen muss (perhasps von Geschichte), wenn der Auftrag gesendet (durch die Art und Weise.... Ich habe zu überprüfen, Order, Deals oder Position?), wurde geschlossen, weil es StopLoss erreicht hat.
Ich habe auf Foren überprüft, aber ich habe nicht gefunden, was ich brauche....
AUFTRAG_PREIS_AKTUELL | nur den aktuellen Preis des Auftragssymbols |
der nicht mitORDER_SL verglichen werden kann.Ich nehme an, ORDER_PRICE_CURRENT ist nur der aktuelle Preis des Symbols und nicht der Schlusskurs der Order.
Vielen Dank an alle für Ihre Unterstützung.
Ist es das?
//-------------------------------- ES CIERRE POR SL ---------------------------------------------- bool esCierreSL(int ind, int modoInd= SELECT_BY_TICKET, int modoHist= MODE_TRADES) { bool resp= OrderSelect(ind, modoInd, modoHist)? (StringFind(OrderComment(), "[sl]", 0)>-1): false; return(resp); }
Ist es das?
Die Frage ist über mql5, Ihr Code ist mql4.
Bestellung Kommentar ist nicht eine zuverlässige Art und Weise zu codieren.
Die Frage ist über mql5, Ihr Code ist mql4.
EinAuftragskommentar ist keine verlässliche Methode zur Codierung.
Sorry für necro, aber das ist meiner Meinung nach sehr interessant.
Ich bin dabei, den Übergang von mql4 zu mql5, und ich finde den Handel und Geschichte Systeme Änderungen ziemlich herausfordernd.
Um zu wissen, ob ein Handel auf Geschichte Buch geschlossen wurde für Stop-Loss, Take-Profit, oder sonst:
- In MT4 konnte man OrderStopLoss(), OrderTakeProfit() und OrderClosePrice() vergleichen, oder einfach OrderComment() überprüfen.
- Im MT5 scheint mir die einzige Möglichkeit zu sein, den Kommentar eines Geschäfts zu überprüfen: HistoryDealGetString(tk, DEAL_COMMENT)
Er ist interessant, aber wenn ich ihn richtig verstanden habe, zielt er auf die Identifizierung von Handelsänderungen auf der Grundlage der Ereignisbehandlung ab, on the fly.
Es muss also ein Programm vorhanden sein, das zuhört (wie ein Expert Advisor, der auf einem Chart läuft), sonst wird nichts erkannt.
Meiner Meinung nach muss die Erkennung des Grundes für die Schließung eines Handels im Handelsbuch erfolgen, weil dies der sicherste Weg ist (oder sein sollte), um zu wissen, was passiert ist, da es irgendwo geschrieben und nicht aus der Luft gegriffen ist.
Ist meine Analyse falsch? Was denken Sie?

- www.mql5.com
Marco: Sowohl MT4 als auch MT5 schreiben bei der Schließung einer Order für Stop-Loss oder Take-Profit [SL-Preis] oder [TP-Preis] in den Kommentar (auf unterschiedliche Weise... aber trotzdem). | Nein, das tun sie nicht. Das liegt an Ihrem Broker. Keine gute Idee, Makler können Kommentare ändern, auch komplett ersetzen. |
Nein, das tun sie nicht. Das ist Ihr Makler. |
Ok, sowohl MT4 und MT5 Broker setzen diese Zeichenfolge auf den Kommentar.. zumindest die wenigen, die ich getestet habe.
Und ich stimme zu, dass dies keine gute Idee ist, da der Kommentar durch die Hand des Brokers geändert werden kann.
Aber ich sehe nicht, wie das anders gemacht werden könnte, da ich keine anderen Spuren im Handelsbuch finden kann.
Gibt es eine bessere Möglichkeit, dieses Ziel zu erreichen?
Ich habe mich vor 2 Jahren an den Service Desk gewandt (bezüglich MT4).
und sie antworteten mir
Es wird also vom System gemacht, nicht vom Broker. Trotzdem ist es nicht hilfreich, wenn der Makler den Wert dann ändern kann.
Allerdings ist mir noch kein Fall bekannt, in dem der Makler den Auftragskommentar geändert hat.
In meinem Code ist es normalerweise wichtiger zu wissen, ob ein Handel mit Gewinn oder Verlust abgeschlossen wurde. Bei Verwendung eines Trailing-Stops kann ein Geschäft den SL treffen, aber immer noch im Gewinn sein.
Ich habe mich vor 2 Jahren an den Service Desk gewandt (bezüglich MT4).
und sie antworteten mir
also wird es vom System gemacht, nicht vom Broker. Trotzdem nicht hilfreich, wenn der Broker es dann doch ändern kann.
Allerdings ist mir noch kein Fall bekannt, in dem der Broker den Auftragskommentar geändert hat.
Normalerweise ist es in meinem Code wichtiger zu wissen, ob ein Handel mit Gewinn oder Verlust abgeschlossen wurde. Bei Verwendung eines Trailing-Stops kann ein Handel den SL treffen, aber immer noch im Gewinn sein.
Danke Keith, das hatte ich gehofft, da ich keinen besseren Workaround gefunden habe.
Ich glaube, beide Poster konvertieren MQL4 in MQL5
Wie auch immer, vergleichen Sie einfach den Schlusskurs mit dem Stoploss-Kurs.
Hinweis: In realen (insbesondere ECN) Konto, wahrscheinlich Trigger Preis hat eine Lücke zwischen voreingestellten Stoploss Preis, so verwenden Sie "<=" oder ">=".
Wie auch immer, vergleichen Sie einfach den Schlusskurs mit dem Stoploss-Kurs.
Hinweis: In realen (insbesondere ECN) Konten hat der Auslösepreis wahrscheinlich eine Lücke zwischen dem voreingestellten Stop-Loss-Kurs, also verwenden Sie "<=" oder ">=".
Sie können den Schlusskurs nicht mit dem Stop-Loss-Kurs vergleichen. Slippage bedeutet, dass der Schlusskurs höher oder niedriger als der Stop-Loss sein kann.
Daher ist "<=" oder ">=" nicht sinnvoll.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Ich schreibe einen EA, der meinen für MT4 geschriebenen EA modifiziert. Ich eröffne eine Order mit OrderSend.
Einfach, wenn ich verstehen muss (perhasps von Geschichte), wenn die Bestellung gesendet (durch die Art und Weise.... Ich habe zu überprüfen, Order, Deals oder Position?), wurde geschlossen, weil es StopLoss erreicht hat.
Ich überprüfte auf Foren, aber ich habe nicht gefunden, was ich brauche....
AUFTRAG_PREIS_AKTUELL
nur den aktuellen Preis des Auftragssymbols
der nicht mitORDER_SL verglichen werden kann.Ich nehme an, ORDER_PRICE_CURRENT ist nur der aktuelle Preis des Symbols und nicht der Schlusskurs der Order.
Vielen Dank an alle für Ihre Unterstützung.
EDIT :
Dieses Thema ist nun größtenteils veraltet, da MT5 seit Build 1640 neue Möglichkeiten bietet.
Siehe die letzten Beiträge des Themas für einige Beispiele.