Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1854

 
Alexander Avksentyev #:

Quando la rete impiega così tanto tempo, chiuderà a turno quelle giuste.
Quando si chiude l'ultimo, può succedere che ci siano 10 ordini da chiudere e li chiude tutti uno per uno e ci vuole un tempo infinito.

Questo processo è un non-stop.

Se vero, si continua; se falso, si elabora un errore; errore critico, si esce; non critico (slittamento), si continua.

Se la negoziazione non è una cucina completa, 15-20 EA chiudono rapidamente, intorno ai 2-3 secondi, altrimenti fino a 15 secondi. Edit, ci sono stati casi fino a 2 minuti.

Se è mt5, si chiude quasi istantaneamente.

 
Vitaly Muzichenko #:

Si chiude senza interruzione.

Dopo averne chiuso uno, controlla cosa ha restituito la funzione OrderClose, se vero - continua, se falso - errore di gestione, errore critico - uscita, non critico (slippage) - continua.

Se la negoziazione non è una cucina completa, 15-20 EA chiudono rapidamente, intorno ai 2-3 secondi, altrimenti fino a 15 secondi. Edit, ci sono stati casi fino a 2 minuti.

Se è mt5, si chiude quasi istantaneamente.

Se c'è un errore, è ancora necessario inviare una richiesta per chiudere questo ordine dopo un certo intervallo. Perché se rimane in sospeso per sempre, sarà già un cattivo robot. Con un tale ordine (posizione), è anche possibile perdere il deposito, se lo si tiene per molto tempo.

 
Mihail Matkovskij #:

Se c'è un errore, è ancora necessario inviare una richiesta per chiudere quell'ordine dopo un certo intervallo. Se rimane lì per sempre, sarà un cattivo robot. A causa di questo ordine (posizione), il deposito può anche essere perso se viene tenuto per molto tempo.

Dobbiamo gestirlo in modo adeguato. Se è critico, non ha senso martellare il server.

 
Vitaly Muzichenko #:

Deve essere gestita correttamente. Se è critico, non ha senso martellare il server.

Naturalmente non ha senso. Ma dopo un certo intervallo, dovresti provare a chiudere questo ordine (posizione). La ragione è questa. In primo luogo, la posizione aperta non può rimanere lì all'infinito. In secondo luogo, la posizione stessa non può essere chiusa per sempre. Prima o poi, il server accetterà una richiesta di chiusura dell'ordine(per uscire dalla posizione). E se non fate nulla, il risultato sarà come ho detto sopra. Il deposito può andare in grave sofferenza o perdere il suo valore.

 
Mihail Matkovskij #:

Naturalmente non ha senso. Ma dopo un certo intervallo vale ancora la pena provare a chiudere questo ordine (posizione). Perché. In primo luogo, la posizione aperta non può rimanere appesa per sempre. In secondo luogo, la posizione stessa non può essere chiusa per sempre. Prima o poi, il server accetterà una richiesta di chiusura dell'ordine(per uscire dalla posizione). E se non fate nulla, il risultato sarà come ho detto sopra. Il deposito può cadere in un grande drawdown o può essere venduto.

È stato saltato di recente, la società di brokeraggio ha disabilitato l'auto-trading sul server. Era 1 minuto fa e poi è stato interrotto.

Cercheremo ancora di chiuderlo?

 
Vitaly Muzichenko #:

È stato menzionato di recente che il DC ha disabilitato la capacità di auto-trade sul server. Era 1 minuto fa e poi l'hanno spento.

Cercheremo ancora di chiudere?

Il messaggio è corretto quando ci sono errori critici nelle posizioni di chiusura.

 
Vitaly Muzichenko #:

È stato menzionato di recente che il DC ha disabilitato la capacità di auto-trade sul server. Era 1 minuto fa e poi l'hanno spento.

Cercherai ancora di chiuderlo?

Bene, allora possiamo chiamare

AccountInfoInteger(ACCOUNT_TRADE_EXPERT)

E anche

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)

И

TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)

Non si sa mai. E non fare nulla con il risultato corrispondente di una o tutte le funzioni. E gestire di conseguenza gli errori derivanti da una chiusura non riuscita.

In ogni caso, garantiremo che il robot non farà trading finché almeno una delle funzioni lo proibirà.

Документация по MQL5: Программы MQL5 / Разрешение на торговлю
Документация по MQL5: Программы MQL5 / Разрешение на торговлю
  • www.mql5.com
Разрешение на торговлю - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Mihail Matkovskij #:

E gestire di conseguenza gli errori come risultato di una chiusura fallita.

Solo che non so, se OrderSend viene chiamato e il server ha disabilitato il commercio,OrderSend restituirà false o la richiesta sarà inviata prima al server e poi restituirà una risposta? Se quest'ultimo, allora OrderSend restituirà true. E poi devi assolutamente aggiungere una funzione () per bloccare le chiamate alla funzioneOrderSend. E se la prima, allora la richiesta non sarà nemmeno inviata alla coda, perché OrderSend ha restituito false. Ha senso?

 
Mihail Matkovskij #:

Solo che non so, se OrderSend viene chiamato e il server ha disabilitato il commercio,OrderSend restituirà false o la richiesta sarà inviata prima al server e poi restituirà una risposta? Se quest'ultimo, allora OrderSend restituirà true. E poi devi assolutamente aggiungere una funzione () per bloccare le chiamate alla funzioneOrderSend. E se la prima, allora la richiesta non sarà nemmeno inviata alla coda, perché OrderSend ha restituito false. Ha senso?

OrderSend restituisce un biglietto quando ha successo :)

Probabilmente andrò nel ramo dei principianti

 
Vitaly Muzichenko #:

OrderSend restituisce un biglietto al successo :)

Probabilmente andrò nel ramo dei neofiti

OrderSend in MQL4 restituisce un biglietto. E in MQL5 è un bool. Sono abituato a considerare finzioniMQL5.Ho dimenticato un po' di MQL4 (perché sono abituato a portare applicazioni da MQL5 a MQL4). In MQL5 in generale OrderSend bool apre e chiude posizioni e crea/cancella ordini. MQL5 ha funzioni per ordini, accordi e posizioni. In MQL4, int OrderSend è per l'entrata, e bool OrderClose è per l'uscita. C'è anche il bool OrderDelete per gli ordini in sospeso. E inMQL4 solo gli ordini sono divisi in ordini a mercato e in sospeso. Mi hai fatto ricordare qual è la differenza tra queste due lingue. :)

Quindi, non si può sapere tutto. Ed è molto facile confondersi.

Motivazione: