Discussione sull’articolo "Elaborazione di eventi di trading nell'Expert Advisor utilizzando la funzione OnTrade()" - pagina 2

 

Cioè: OnTrade( )

dovrebbe essere OnTrade( id, para1,para2.....)

 

Qualcuno potrebbe migliorare il codice fornito nell'articolo per elaborare l'evento di chiusura di una posizione tramite stop loss o take profit?

Si è rivelato inutile negli ultimi 2,5 anni dalla pubblicazione dell'articolo?

 
  • Posizioni
    1. Aprire
    2. Aggiungere
    3. Modificare (cambiare "Stop Loss" e "Take Profit")
    4. Invertire
    5. Chiudere l'intera posizione
    6. Chiudere parte della posizione
  • Ordine pendente
    1. Posizionare
    2. Modificare

Si consiglia di tradurre https://www.mql5.com/en/articles/211 Ordini, Posizioni e Operazioni in MetaTrader 5.

Innanzitutto, è necessario scoprire quale dei 6+2 sopra citati corrisponde a Ordini, Posizioni e Contratti!

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.
 
per MQL4, cosa vi viene in mente di simile a OnTrade?
 
Serhiy Dotsenko:
per MQL4, cosa vi viene in mente di simile a OnTrade?

Controllare ad ogni tick OrdersTotal() e OrdersHistoryTotal() - se la cifra è cambiata, chiamare OnTrade().

 
Grazie, anch'io sono arrivato a qualcosa di simile ) Pensavo che ci fosse qualcosa di esattamente guidato dagli eventi ) in quanto sarà possibile reagire all'ontrade manuale solo al secondo tick )
 

Ciao ,


grazie per aver scritto questo articolo... Ho giocato un po' con il tuo codice. Ma all'inizio ho il problema di base, che sto lavorando con le posizioni. Questo significa che:

Il mio EA sta impostando un buyorder nel backtest e la funzione Ontrade viene chiamata più volte come descritto. Ma il tuo codice controlla solo OrdersTotal. La cosa strana è che il risultato di questa funzione è sempre 0. Dopo aver piazzato il mio ordine ho solo una posizione Buy, che non viene gestita dal tuo codice, vero?

Cosa c'è di sbagliato?

 
Serhiy Dotsenko:
per MQL4, cosa si può pensare di simile a OnTrade?
Generare OnChartEvent() prima di effettuare un'operazione di trading, e in esso cercare di ottenere il risultato dell'operazione di trading.... E si può pensare a un tipo, in base al quale OnChartEvent() deve essere chiamato il numero necessario di volte...
 
Denis Kirichenko:
Generare OnChartEvent() prima di effettuare un'operazione di trading, e in esso cercare di ottenere il risultato dell'operazione di trading.... E si può pensare a un tipo, in base al quale OnChartEvent() deve essere richiamato il numero necessario di volte...

Se non ci sono elementi grafici, perché abbiamo bisogno di una tale variante? A mio parere, non è necessaria...

 
Grazie per l'articolo, naturalmente. Mi ha fatto risparmiare tempo. Perché non ho dovuto cercare da qualche parte informazioni su questi eventi. Non ci sono informazioni nella guida e scrivere continuamente all'assistenza richiede tempo. Ecco perché l'articolo è rilevante. Ma il codice è angusto, a dire il vero. Ho dovuto trasferirlo a me stesso e portarlo in una forma normale. E poi ho dovuto rifletterci su.