![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
all'uscita della funzione di avvio
Fino a 100000 senza miglioramenti visibili
Sostituito da
su
Stesso pepe.
Errore 146.
cioè noi stessi stiamo aspettando che il nostro contesto di trading venga rilasciato
e in generale, questa è una situazione estremamente strana. dopo aver condotto un'operazione di trading, il contesto viene rilasciato istantaneamente. altrimenti sarebbe impossibile chiudere le posizioni in un ciclo
Ancora una volta.
Il codice di cui sopra causerà l'arresto dell'Expert Advisor, se il trade flag è stato cancellato.
Questo farà sì che il commercio si fermi del tutto, perché nessuno segnalerà il semaforo. Questa situazione è almeno in qualche modo controllabile, perché la bandiera può essere rimossa solo manualmente.
Peggio ancora è il caso del semaforo. GlobalVariableSet può cadere su un altro EA, quando quest'ultimo chiude il semaforo. Come risultato, diversi EA cercheranno di fare trading allo stesso tempo.
Come vediamo, gli sviluppatori non capiscono quali processi asincroni avvengono nel terminale. E questo malinteso viene esportato nel forum.
Non c'è da stupirsi che appaiano errori fatali, come quello discusso qui, e che questi errori non possano essere corretti.
Perché dare consigli dannosi?
Il presupposto è che se il consulente ha raggiunto questo punto, allora la bandiera del trading sta in piedi!
si presume che se l'EA ha raggiunto questo punto, allora la bandiera di trading è alzata!
Qual è la base di questa supposizione? Quando le ipotesi non corrispondono alla realtà, si verificano errori inaspettati.
La bandiera non è niente.
Sincronizzazione, mutex, risorse condivise - il problema è reale. È un'assurdità suggerire di risolverlo con variabili globali a livello utente. Soprattutto perché l'esempio è impraticabile.
Ahimè. "Dalle 12 di notte" non è una statistica. Per ragioni sconosciute, i problemi arrivano a ondate, poi nessuno, poi diversi in una volta...
Ho pensato - chi se ne frega (tono da violinista di Kindzadz) :))
Per quanto riguarda la realtà della chiusura/apertura - ho dei controlli in tutte le funzioni f e gli errori appaiono, ma sono errori FALSI. Ho controllato i registri e la cronologia degli ordini, tutte le posizioni erano chiuse. L'ordine non ha avuto il tempo di muoversi nella storia. Ho fatto un ritardo di 1 secondo prima di controllare - ma non è abbastanza... Quando ho chiesto, non mi hanno dato alcuna risposta.
Buon punto. Ma ho avuto casi in cui anche un'ora dopo l'ordine non è andato da nessuna parte, cioè, a volte non sono falsi.
Anch'io ho un ritardo di 10 secondi.
Tutti i miei errori, come si è scoperto, erano nel codice =) cioè ho fatto il controllo sbagliato dopo l'orderclose.
Dopo averlo corretto - non ce ne sono. È vero che non è passato molto tempo, dobbiamo aspettare...
Dopo averlo corretto - non ce ne sono. È vero che non è passato molto tempo, dovremo aspettare...
Come appare il codice corretto?
per orderclaus:
per ordersand - solo un 5x tentativo di selezionare un ordine con una seconda pausa,
per modifiersand - confrontando i vecchi valori con quelli attuali