Diskussion zum Artikel "Handels-Ereignisse im Expert Advisor mit Hilfe der OnTrade() Funktion bearbeiten"

 

Neuer Artikel Handels-Ereignisse im Expert Advisor mit Hilfe der OnTrade() Funktion bearbeiten :

MQL5 brachte eine Menge an Innovationen, inkl. die Bearbeitung verschiedenartiger Ereignisse (Timer-Ereignisse, Handels-Ereignisse, benutzerdefinierte Ereignisse, usw). Mit diesen Ereignissen umgehen zu können, gestattet Ihnen die Erzeugung komplett neuer Arten an Programmen für den automatischen und halb-automatischen Handel. In diesem Beitrag betrachten wir uns Handels-Ereignisse und schreiben einen Code für die OnTrade() Funktion, die das Handels-Ereignis bearbeiten wird.

Abb. 1 Warnungen

Autor: KlimMalgin

 

Beim Kompilieren gibt es einen Fehler bei der impliziten Umwandlung von 'Zahl' in 'String' TradeControl.mq5 349 99
in dieser Zeile

_alerts += "Für das Paar "+PositionList[i].symbol+" wurde der Stoploss von "+ PrevPositionList[i].sl +" auf "+ PositionList[i].sl +"\n" geändert;

 
sergey1294:

Beim Kompilieren gibt es einen Fehler bei der impliziten Umwandlung von 'Zahl' in 'String' TradeControl.mq5 349 99
in dieser Zeile

_alerts += "Bei dem Paar "+PositionList[i].symbol+" wurde der Stoploss von "+ PrevPositionList[i].sl +" auf "+ PositionList[i].sl +"\n" geändert;

Dies ist kein Fehler, sondern eine Warnung, dass diese Zeile eine implizite Umwandlung einer Zahl in eine Zeichenkette enthält. In solchen Fällen warnt der Compiler vor der Umwandlung, und der Programmierer muss entscheiden, ob diese Umwandlung ein Fehler ist oder nicht.

Um diese Warnung zu entfernen, müssen Sie eine explizite Umwandlung vornehmen:

_alerts += "Auf Steam".+PositionList[i].symbol+"Stoploss" geändert von "+ (string)PrevPositionList[i].sl +" auf "+ (string)PositionList[i].sl +"\n";
 
KlimMalgin:

Dies ist kein Fehler, sondern eine Warnung, dass diese Zeile eine implizite Umwandlung einer Zahl in eine Zeichenkette enthält. In solchen Fällen warnt der Compiler vor der Umwandlung, und der Programmierer muss entscheiden, ob diese Umwandlung ein Fehler ist oder nicht.

Um diese Warnung zu entfernen, sollten Sie eine explizite Umwandlung vornehmen:

Danke, wir werden es versuchen.
 

Irgendwie funktioniert es nicht richtig, die Position wurde beim Take Profit geschlossen, aber es gibt keine Informationen darüber. hier ist das Log

DS 0 TradeControl (EURUSD,M5) 22:36:06 Handelsereignis empfangen
EJ 0 TradeControl (EURUSD,M5) 22:36:06 Fehler # 4751
PN 0 TradeControl (EURUSD,M5) 22:36:06 876874 Order zur Verarbeitung erhalten
DH 0 TradeControl (EURUSD,M5) 22:36:08 Trade Event empfangen
IS 0 TradeControl (EURUSD,M5) 22:36:08 Fehler #4751 Order 876874 nicht gefunden!
HK 0 TradeControl (EURUSD,M5) 22:36:08 Fehler # 4751 Zustand:4
RQ 0 TradeControl (EURUSD,M5) 22:36:08 0 Order ausgeführt, weiter im Handel
OD 0 TradeControl (EURUSD,M5) 22:36:08 876874 Order erzeugt Handel #947094
RS 0 TradeControl (EURUSD,M5) 22:36:08 Eröffnet eine Kaufposition auf EURUSD
DQ 0 TradeControl (EURUSD,M5) 22:36:08 Handelsereignis empfangen
DI 0 TradeControl (EURUSD,M5) 22:36:08 Empfangenes Handelsereignis
KQ 0 TradeControl (EURUSD,M5) 22: 41:45 Empfangenes Handelsereignis
KI 0 TradeControl (EURUSD,M5) 22:41:45 Handelsereignis erhalten
KQ 0 TradeControl (EURUSD,M5) 22:41:45 Handelsereignis erhalten

 
Der Artikel behandelt nicht die Schließung von Positionen mit Take-Profit und Stop-Loss. Es werden nur die am Anfang des Artikels genannten Ereignisse berücksichtigt.
 
KlimMalgin:
Der Artikel behandelt nicht die Schließung von Positionen mit Take-Profit und Stop-Loss. Es werden nur die am Anfang des Artikels genannten Ereignisse berücksichtigt.

Ich sehe, es ist schade, dass sie nicht berücksichtigt werden. Ich werde darauf warten, dass ein ähnlicher Artikel erscheint, oder Sie fügen Ihren eigenen in Übereinstimmung mit ihm hinzu. Das Analogon des Artikels für MT4 finden Sie hier https://www.mql5.com/ru/articles/1399.

  1. Eröffnen einer Position
    • "Marktposition
      • Kaufen
      • Verkaufen
    • Schwebende Order
      • Kauf-Limit
      • Verkaufslimit
      • Stop kaufen
      • Verkaufen Stop
  2. Auslösung der Order
    • Kauf-Limit
    • Verkaufs-Limit
    • Kauf-Stopp
    • Verkaufen Stop
  3. Schließung der Position
    • "Marktposition
      • Kaufen
        • Stop-Loss
        • Gewinnmitnahme
        • Manuell (nicht Stop Loss oder Take Profit)
      • Verkaufen
        • Stop-Loss
        • Gewinnmitnahme
        • Manuell
    • Pending Order (löschen)
      • Limit kaufen
        • Verfallszeit
        • Manuell
      • Verkaufslimit
        • Verfallszeit
        • Manuell
      • Kaufstopp
        • Verfallszeit
        • Manuell
      • Verkaufsstopp
        • Verfallszeit
        • Manuell
  4. Änderung der Position
    • "Marktposition
      • Kaufen
        • Stop Loss
        • Gewinn mitnehmen
      • Verkaufen
        • Stop-Loss
        • Gewinnmitnahme
    • Schwebende Order
      • Kauf-Limit
        • Eröffnungspreis
        • Stop-Loss
        • Gewinnmitnahme
        • Verfallszeit
      • Verkaufslimit
        • Eröffnungskurs
        • Stop-Loss
        • Gewinnmitnahme
        • Verfallszeit
      • Stopp kaufen
        • Eröffnungskurs
        • Stop-Loss
        • Gewinnmitnahme
        • Verfallszeit
      • Verkaufen Stop
        • Eröffnungskurs
        • Stop-Loss
        • Gewinnmitnahme
        • Verfallszeit
События в МetaТrader 4
События в МetaТrader 4
  • 2006.05.29
  • Andrey Khatimlianskii
  • www.mql5.com
Статья посвящена программному отслеживанию событий в терминале МetaТrader 4, таких как открытие, закрытие и модификация ордеров, и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL 4.
 

Keine Verarbeitung von HistorySelect()==false! Ein recht häufiger Fall...

 
KlimMalgin:
Der Artikel behandelt nicht die Schließung von Positionen mit Take-Profit und Stop-Loss. Es werden nur die am Anfang des Artikels genannten Ereignisse berücksichtigt.
Sie sollten vergeblich sein... Ich habe auf diesen Artikel nur gewartet, um ein Beispiel für die Stop-Behandlung zu finden...
 

MQL5 liefert einen Ereignisverarbeitungsmodus,

Warum liefern Sie nicht die Prarameter des Ereignisses?

Wünschen Sie wieOnChartEvent(....), liefern Sie Ereignis-ID und Parameter!!!!!!!!!!!!!

 
DxdCn:
Wünscht wieOnChartEvent(....), liefert Ereignis-ID und Parameter!!!!!!!!!!!!!

Das OnChartEvent wird im Artikel Creating Active Control Panels in MQL5 for Trading verwendet.