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
Ich habe eine MT4 EA, die ich versuche, MT5 mit MT4Orders zu portieren, so dass ich eine einzige Quelle beibehalten kann, aber ich habe in einige Probleme laufen ...
1) Wenn eine Order SL oder TP erreicht, werden die üblichen [sl]- oder [tp]-Texte nicht an den Order-Kommentar angehängt, wenn der EA während OrderSend() einen Kommentar hinzugefügt hat.
Ist dies ein normales MT5-Verhalten? Wenn ja, gibt es eine zuverlässige Methode, um festzustellen, ob eine Order tatsächlich SL/TP erreicht hat oder manuell geschlossen wurde?
(Der Versuch, durch die Überprüfung von Eröffnungskurs / Schlusskurs / SL / TP zu entscheiden, ist aufgrund von Slippage nicht zuverlässig - insbesondere wenn SL sehr nahe an TP verschoben wurde).
https://www.mql5.com/ru/forum/93352/page20#comment_7112531
https://www.mql5.com/ru/forum/93352/page18#comment_6246123
2) Wenn ein teilweiser Abschluss erfolgt, zeigen die Kommentare zu den offenen und geschlossenen Teilen der Bestellung nicht "an #xxxxxxxxx" und "von #xxxxxxxxx"
. Gibt es eine zuverlässige (und hoffentlich einfache) Möglichkeit, um festzustellen, was mit einer bestimmten Bestellung passiert ist?
Ich verstehe aus dieser Beschreibung nicht, welches Problem Sie lösen müssen.
3) Die Ticketnummer eines offenen Handels ändert sich, wenn er geschlossen wird, so dass ich OrderTicket() nicht verwenden kann, um einen Auftrag zu verfolgen, aber OrderTicketID() scheint wie OrderTicket() in MT4 zu funktionieren und behält die gleiche ID für einen geschlossenen Handel.
Ist dieser Wert konstant, oder kann er sich zwischen Neustarts der Plattform ändern?Wenn er konstant ist, was ist der beste Weg, OrderTicketID() zu verwenden, aber die Kompatibilität mit MT4 beizubehalten (da OrderTicketID() keine MT4-Funktion ist)?
** OrderTicketID() scheint die MT4_TICKET_TYPE Direktive zu ignorieren und ist immer "long".SELECT_BY_TICKET arbeitet korrekt mit OrderTicket/OrderTicketID/OrderTicketOpen. Alle Funktionen von MT4Orders ändern ihre Werte nach dem Neuladen des Terminals nicht.
Dieselbe OrderTicketID in MT5 kann mehrere geschlossene Positionen haben (im Falle von Teilschließungen). Aus dem gleichen Grund können eine offene Position und eine geschlossene Position die gleiche OrderTicketID haben. Wegen dieser Mehrdeutigkeit verwendet MT5 OrderTicket - ein eindeutiges Ticket für jede geschlossene/offene Position.
Dieses Bibliotheksupdate wurde plattformübergreifend durchgeführt (MT4-Kompatibilität).
. Gibt es eine zuverlässige (und hoffentlich einfache) Möglichkeit, um festzustellen, was mit einer bestimmten Bestellung passiert ist?
Was ich meinte, war Folgendes:
Wenn Sie einen 1,00-Lot-Handel in MT4 mit der Ticketnummer 123456 haben und Sie 0,40 Lots teilweise schließen, dann wird die Ticketnummer 123456 auf der Registerkarte "History" als 0,40 Lots angezeigt und der Handelskommentar zeigt "to #NewTicket".
Auf der Registerkarte "Trades" erscheint ein neuer 0,60-Lot-Handel mit der Ticketnummer "NewTicket", und der Handelskommentar zeigt "from #123456".
Was ich meinte, war Folgendes:
Wenn Sie einen 1,00-Lot-Handel in MT4 mit der Ticketnummer 123456 haben und Sie teilweise 0,40 Lots schließen, dann wird die Ticketnummer 123456 auf der Registerkarte "History" als 0,40 Lots angezeigt und der Handelskommentar zeigt "to #NewTicket".
Auf der Registerkarte "Trades" erscheint ein neuer 0,60-Lot-Handel mit der Ticketnummer "NewTicket", und der Handelskommentar zeigt "from #123456".
Dieses Skript schafft Ihre Situation. Schreiben Sie deutlich, was Sie in dieser Situation erreichen wollen?
Dieses Skript schafft Ihre Situation. Schreiben Sie deutlich, was Sie in dieser Situation brauchen?
Im Testprogramm würde die folgende Zeile das Ticket #2 erstellen (die Eröffnungseinlage ist #1)
Wenn die nächste Zeile ausgeführt wird, sollte ein neues Ticket (#3) für 0,6 Lots geöffnet werden und Ticket #2 sollte in der Auftragshistorie als 0,4-Lot-Handel erscheinen.
In MT4 würde der Orderkommentar für #2 "to #3" und der Orderkommentar für #3 "from #2" lauten.
Im MT5 ist dies nicht der Fall - der Kommentar erscheint nicht auf den Registerkarten Trades / History, und OrdersToString() zeigt nur "0" für den Handelskommentar an.
Die gleiche Funktionalität sollte für den Tester und für den tatsächlichen Handel existieren - ich habe nur den Tester erwähnt, weil die Ticketnummern vorweggenommen werden können.
In MT4 würde der Auftragskommentar für Nr. 2 "an Nr. 3" und der Auftragskommentar für Nr. 3 "von Nr. 2" lauten.
Dies geschieht nicht in MT5 - der Kommentar wird nicht auf den Registerkarten Trades / History angezeigt, und OrdersToString() zeigt nur "0" für den Handelskommentar.
Wie Sie bereits bemerkt haben, erstellt MT5 keine spezifischen Kommentare bei Teilausführungen, wie es in MT4 der Fall ist.
MT4Orders wird niemals ein MT4-Verhalten emulieren. Diese Bibliothek wurde entwickelt, um die MT4-ähnliche Handels-API in MT5 zu nutzen. Nicht mehr und nicht weniger.
Das bedeutet, dass Sie, wenn Sie MT4 kennen, problemlos Handelslogik in MT5 schreiben können.
Wenn Sie einige subtile Eigenheiten der einzelnen Plattformen berücksichtigen müssen, gibt es dafür Makros.
Wenn es eine Aufgabe gibt, die Sie in MT5 nicht lösen können, gibt es hier Leute, die Ihnen helfen. Viele Dinge können über MT4Orders erledigt werden.
Wie Sie bereits bemerkt haben, erstellt MT5 während der Teilausführung keine Kommentare, wie es bei MT4 der Fall ist.
MT4Orders wird niemals ein MT4-Verhalten emulieren. Diese Bibliothek wurde entwickelt, um die MT4-ähnliche Handels-API in MT5 zu nutzen. Nicht mehr und nicht weniger.
Das bedeutet, dass Sie, wenn Sie MT4 kennen, leicht Handelslogik in MT5 schreiben können.
Wenn Sie einige subtile Besonderheiten der einzelnen Plattformen berücksichtigen müssen, gibt es Makros für diese.
Wenn es eine Aufgabe gibt, die Sie in MT5 nicht lösen können, gibt es hier Leute, die Ihnen helfen. Eine Menge Dinge können über MT4Orders erledigt werden.
Ja ... Ich habe erkannt, dass es durch das Verhalten von MT5 verursacht wurde und habe eine Lösung für dieses Problem gefunden. Für mich war es wichtiger, das [sl]/[tp]-Problem zu lösen, und das funktioniert jetzt einwandfrei - danke für die Information :)
Ich kopiere es und erhalte ein leeres Archiv
Ja, es ist leer. Das ist eine Störung der Website.
Aber laden Sie das Archiv nicht hoch, wenn der Code aktualisiert wurde. Das Zip ist nicht aktualisiert. Download nach Datei.
Interessanter Fall von MT5.
Der Take wurde teilweise ausgeführt, danach wurde er gelöscht. In diesem Fall haben wir eine Situation, dass DEAL_ORDER den Status ORDER_STATE_CANCELED hat, nicht FILLED/PARTIAL.
In diesem Fall ist DEAL_TIME_MSC nicht gleich ORDER_TIME_DONE_MSC.
Was war der ORDER_TYPE_FILLING in diesem Fall?
Ich handle über den Broker censor url. Bei der Einstellung von Take Profit ist der Standardwert ORDER_TYPE_FILLING == ORDER_FILLING_IOC. Ihr Fall sollte nicht mit IOC auftreten, richtig?