C'è una cosa del genere in MT4, non so se quando OnInit viene attivato dopo aver cambiato il conto, l'ambiente non ha avuto il tempo di aggiornare il numero di conto o qualche altro bug, ho deciso di timer
molte cose vanno male se il terminale con EA in esecuzione viene ricaricato
imho, se il codice non è per tester, allora tutta l'inizializzazione è meglio farla quando arriva il primo tick - allora il 99,9% di tutto sarà inizializzato correttamente
molte cose vanno male se il terminale con un EA in esecuzione è sovraccarico
imho, se il codice non è per un tester, allora tutta l'inizializzazione è meglio farla quando arriva il primo tick - allora il 99,9% di tutto sarà inizializzato correttamente
molte cose vanno male se il terminale con un EA in esecuzione è sovraccarico
imho, se il codice non è per tester, allora è meglio inizializzare tutto quando arriva il primo tick - allora il 99,9% di tutto sarà inizializzato correttamente
meglio fare tutta l'inizializzazione quando arriva il primo tick - allora il 99,9% delle cose sarà inizializzato correttamente... Com'è?
Puoi farlo in modo diretto, evitando il tipo di imbottitura 'My'.
int OnInit()
{
...
account=AccountNumber();
...
}
voidOnTick()
{
staticbool first_run = true;
if(first_run)
{
if(account==0) { // Если терминал не успел получить данные с сервера
OnInit(); // пробуем снова всё инициализировать
return;
}
first_run = false;
}
Il tuo esempio è un esempio di come sia pigro scrivere un paio di lettere in più e ottenere codice non sistematico - qui almeno 2 volte sarà chiamato OnInit() quando si esegue EA, non il fatto che sarà necessario, o meglio non violare ciò che è stato scritto prima - il livello delle domande che hai visto, giusto? )))
Il tuo esempio è un esempio di come sia pigro scrivere un paio di lettere in più e ottenere codice non strutturato - qui almeno 2 volte sarà chiamato OnInit() all'avvio EA, non il fatto che sarà necessario, o meglio non romperà ciò che è stato scritto prima - il livello delle domande che hai visto, giusto? )))
first_run = true;
Bisogna anche controllare in Init alla prima inizializzazione e forse c'è già "zero".
Altrimenti sì, sono d'accordo.
P.S. Non sono d'accordo, non sarà chiamato 2 volte se sei riuscito a connetterti al server e ottenere dati reali da esso.
E hai iniziato a cercare l'ottimizzazione dell'inizializzazione in OnTick/OnInit - tutto è più semplice lì, hai bisogno di protezione per il codice trovato da condividere con gli stessi amici ))))
C'è una cosa del genere in MT4, non so se quando OnInit viene attivato dopo aver cambiato il conto, l'ambiente non ha avuto il tempo di aggiornare il numero di conto o qualche altro bug, ho deciso di timer
molte cose vanno male se il terminale con EA in esecuzione viene ricaricato
imho, se il codice non è per tester, allora tutta l'inizializzazione è meglio farla quando arriva il primo tick - allora il 99,9% di tutto sarà inizializzato correttamente
molte cose vanno male se il terminale con un EA in esecuzione è sovraccarico
imho, se il codice non è per un tester, allora tutta l'inizializzazione è meglio farla quando arriva il primo tick - allora il 99,9% di tutto sarà inizializzato correttamente
Sono d'accordo, ma probabilmente c'è lo 0,1% ))
molte cose vanno male se il terminale con un EA in esecuzione è sovraccarico
imho, se il codice non è per tester, allora è meglio inizializzare tutto quando arriva il primo tick - allora il 99,9% di tutto sarà inizializzato correttamente
meglio fare tutta l'inizializzazione quando arriva il primo tick - allora il 99,9% delle cose sarà inizializzato correttamente... Com'è?
tutte le inizializzazioni sono meglio fatte all'arrivo del primo tick - allora il 99,9% di tutto sarà inizializzato correttamente... Com'è?
Puoi farlo in modo diretto, evitando il tipo di imbottitura 'My'.
Potete farlo direttamente evitando l'imbottitura sotto forma di "My".
non è imbottitura, è codice strutturato.
Il tuo esempio è un esempio di come sia pigro scrivere un paio di lettere in più e ottenere codice non sistematico - qui almeno 2 volte sarà chiamato OnInit() quando si esegue EA, non il fatto che sarà necessario, o meglio non violare ciò che è stato scritto prima - il livello delle domande che hai visto, giusto? )))
non è un blocco, è un codice strutturato
Il tuo esempio è un esempio di come sia pigro scrivere un paio di lettere in più e ottenere codice non strutturato - qui almeno 2 volte sarà chiamato OnInit() all'avvio EA, non il fatto che sarà necessario, o meglio non romperà ciò che è stato scritto prima - il livello delle domande che hai visto, giusto? )))
first_run = true;Bisogna anche controllare in Init alla prima inizializzazione e forse c'è già "zero".
Altrimenti sì, sono d'accordo.
P.S. Non sono d'accordo, non sarà chiamato 2 volte se sei riuscito a connetterti al server e ottenere dati reali da esso.
non funziona, perché è scritto nella documentazione cheOnTick() non funziona negli indicatori!
non funziona, perché la documentazione dice cheOnTick() non funziona negli indicatori!
Beh, questo è il limite :(
Sostituire OnTick() con
E io andrò all'altro ramo.Beh, questo è il limite :(
Ho scritto sopra, sul livello delle domande ;)
E hai iniziato a cercare l'ottimizzazione dell'inizializzazione in OnTick/OnInit - tutto è più semplice lì, hai bisogno di protezione per il codice trovato da condividere con gli stessi amici ))))