Bibliotheken: MT4Orders - Seite 62

 
Es handelt sich nicht um einen Fehler, sondern um einen Design-Fehler. Das Problem ist, dass die Marge auf der Ebene der Kontoeigenschaften berechnet wird, während sie auf der Ebene der Symboleigenschaften berechnet werden sollte.
 
fxsaber:

Bahnbrechendes Bibliotheks-Update! Die einzige Bibliothek der Welt, die in der Lage ist, die ständigen Fehlsynchronisationen der MT5-Handelsumgebung auszugleichen. Bescheiden, aber wahr.

Nach diesem Update wurden mehrere tausend Trades auf realen Konten bei verschiedenen Brokern durchgeführt. Die Analyse zeigte, dass der Synchronisationsmechanismus perfekt funktioniert.

Ich empfehle, ihn zu verwenden. Das macht Ihre Produkte noch zuverlässiger.

 

Kompilierungsfehler :

cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS'   MT4Orders.mqh   2448    55

Ich habe die neueste Version von KB heruntergeladen, nur für den Fall, dass es so ist: https: //www.mql5.com/ru/forum/170952/page203#comment_22563132

 
Igor Makanu:

Kompilierungsfehler:

Ich habe die neueste Version von KB heruntergeladen, nur für den Fall, dass es so ist: https: //www.mql5.com/ru/forum/170952/page203#comment_22563132

Sobald ich das Problem gelöst habe, werde ich es aktualisieren.

 
// Liste ändern:
// 01.06.2021
// Fix: Kompatibilität mit b2449+ Compiler.
// Fix: Verbesserte Synchronisation. ByPass.mqh muss auf dem neuesten Stand sein.
// Hinzufügen: OrderLots(true) - synchronisierte Größe der ausgewählten Position unter Berücksichtigung aller sie schließenden Aufträge.
// Problemlösung https://www.mql5.com/ru/forum/368178/page27#comment_22565676

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Maximale Wartezeit (in µs) für die Synchronisierung der Handelsumgebung
#include <MT4Orders.mqh> // https://www.mql5.com/de/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0);
  
  MT4ORDERS::OrderSend_MaxPause = 0;
    
  // Und jetzt einfach 0,1 Lot schließen, wenn das Positionsvolumen gleich 1 ist.
  // Zyklus - um die Ausführung des Skripts zu einem beliebigen Zeitpunkt zu emulieren.
  while (!IsStopped() && OrderSelect(Ticket, SELECT_BY_TICKET) && (OrderLots(true) == 1))
    OrderClose(OrderTicket(), 0.1, OrderClosePrice(), 0);
}
 

Auf meine Bitte hin hat die MetaQutoes das letzte Update der Bibliothek komplett ins Englische lokalisiert. Die neueste Version der Bibliothek ist jetzt auf der englischen Seite mit den ins Englische übersetzten Kommentaren im Quellcode verfügbar.


Dies unterscheidet sich von der vorherigen Version, die auf der englischsprachigen Seite verfügbar war.

// Liste der Änderungen:
// 02.11.2018
// Fix: Jetzt kann der MT4-Positions-Open-Preis nicht mehr Null sein, bevor er ausgelöst wird.
// Fix: Einige seltene Ausführungsaspekte von bestimmten Handelsservern wurden berücksichtigt.
// 26.11.2018
// Fix: Magie und Kommentar einer geschlossenen MT4-Position: Die Priorität der relevanten Felder von öffnenden Transaktionen ist höher als die von schließenden Transaktionen.
// Behoben: Seltene Änderungen in MT5-OrdersTotal und MT5-PositionsTotal werden bei der Berechnung von MT4-OrdersTotal und MT4-OrderSelect berücksichtigt.
// Behoben: Die Bibliothek berücksichtigt nicht die Aufträge, die eine Position eröffnet haben, aber noch nicht aus MT5 gelöscht wurden.
// 17.01.2019
// Behebung: Ein unglücklicher Fehler bei der Auswahl schwebender Aufträge wurde behoben.
// 08.02.2019
// Hinzufügen: Kommentar einer Position wird bei teilweiser Schließung über OrderClose gespeichert.
// Wenn Sie den Kommentar zu einer offenen Position bei teilweiser Schließung ändern müssen, können Sie ihn in OrderClose angeben.
// 20.02.2019
// Fix: Falls kein MT5-Auftrag vorliegt, erwartet die Bibliothek die Synchronisierung der Historie von der bestehenden MT5-Transaktion. Im Falle eines Fehlers wird sie darüber informieren.
// 13.03.2019
// Hinzufügen: OrderTicketID() hinzugefügt - PositionsID einer MT5-Transaktion oder MT5-Position und das Ticket einer schwebenden MT4-Order.
// Hinzufügen: SELECT_BY_TICKET funktioniert für alle MT5-Tickets (und MT5-PositionID).
// 02.11.2019
// Korrektur: Lot, Kommission und Close-Preis für CloseBy-Positionen korrigiert.
// 12.01.2020
// Korrektur: OrderTicketID() für Balance Deals gibt jetzt einen korrekten Wert zurück.
// Repariert: Repariert SELECT_BY_TICKET - Auswahl nach OrderTicketID() (MT5-PositionID).
// Korrektur: Der Name der internen Bibliotheksmethode wurde geändert, um die Kompatibilität mit Makros zu verbessern.
// 10.04.2020
// Behebung: Teilweise ausgeführte Live Pending Order wurde nicht in OrdersTotal() aufgenommen.
// 09.06.2020
// Hinzufügen: StopLoss/TakeProfit/ClosePriceRequest für geschlossene Positionen sind jetzt besser definiert.
// 10.06.2020
// Hinzufügen: Millisekunden hinzugefügt, Preis- und Auftragsrundung in OrderPrint() entfernt.
// 13.08.2020
// Hinzufügen: Möglichkeit hinzugefügt, die Leistung von Bibliotheksteilen über das Makro MT4ORDERS_BENCHMARK_MINTIME zu überprüfen.
// 20.08.2020
// Korrektur: Berücksichtigung der aufgedeckten Merkmale der Ausführung von Teilaufträgen.
// 29.08.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 24.09.2020
// Hinzufügen: Wenn Sie die Priorität eines MT5-Auftrags gegenüber einer MT5-Position bei der Auswahl eines Live-MT4-Auftrags durch SELECT_BY_TICKET (dieselben Tickets) erhöhen müssen,
// Dies kann erreicht werden, indem die Ticketgröße auf negativ geändert wird: OrderSelect(-Ticket, SELECT_BY_TICKET).
// Hinzufügen: Wenn Sie bei der Änderung eines Live-MT4-Auftrags (dieselben Tickets) nur die Auswahl eines MT5-Auftrags angeben müssen,
// Dies kann durch eine negative Änderung der Ticketgröße erreicht werden: OrderModify(-Ticket, ...).
// Hinzufügen: OrderSelect(INT_MAX, SELECT_BY_POS) - Wechsel zu einer MT5-Position ohne Überprüfung der Existenz und Aktualisierung.
// OrderSelect(INT_MIN, SELECT_BY_POS) - Wechsel zu einer Live-MT5-Order ohne Überprüfung der Existenz und Aktualisierung.
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 30.09.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 08.10.2020
// Behebung: OrderSend einer Market Order konnte aufgrund eines Fehlers in einer frischen MT5-Geschäftssuche länger ausgeführt werden.
// 21.10.2020
// Hinzufügen: Um Kompatibilität für MT4 zu gewährleisten, wurde OrderTicketID() hinzugefügt - gibt OrderTicket() zurück.
// 11.11.2020
// Korrektur: OrderTicketID() und OrderTicketOpen() geben den in TICKET_TYPE angegebenen Werttyp zurück.
// 06.12.2020
// Fix: Die Fälle von fehlerhaften SL/TP-Ausführungsaufzeichnungen in der MT5-Handelshistorie werden nun berücksichtigt.
// Hinzufügen: Der Markt MT4ORDERS_TESTER_SELECT_BY_TICKET zwingt SELECT_BY_TICKET im Tester nur über OrderTicketID() zu funktionieren.
// 04.05.2021
// Fix: Die MT5-Aufträge, die Positionen eröffnen und nicht verschwinden, werden nicht mehr zur Liste der MT4-Aufträge hinzugefügt.
// Behebung: CloseBy MT5 Aufträge erscheinen nicht mehr in der Liste der MT4 Aufträge.
// 12.05.2021
// Hinzufügen: Das Makro MT4ORDERS_BYPASS_MAXTIME ändert die ständig auftretenden Fälle von Desynchronisation der Handelsumgebung im MT5.
// 13.05.2021
// Korrektur: Fehler in OrderOpenReason() behoben.
// 14.05.2021
// Korrektur: Der BYPASS-Mechanismus wirkt sich nicht mehr auf OrderSelect(INT_MAX, SELECT_BY_POS) und OrderSelect(INT_MIN, SELECT_BY_POS) aus.
// 01.06.2021
// Korrektur: Kompatibilität mit dem Compiler-Build 2449 und höher.
// Fix: Verbesserte Synchronisation. ByPass.mqh muss auf dem neuesten Stand sein.
// Hinzufügen: OrderLots(true) - synchronisierte Größe der ausgewählten Position, unter Berücksichtigung aller Aufträge, die diese Position schließen.


Ich empfehle die Verwendung der neuesten Version zusammen mit dem Synchronisationsmechanismus. Dann werden alle Probleme, die keine andere Handelsbibliothek lösen kann, nicht mehr wahrnehmbar sein.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Maximale Zeit (in Mikrosekunden), die auf die Synchronisierung der Handelsumgebung gewartet wird
#include <MT4Orders.mqh> // https://www.mql5.com/de/code/16006

Damit dieser Mechanismus funktioniert, müssen Sie diese Bibliothek herunterladen. Alle komplexen und effektiven Prüfungen der Korrektheit der Handelsumgebung werden automatisch durchgeführt, ohne den Benutzer beim Schreiben der Handelslogik abzulenken.

TradesID
TradesID
  • www.mql5.com
Быстрая работа с POSITION_ID
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bibliotheken: MT4Orders

fxsaber, 2021.06.02 10:09

Auf meine Bitte hin hat die MetaQutoes das letzte Update der Bibliothek komplett ins Englische lokalisiert. Der neueste Build der Bibliothek ist jetzt auf Die neueste Version der Bibliothek ist nun auf der englischen Seite verfügbar, wobei die Kommentare im Quellcode ins Englische übersetzt wurden.


Der neueste Build der Bibliothek ist nun auf der englischen Seite verfügbar, wobei die Kommentare im Quellcode ins Englische übersetzt wurden.

// Liste der Änderungen.
// 02.11.2018
// Fix: Jetzt kann der MT4-Positions-Open-Preis nicht mehr Null sein, bevor er ausgelöst wird.
// Fix: Einige seltene Ausführungsaspekte von bestimmten Handelsservern wurden berücksichtigt.
// 26.11.2018
// Fix: Magie und Kommentar einer geschlossenen MT4-Position: Die Priorität der relevanten Felder von Eröffnungsgeschäften ist höher als die von Schließungsgeschäften. Die Priorität der relevanten Felder von Eröffnungsgeschäften ist höher als die von Schließungsgeschäften.
// Fix: Seltene Änderungen in MT5-OrdersTotal und MT5-PositionsTotal werden bei der Berechnung von MT4-OrdersTotal und MT4-OrdersTotal berücksichtigt. OrderSelect.
// Fix: Bibliothek berücksichtigt nicht die Aufträge, die eine Position eröffnet haben, aber noch nicht aus MT5 gelöscht wurden.
// 17.01.2019
// Fix: Ein unglücklicher Fehler bei der Auswahl schwebender Aufträge wurde behoben.
// 08.02.2019
// Hinzufügen: Kommentar einer Position wird bei teilweiser Schließung über OrderClose gespeichert.
// Wenn Sie den Kommentar zu einer offenen Position bei teilweiser Schließung ändern müssen, können Sie ihn in AuftragSchließen.
// 20.02.2019
// Fix: Falls kein MT5-Auftrag vorliegt, erwartet die Bibliothek die Synchronisation der Historie aus der bestehenden MT5-Transaktion. Im Falle eines Fehlers wird sie wird sie darüber informieren.
// 13.03.2019
// Add: OrderTicketID() hinzugefügt - PositionsID einer MT5-Transaktion oder MT5-Position und das Ticket einer ausstehenden MT4-Order.
// Hinzufügen: SELECT_BY_TICKET funktioniert für alle MT5-Tickets (und MT5-PositionID).
// 02.11.2019
// Fix: Lot, Kommission und Close-Preis für CloseBy-Positionen korrigiert.
// 12.01.2020
// Fix: OrderTicketID() für Balance Deals gibt jetzt einen korrekten Wert zurück.
// Fix: SELECT_BY_TICKET - Auswahl nach OrderTicketID() (MT5-PositionID) korrigiert.
// Korrektur: Der Name der internen Bibliotheksmethode wurde geändert, um die Kompatibilität mit Makros zu verbessern.
// 10.04.2020
// Fix: Teilweise ausgeführte Live-Pending-Order wurde nicht in OrdersTotal() aufgenommen.
// 09.06.2020
// Add: StopLoss/TakeProfit/ClosePriceRequest für geschlossene Positionen sind jetzt besser definiert.
// 10.06.2020
// Hinzufügen: Millisekunden hinzugefügt, Preis- und Auftragsrundung in OrderPrint() entfernt.
// 13.08.2020
// Hinzufügen: Es wurde die Möglichkeit hinzugefügt, die Leistung von Bibliotheksteilen über das Makro MT4ORDERS_BENCHMARK_MINTIME zu überprüfen.
// 20.08.2020
// Korrektur: Berücksichtigung der aufgedeckten Merkmale der Ausführung von Teilaufträgen.
// 29.08.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 24.09.2020
// Hinzufügen: Wenn Sie die Priorität eines MT5-Auftrags gegenüber einer MT5-Position bei der Auswahl eines Live-MT4-Auftrags durch SELECT_BY_TICKET (die gleichen Tickets), muss die
// Dies kann durch eine negative Änderung der Ticketgröße erreicht werden: OrderSelect(-Ticket, SELECT_BY_ TICKET).
// Hinzufügen: Wenn Sie bei der Änderung eines Live-MT4-Auftrags (dieselben Tickets) nur die Auswahl eines MT5-Auftrags angeben müssen, können Sie den MT5-Auftrag zum MT5-Auftrag hinzufügen.
// Dies kann durch eine negative Änderung der Ticketgröße erfolgen: OrderModify(-Ticket, ...) .
// Hinzufügen: OrderSelect(INT_MAX, SELECT_BY_POS) - Wechsel zu einer MT5-Position ohne Überprüfung der Existenz und Aktualisierung.
// OrderSelect(INT_MIN, SELECT_BY_POS) - Wechsel zu einer Live-MT5-Order ohne Prüfung des Vorhandenseins und der Aktualisierung. Existenz und Aktualisierung.
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 30.09.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 08.10.2020
// Fix: OrderSend einer Market Order konnte aufgrund eines Fehlers in einer frischen MT5-Geschäftssuche länger ausgeführt werden.
// 21.10.2020
// Hinzufügen: Um Kompatibilität für MT4 zu gewährleisten, wurde OrderTicketID() hinzugefügt - gibt OrderTicket() zurück.
// 11.11.2020
// Korrektur: OrderTicketID() und OrderTicketOpen() geben den in TICKET_TYPE angegebenen Werttyp zurück.
// 06.12.2020
// Fix: Die Fälle von falschen SL/TP-Ausführungsaufzeichnungen in der MT5-Handelshistorie werden nun berücksichtigt.
// Hinzufügen: Der Markt MT4ORDERS_TESTER_SELECT_BY_TICKET zwingt SELECT_BY_TICKET im Tester nur über OrderTicketID() zu funktionieren.
// 04.05.2021
// Fix: Die MT5-Aufträge, die Positionen eröffnen und nicht verschwinden, werden nicht mehr zur Liste der MT4-Aufträge hinzugefügt.
// Fix: CloseBy MT5 Aufträge erscheinen nicht mehr in der Liste der MT4 Aufträge.
// 12.05.2021
// Hinzufügen: Das Makro MT4ORDERS_BYPASS_MAXTIME ändert die ständig auftretenden Fälle von Desynchronisierung der Handelsumgebung in MT5.
// 13.05.2021
// Fix: Fehler in OrderOpenReason() behoben.
// 14.05.2021
// Korrektur: Der BYPASS-Mechanismus wirkt sich nicht mehr auf OrderSelect(INT_MAX, SELECT_BY_POS) und OrderSelect(INT_MIN, SELECT_BY_POS) aus.
// 01.06.2021
// Fix: Kompatibilität mit dem Compiler-Build 2449 und höher.
// Fix: Verbesserte Synchronisation: ByPass.mqh muss auf dem neuesten Stand sein.
// Hinzufügen: OrderLots(true) - synchronisierte Größe der ausgewählten Position, unter Berücksichtigung aller Aufträge, die diese Position schließen.


Ich empfehle, die neueste Version zusammen mit dem Synchronisationsmechanismus zu verwenden. Dann werden alle Probleme, die keine andere Handelsbibliothek lösen kann, behoben. Dann werden alle Probleme, die keine andere Handelsbibliothek lösen kann, nicht mehr wahrnehmbar sein.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Maximale Zeit (in Mikrosekunden), die auf die Synchronisierung der Handelsumgebung gewartet wird
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Damit dieser Mechanismus funktioniert, müssen Sie diese Bibliothek herunterladen. Alle komplexen und effektiven Überprüfungen der Korrektheit der Handelsumgebung werden automatisch durchgeführt, ohne den Benutzer abzulenken, wenn die Handelsumgebung nicht funktioniert. Alle komplexen und effektiven Überprüfungen der Korrektheit der Handelsumgebung werden automatisch durchgeführt, ohne den Benutzer beim Schreiben der Handelslogik abzulenken.


 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bibliotheken: MT4Orders

fxsaber, 2021.06.02 10:09

Auf meine Bitte hin, hat die MetaQutoes das letzte Update der Bibliothek komplett ins Englische lokalisiert. Der neueste Build der Bibliothek ist jetzt auf der englischen Seite mit den ins Englische übersetzten Kommentaren im Quellcode verfügbar.


Dies unterscheidet sich von der vorherigen Version, die auf der englischsprachigen Seite verfügbar war.

// Liste der Änderungen:
// 02.11.2018
// Fix: Jetzt kann der MT4-Positions-Open-Preis nicht mehr Null sein, bevor er ausgelöst wird.
// Fix: Einige seltene Ausführungsaspekte von bestimmten Handelsservern wurden berücksichtigt.
// 26.11.2018
// Fix: Magie und Kommentar einer geschlossenen MT4-Position: Die Priorität der relevanten Felder von öffnenden Transaktionen ist höher als die von schließenden.
// Fix: Seltene Änderungen in MT5-OrdersTotal und MT5-PositionsTotal werden bei der Berechnung von MT4-OrdersTotal und MT4-OrderSelect berücksichtigt.
// Fix: Bibliothek berücksichtigt nicht die Aufträge, die eine Position eröffnet haben, aber noch nicht aus MT5 gelöscht wurden.
// 17.01.2019
// Fix: Ein unglücklicher Fehler bei der Auswahl schwebender Aufträge wurde behoben.
// 08.02.2019
// Hinzufügen: Kommentar einer Position wird bei teilweiser Schließung über OrderClose gespeichert.
// Wenn Sie den Kommentar zu einer offenen Position bei teilweiser Schließung ändern müssen, können Sie ihn in OrderClose angeben.
// 20.02.2019
// Fix: Falls kein MT5-Auftrag vorliegt, erwartet die Bibliothek die Synchronisierung der Historie von der bestehenden MT5-Transaktion. Im Falle eines Fehlers wird sie darüber informieren.
// 13.03.2019
// Add: OrderTicketID() hinzugefügt - PositionsID einer MT5-Transaktion oder MT5-Position und das Ticket einer ausstehenden MT4-Order.
// Hinzufügen: SELECT_BY_TICKET funktioniert für alle MT5-Tickets (und MT5-PositionID).
// 02.11.2019
// Fix: Lot, Kommission und Close-Preis für CloseBy-Positionen korrigiert.
// 12.01.2020
// Fix: OrderTicketID() für Balance Deals gibt jetzt einen korrekten Wert zurück.
// Fix: SELECT_BY_TICKET - Auswahl nach OrderTicketID() (MT5-PositionID) korrigiert.
// Korrektur: Der Name der internen Bibliotheksmethode wurde geändert, um die Kompatibilität mit Makros zu verbessern.
// 10.04.2020
// Fix: Teilweise ausgeführte Live-Pending-Order wurde nicht in OrdersTotal() aufgenommen.
// 09.06.2020
// Add: StopLoss/TakeProfit/ClosePriceRequest für geschlossene Positionen sind jetzt besser definiert.
// 10.06.2020
// Hinzufügen: Millisekunden hinzugefügt, Preis- und Auftragsrundung in OrderPrint() entfernt.
// 13.08.2020
// Hinzufügen: Es wurde die Möglichkeit hinzugefügt, die Leistung von Bibliotheksteilen über das Makro MT4ORDERS_BENCHMARK_MINTIME zu überprüfen.
// 20.08.2020
// Korrektur: Berücksichtigung der aufgedeckten Merkmale der Ausführung von Teilaufträgen.
// 29.08.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 24.09.2020
// Hinzufügen: Wenn Sie die Priorität eines MT5-Auftrags gegenüber einer MT5-Position bei der Auswahl eines Live-MT4-Auftrags durch SELECT_BY_TICKET (dieselben Tickets) erhöhen müssen,
// Dies kann erreicht werden, indem die Ticketgröße negativ wird: OrderSelect(-Ticket, SELECT_BY_TICKET).
// Hinzufügen: Wenn Sie bei der Änderung eines Live-MT4-Auftrags (dieselben Tickets) nur die Auswahl eines MT5-Auftrags angeben müssen,
// Dies kann durch eine negative Änderung der Ticketgröße geschehen: OrderModify(-Ticket, ...).
// Hinzufügen: OrderSelect(INT_MAX, SELECT_BY_POS) - Wechsel zu einer MT5-Position ohne Überprüfung der Existenz und Aktualisierung.
// OrderSelect(INT_MIN, SELECT_BY_POS) - Wechsel zu einer Live-MT5-Order ohne Überprüfung der Existenz und Aktualisierung.
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 30.09.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 08.10.2020
// Fix: OrderSend einer Market Order konnte aufgrund eines Fehlers in einer frischen MT5-Geschäftssuche länger ausgeführt werden.
// 21.10.2020
// Hinzufügen: Um Kompatibilität für MT4 zu gewährleisten, wurde OrderTicketID() hinzugefügt - gibt OrderTicket() zurück.
// 11.11.2020
// Korrektur: OrderTicketID() und OrderTicketOpen() geben den in TICKET_TYPE angegebenen Werttyp zurück.
// 06.12.2020
// Fix: Die Fälle von falschen SL/TP-Ausführungsaufzeichnungen in der MT5-Handelshistorie werden nun berücksichtigt.
// Hinzufügen: Der Markt MT4ORDERS_TESTER_SELECT_BY_TICKET zwingt SELECT_BY_TICKET im Tester nur über OrderTicketID() zu funktionieren.
// 04.05.2021
// Fix: Die MT5-Aufträge, die Positionen eröffnen und nicht verschwinden, werden nicht mehr zur Liste der MT4-Aufträge hinzugefügt.
// Fix: CloseBy MT5 Aufträge erscheinen nicht mehr in der Liste der MT4 Aufträge.
// 12.05.2021
// Hinzufügen: Das Makro MT4ORDERS_BYPASS_MAXTIME ändert die ständig auftretenden Fälle von Desynchronisierung der Handelsumgebung in MT5.
// 13.05.2021
// Fix: Fehler in OrderOpenReason() behoben.
// 14.05.2021
// Korrektur: Der BYPASS-Mechanismus wirkt sich nicht mehr auf OrderSelect(INT_MAX, SELECT_BY_POS) und OrderSelect(INT_MIN, SELECT_BY_POS) aus.
// 01.06.2021
// Fix: Kompatibilität mit dem Compiler-Build 2449 und höher.
// Fix: Verbesserte Synchronisation. ByPass.mqh muss auf dem neuesten Stand sein.
// Hinzufügen: OrderLots(true) - synchronisierte Größe der ausgewählten Position, unter Berücksichtigung aller Aufträge, die diese Position schließen.


Ich empfehle die Verwendung der neuesten Version zusammen mit dem Synchronisationsmechanismus. Dann werden alle Probleme, die keine andere Handelsbibliothek lösen kann, nicht mehr wahrnehmbar sein.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Maximale Zeit (in Mikrosekunden), die auf die Synchronisierung der Handelsumgebung gewartet wird
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Damit dieser Mechanismus funktioniert, müssen Sie diese Bibliothek herunterladen. Alle komplexen und effektiven Prüfungen der Korrektheit der Handelsumgebung werden automatisch durchgeführt, ohne den Benutzer beim Schreiben der Handelslogik abzulenken.


 

Forum on trading, automated trading systems and testing trading strategies

Libraries: MT4Orders

fxsaber, 2021.06.02 10:09

At my request, the MetaQutoes has completely localized the latest update of the library into English. The latest build of the library is now available on the English page with comments in the source code translated into English.


Difference from the previous version that was available on the English-language page.

// List of changes:
// 02.11.2018
//   Fix: Now the MT4 position Open price cannot be zero before its triggering.
//   Fix: Some rare execution aspects of certain trading servers have been taken into account.
// 26.11.2018
//   Fix: Magic and comment of a closed MT4 position: Priority of the relevant fields of opening transactions is higher than that of closing ones.
//   Fix: Rare changes in MT5-OrdersTotal and MT5-PositionsTotal are taken into account while calculating MT4-OrdersTotal and MT4-OrderSelect.
//   Fix: Library does not take into account the orders which have opened a position, but have not been yet deleted from MT5.
// 17.01.2019
//   Fix: Fixed an unfortunate error in selecting pending orders.
// 08.02.2019
//   Add: Comment of a position is saved at partial closing via OrderClose.
//        If you need to modify the comment on an open position at partial closing, you can specify it in OrderClose.
// 20.02.2019
//   Fix: In case of no MT5 order, the library will expect the history synchronization from the existing MT5 transaction. In case of failure, it will inform about it.
// 13.03.2019
//   Add: Added OrderTicketID() - PositionID of an MT5 transaction or MT5 position, and the ticket of a pending MT4 order.
//   Add: SELECT_BY_TICKET works for all MT5 tickets (and MT5-PositionID).
// 02.11.2019
//   Fix: Corrected lot, commission, and Close price for CloseBy positions.
// 12.01.2020
//   Fix: OrderTicketID() for balance deals returns now a correct value.
//   Fix: Fixed SELECT_BY_TICKET - selection by OrderTicketID() (MT5-PositionID).
//   Fix: Changed name of the internal library method for greater compatibility with macros.
// 10.04.2020
//   Fix: Partially executed live pending order did not get into OrdersTotal().
// 09.06.2020
//   Add: StopLoss/TakeProfit/ClosePriceRequest for closed positions are now better defined.
// 10.06.2020
//   Add: Added milliseconds, removed price and order rounding in OrderPrint().
// 13.08.2020
//   Add: Added ability to check the performance of library parts via the MT4ORDERS_BENCHMARK_MINTIME macro.
// 20.08.2020
//   Fix: Taking into account the revealed features of partial order execution.
// 29.08.2020
//   Fix: Implemented faster working with the history of trades.
// 24.09.2020
//   Add: If you need to increase the priority of an MT5 order over an MT5 position when selecting a live MT4 order by SELECT_BY_TICKET (the same tickets),
//        this can be done by changing the ticket size to negative: OrderSelect(-Ticket, SELECT_BY_TICKET).
//   Add: If you need to specify the selection of only MT5 order when modifying a live MT4 order (the same tickets),
//        this can be done by changing the ticket size to negative: OrderModify(-Ticket, ...).
//   Add: OrderSelect(INT_MAX, SELECT_BY_POS) - switch to an MT5 position without checking the existence and updating.
//        OrderSelect(INT_MIN, SELECT_BY_POS) - switch to a live MT5 order without checking the existence and updating.
//   Fix: Implemented faster working with the history of trades.
// 30.09.2020
//   Fix: Implemented faster working with the history of trades.
// 08.10.2020
//   Fix: OrderSend of a market order could be executed longer due to a flaw in a fresh MT5 deal search.
// 21.10.2020
//   Add: To provide compatibility for MT4, added OrderTicketID() - returns OrderTicket().
// 11.11.2020
//   Fix: OrderTicketID() and OrderTicketOpen() return the value type specified in TICKET_TYPE.
// 06.12.2020
//   Fix: The cases of incorrect SL/TP execution records in the MT5 trading history are now taken into account.
//   Add: The MT4ORDERS_TESTER_SELECT_BY_TICKET market forces SELECT_BY_TICKET to work in the Tester only via OrderTicketID().
// 04.05.2021
//   Fix: The MT5 orders that open positions and fail to disappear are no longer added to the list of MT4 orders.
//   Fix: CloseBy MT5 orders no longer appear in the list of MT4 orders.
// 12.05.2021
//   Add: The MT4ORDERS_BYPASS_MAXTIME macro changes the constantly emerging cases of trading environment desynchronization in MT5.
// 13.05.2021
//   Fix: Fixed bug in OrderOpenReason().
// 14.05.2021
//   Fix: The BYPASS mechanism no longer affects OrderSelect(INT_MAX, SELECT_BY_POS) and OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
//   Fix: Compatibility with the compiler build 2449 and higher.
//   Fix: Improved synchronization. ByPass.mqh must be of the latest version.
//   Add: OrderLots(true) - synchronized size of the selected position, taking into account all orders which close this position.


I recommend using the latest version along with the synchronization mechanism. Then all the problems that no other trading library can solve will be imperceptible.

#define MT4ORDERS_BYPASS_MAXTIME 1000000 // Max time (in microseconds) to wait for the trading environment synchronization
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

For this mechanism to work, you need to download this library. All complex and effective checks of the correctness of the trading environment will be done automatically, without distracting the user when writing trading logic.


 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bibliotheken: MT4Orders

fxsaber, 2021.06.02 10:09

Auf meine Bitte hin, hat die MetaQutoes das letzte Update der Bibliothek komplett ins Englische lokalisiert. Der neueste Build der Bibliothek ist nun auf der englischen Seite verfügbar, mit ins Englische übersetzten Kommentaren im Quellcode.


Unterschied zu der vorherigen Version, die auf der englischsprachigen Seite verfügbar war.

// Liste der Änderungen:.
// 02.11.2018
// Fix: Jetzt kann der MT4-Positions-Open-Preis nicht mehr Null sein, bevor er ausgelöst wird.
// Fix: Einige seltene Ausführungsaspekte von bestimmten Handelsservern wurden berücksichtigt.
// 26.11.2018
// Fix: Magie und Kommentar einer geschlossenen MT4-Position: Die Priorität der relevanten Felder der öffnenden Transaktionen ist höher als die der schließenden. Fix: Magie und Kommentar einer geschlossenen MT4-Position: Die Priorität der relevanten Felder der öffnenden Transaktionen ist höher als die der schließenden.
// Fix: Seltene Änderungen in MT5-OrdersTotal und MT5-PositionsTotal werden bei der Berechnung von MT4-OrdersTotal und MT4- OrderSelect.
// Fix: Bibliothek berücksichtigt nicht die Aufträge, die eine Position eröffnet haben, aber noch nicht aus MT5 gelöscht wurden.
// 17.01.2019
// Fix: Ein unglücklicher Fehler bei der Auswahl schwebender Aufträge wurde behoben.
// 08.02.2019
// Hinzufügen: Kommentar einer Position wird bei teilweiser Schließung über OrderClose gespeichert.
// Wenn Sie den Kommentar zu einer offenen Position bei teilweiser Schließung ändern müssen, können Sie ihn in AuftragSchließen.
// 20.02.2019
// Fix: Falls keine MT5-Order vorliegt, erwartet die Bibliothek die Synchronisation der Historie von der bestehenden MT5-Transaktion. Fix: Falls kein MT5-Auftrag vorliegt, erwartet die Bibliothek die Synchronisierung der Historie von der bestehenden MT5-Transaktion.
// 13.03.2019
// Add: OrderTicketID() hinzugefügt - PositionsID einer MT5-Transaktion oder MT5-Position und das Ticket einer ausstehenden MT4-Order.
// Hinzufügen: SELECT_BY_TICKET funktioniert für alle MT5-Tickets (und MT5-PositionID).
// 02.11.2019
// Fix: Lot, Kommission und Close-Preis für CloseBy-Positionen korrigiert.
// 12.01.2020
// Fix: OrderTicketID() für Balance Deals gibt jetzt einen korrekten Wert zurück.
// Fix: SELECT_BY_TICKET - Auswahl nach OrderTicketID() (MT5-PositionID) korrigiert.
// Korrektur: Der Name der internen Bibliotheksmethode wurde geändert, um die Kompatibilität mit Makros zu verbessern.
// 10.04.2020
// Fix: Teilweise ausgeführte Live-Pending-Order wurde nicht in OrdersTotal() aufgenommen.
// 09.06.2020
// Add: StopLoss/TakeProfit/ClosePriceRequest für geschlossene Positionen ist jetzt besser definiert.
// 10.06.2020
// Hinzufügen: Millisekunden hinzugefügt, Preis- und Auftragsrundung in OrderPrint() entfernt.
// 13.08.2020
// Hinzufügen: Es wurde die Möglichkeit hinzugefügt, die Leistung von Bibliotheksteilen über das Makro MT4ORDERS_BENCHMARK_MINTIME zu überprüfen.
// 20.08.2020
// Korrektur: Berücksichtigung der aufgedeckten Merkmale der Ausführung von Teilaufträgen.
// 29.08.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 24.09.2020
// Hinzufügen: Wenn Sie die Priorität einer MT5-Order gegenüber einer MT5-Position erhöhen müssen, wenn Sie eine Live-MT4-Order mit SELECT_BY_TICKET auswählen (die gleichen Tickets), // Add: Wenn Sie die Priorität eines MT5-Auftrags gegenüber einer
// Dies kann durch eine negative Änderung der Ticketgröße erreicht werden: OrderSelect(-Ticket, SELECT_BY_ TICKET).
// Hinzufügen: Wenn Sie bei der Änderung einer MT4-Live-Order (dieselben Tickets) nur die Auswahl der MT5-Order angeben müssen, können Sie die folgenden Optionen verwenden.
// Dies kann durch eine negative Änderung der Ticketgröße erfolgen: OrderModify(-Ticket, ...) .
// Hinzufügen: OrderSelect(INT_MAX, SELECT_BY_POS) - Wechsel zu einer MT5-Position ohne Überprüfung der Existenz und Aktualisierung.
// OrderSelect(INT_MIN, SELECT_BY_POS) - Umschalten auf eine Live-MT5-Order ohne Prüfung der Existenz zu prüfen und zu aktualisieren.
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 30.09.2020
// Fix: Schnelleres Arbeiten mit der Historie von Trades implementiert.
// 08.10.2020
// Fix: OrderSend einer Market Order konnte aufgrund eines Fehlers in einer frischen MT5-Geschäftssuche länger ausgeführt werden.
// 21.10.2020
// Hinzufügen: Um Kompatibilität für MT4 zu gewährleisten, wurde OrderTicketID() hinzugefügt - gibt OrderTicket() zurück.
// 11.11.2020
// Korrektur: OrderTicketID() und OrderTicketOpen() geben den in TICKET_TYPE angegebenen Werttyp zurück.
// 06.12.2020
// Fix: Die Fälle von falschen SL/TP-Ausführungsaufzeichnungen in der MT5-Handelshistorie werden nun berücksichtigt.
// Hinzufügen: Der Markt MT4ORDERS_TESTER_SELECT_BY_TICKET zwingt SELECT_BY_TICKET im Tester nur über OrderTicketID() zu funktionieren.
// 04.05.2021
// Fix: Die MT5-Aufträge, die Positionen eröffnen und nicht verschwinden, werden nicht mehr zur Liste der MT4-Aufträge hinzugefügt.
// Fix: CloseBy MT5 Aufträge erscheinen nicht mehr in der Liste der MT4 Aufträge.
// 12.05.2021
// Hinzufügen: Das Makro MT4ORDERS_BYPASS_MAXTIME ändert die ständig auftretenden Fälle von Desynchronisation der Handelsumgebung im MT5.
// 13.05.2021
// Fix: Fehler in OrderOpenReason() behoben.
// 14.05.2021
// Korrektur: Der BYPASS-Mechanismus wirkt sich nicht mehr auf OrderSelect(INT_MAX, SELECT_BY_POS) und OrderSelect(INT_MIN, SELECT_BY_POS) aus.
// 01.06.2021
// Fix: Kompatibilität mit Compiler-Build 2449 und höher.
// Fix: Verbesserte Synchronisation: ByPass.mqh muss auf dem neuesten Stand sein.
// Hinzufügen: OrderLots(true) - synchronisierte Größe der ausgewählten Position, unter Berücksichtigung aller Aufträge, die diese Position schließen.


Dann sind alle Probleme, die keine andere Handelsbibliothek lösen kann, gelöst. Ich empfehle, die neueste Version zusammen mit dem Synchronisationsmechanismus zu verwenden.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Maximale Zeit (in Mikrosekunden), die auf die Synchronisierung der Handelsumgebung gewartet wird
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Damit dieser Mechanismus funktioniert, müssen Sie diese Bibliothek herunterladen. Alle komplexen und effektiven Überprüfungen der Korrektheit der Handelsumgebung werden durchgeführt Alle komplexen und effektiven Überprüfungen der Korrektheit der Handelsumgebung werden automatisch durchgeführt, ohne den Benutzer beim Schreiben der Handelslogik abzulenken.