![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
In Combat Advisors, ho avvolto funzioni ovunque in luoghi sospetti in _B(FuncName(...), AlertTime).
Ho dimenticato che è molto costoso.
Nel migliore dei casi spendo decine di millisecondi per ogni tick solo a causa di HistorySelect.
Il profilo di un consigliere di combattimento.
Perché usare il costoso HS, tranne quando si avvia il robot?
Scritto all'inizio del thread.
Si fa un OrderSend. Se, subito dopo la fine dell'OrderSend, una certa posizione non è stata chiusa allo stesso tempo, si effettua un altro OrderSend. Questa è tutta la logica necessaria per programmare. Async non è usato.
Ora la situazione che si è verificata per il nostro robot. Avete inviato un OrderSend e mentre viene eseguito il Limiter è scattato e quindi il TP della nostra posizione è stato eseguito, come ho detto prima.
Davvero non ci capisco niente - se puoi, per favore descrivi i passi in modo più dettagliato. L'unica cosa che ho ottenuto è che solo il gestore di eventiOnTradeTransaction viene utilizzato, il che significa che non abbiamo bisogno di una gestione delle priorità di gestione degli eventi e il suggerito
bool HandleNextEvent(ENUM_EVENT_TYPE);
degenera in
bool HandleNextEvent();
È qui che davvero non capisco - se puoi, per favore descrivilo in modo più dettagliato passo dopo passo.
Perché non si puòtornare indietro dopo aver chiamatoOrderSend?
La prossima volta che si ritorna a OnMain quando un nuovo evento è stato aggiunto alla coda (o dal timer)
A100:
Perché la chiamataOrderSend non può essere seguita daun ritorno?
Non c'è nessuna limitazione.
La prossima volta che si ritorna a OnMain quando un nuovo evento viene aggiunto alla coda (o dal timer)
Il prossimo evento è l'esecuzione di un ordine pendente e non di una posizione di presa.
L'evento successivo è l'esecuzione dell'ordine pendente, non l'acquisizione della posizione.
Si suggerisce di ritornare ripetutamente, fino a leggere l'intera coda corrente o per un dato numero di eventi. Quando gli eventi commerciali sono finiti - ci sarà un ritorno del timer e avrai accesso a tutti gli eventi in una volta sola