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

 
Automated-Trading:

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

Ich meine: OnTrade( )

sollte OnTrade( id, para1,para2.....) sein

 

Könnte bitte jemand den im Artikel angegebenen Code verbessern, um den Fall der Schließung einer Position durch Stop Loss oder Take Profit zu verarbeiten?

Hat es sich in den letzten 2,5 Jahren seit der Veröffentlichung des Artikels als unnötig erwiesen?

 
  • Positionen
    1. Öffnen
    2. Hinzufügen
    3. Ändern (Stop Loss und Take Profit ändern)
    4. Stornieren
    5. Gesamte Position schließen
    6. Einen Teil der Position schließen
  • Pending Order
    1. Platzieren
    2. Ändern

Es wird empfohlen, https://www.mql5.com/en/articles/211 Orders, Positionen und Deals in MetaTrader 5 zu übersetzen.

Zunächst müssen Sie herausfinden, welche der oben genannten 6+2 den Orders, Positionen und Deals entsprechen!

Orders, Positions and Deals in MetaTrader 5
Orders, Positions and Deals in MetaTrader 5
  • 2011.02.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Creating a robust trading robot cannot be done without an understanding of the mechanisms of the MetaTrader 5 trading system. The client terminal receives the information about the positions, orders, and deals from the trading server. To handle this data properly using the MQL5, it's necessary to have a good understanding of the interaction between the MQL5-program and the client terminal.
 
Was fällt Ihnen zu MQL4 ein, das mit OnTrade vergleichbar wäre?
 
Serhiy Dotsenko:
für MQL4, was fällt Ihnen ein, das OnTrade ähnlich wäre?

Prüfen Sie bei jedem Tick OrdersTotal() und OrdersHistoryTotal() - wenn sich die Zahl geändert hat - rufen Sie OnTrade() auf.

 
danke, ich bin auch auf etwas ähnliches gekommen ) ich dachte es gibt etwas genaues Ereignisgesteuertes ) da es möglich sein wird auf manuelle Ontrades erst am 2. Tick zu reagieren )
 

Hallo ,


danke für die Erstellung dieses Artikels... Ich habe ein wenig mit deinem Code herumgespielt. Aber zunächst habe ich das Grundproblem, dass ich mit Positionen arbeite. D.h.:

Mein EA setzt im Backtest eine Buyorder und die Ontrade-Funktion wird wie beschrieben mehrfach aufgerufen. Ihr Code prüft aber nur OrdersTotal. Das Merkwürdige ist: Das Ergebnis dieser Funktion ist immer 0. Nachdem ich meine Order platziert habe, habe ich nur eine Buy Position, die von Ihrem Code nicht behandelt wird, oder?

Was ist hier falsch?

 
Serhiy Dotsenko:
für MQL4, was fällt Ihnen ein, das ähnlich wie OnTrade wäre?
Erzeugen Sie OnChartEvent(), bevor Sie eine Handelsoperation durchführen, und versuchen Sie darin, das Ergebnis der Handelsoperation zu erhalten.... Und Sie können sich einen Typ vorstellen, nach dem OnChartEvent() die erforderliche Anzahl von Malen aufgerufen werden sollte...
 
Denis Kirichenko:
Erzeugen Sie OnChartEvent(), bevor Sie eine Handelsoperation durchführen, und versuchen Sie darin, das Ergebnis der Handelsoperation zu erhalten.... Und Sie können sich einen Typ ausdenken, nach dem OnChartEvent() die notwendige Anzahl von Malen aufgerufen werden soll...

Wenn es keine grafischen Elemente gibt, warum brauchen wir dann eine solche Variante? Meiner Meinung nach ist sie unnötig...

 
Vielen Dank für den Artikel, natürlich. Hat mir etwas Zeit erspart. Denn ich musste nicht irgendwo über diese Ereignisse suchen. In der Hilfe gibt es null Informationen, und ständig an den Support zu schreiben ist auch Zeit. Deshalb ist der Artikel relevant. Aber der Code ist verkrampft, um ehrlich zu sein. Ich musste ihn auf mich selbst übertragen und ihn in eine normale Form bringen. Und dann musste ich ihn überdenken.