Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Forse abbiamo bisogno di PositionTotal()?
E cosa ha a che fare questo con la posizione se chiedo a OrdersTotal() quanti ordini sono attualmente piazzati?
E richiedo questa informazione in OnTrade(), il momento in cui l'ordine esiste non può essere perso.
Ma in realtà, si scopre che questo momento viene perso comunque e le richieste vengono elaborate o quando l'ordine non è ancora presente o quando è già presente.
Ma il momento in cui esiste non viene rilevato in OnTrade(), o altrimenti, la OrdersTotal() mente.
Per evitare di lamentarsi dell'imperfezione del codice, ecco il codice MetaQuotes con il mio miglioramento dello script nell'Expert Advisor.
Aggiunta la funzione OnTrade() e messo il codice dello script in OnInit().
Nessuna delle stampanti ha emesso un messaggio che indica la presenza di un ordine.
Posso rispondere solo con un articolo Eventi commerciali in MetaTrader 5:
Заключение
Tutte le operazioni nella piattaforma analitica e di trading MetaTrader 5 sono asincrone, e tutti i cambiamenti nel conto di trading sono riportati indipendentemente l'uno dall'altro. Pertanto non si dovrebbe cercare di tracciare un singolo evento secondo la regola "Una richiesta - Un evento di trading". Se vogliamo determinare esattamente cosa è cambiato dopo l'evento Trade, dobbiamo analizzare tutte le transazioni, posizioni e ordini ad ogni chiamata del gestore OnTrade e confrontarli con lo stato che avevamo prima che l'evento apparisse.Posso rispondere solo con l'articolo Trading Events in MetaTrader 5:
Questo significa che l'ordine che stai cercando di catturare dovrebbe probabilmente già essere ricercato usando HistoryOrdersTotalSono guidato da questo articolo. Vorrei trovare la risposta alla domanda: com'è possibile che un evento commerciale manchi il momento in cui un ordine è piazzato ma non è ancora stato eseguito?
Gli eventi commerciali sono generati dal server nei seguenti casi
Ho il sospetto che OrderTotal() fallisca. Ma non posso provarlo con questa funzionalità.
Anche se come opzione non rifiuto che OrderTotal() prenda i dati non dove penso che siano (cioè non sul server).
Sto seguendo questo articolo. Vorrei trovare la risposta alla domanda: com'è possibile che un evento commerciale manchi il momento in cui un ordine è stato piazzato ma non ancora eseguito?
Nel momento in cui gli eventi commerciali arrivano, l'ordine è già stato piazzato ed eseguito. Pertanto, non è tra gli ordini attivi ed è già stato aggiunto alla storia.
Sì, sì, i miei pensieri fluttuano intorno a questa risposta.
Risponderei così, al momento dell'ordine, il server genera un evento "trades" e lo invia al terminale, quando il terminale lo riceve, il codice fa una richiesta per il numero di ordini, ma quando questa richiesta arriva al server, il server ha già eseguito l'ordine.
Non ho altre spiegazioni.
Gli eventi commerciali sono generati dal server nei seguenti casi:
Ho il sospetto che OrderTotal() fallisca. Ma non posso provarlo con questa funzionalità.
Ho capito bene che la lista degli ordini attivi include sia gli ordini pendenti attivi che gli ordini per aprire una posizione?
Cosa significa questo?
... nella scheda "Esperti" appare questo messaggio. Non è un errore, è un avvertimento. Un avvertimento su cosa?
Beh, non ho detto "errore". Che sia un "avvertimento". Ho già detto la mia versione con un esempio. Dai un'altra occhiata alla discussione da qui (sulla perdita di linea - leggi fino alla fine della pagina): https://www.mql5.com/ru/forum/1111/page345#comment_54616
Potresti dover andare al BOD, con i dettagli della tua situazione.
Ho trovato una "confusione".
Perché al compilatore non piace la seconda definizione della variabile b?
E in generale, come gestire questa situazione?