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
Sviluppatori, avete un errore da qualche parte.
Guardate lo screenshot di Comment dopo aver chiuso il terminale e averlo aperto dopo 1 minuto.
Numero di elementi inizializzati e che il primo, secondo, terzo e quarto elemento del buffer è vuoto.
L'indicatore conta solo il buffer 0. Allora perché 2 candele?
Sviluppatori, avete un errore da qualche parte.
Guardate lo screenshot di Comment dopo aver chiuso il terminale e averlo aperto dopo 1 minuto.
Numero di elementi inizializzati e che il primo, secondo, terzo e quarto elemento del buffer è vuoto.
L'indicatore conta solo il buffer 0. Allora perché 2 candele?
Perché quando si analizza una nuova barra, non si controlla il numero di barre, ma ci si limita a controllare il tempo. Quando si avvia il terminale o si interrompe la connessione con il server durante l'operazione, arriva un segno di spunta prima che arrivino le barre mancanti (alla cronologia completa). A questo tick viene creata una nuova candela, ma c'è un gap (storia mancante) tra essa e la storia nel terminale, che verrà scaricata dal server e inserita nel sistema, e dato che non si analizza il numero di barre, si penserà che non ci sia una nuova barra nel calcolo successivo, ed è allora che appare la seconda candela. Dopo l'apertura di una nuova barra scomparirà.
E non importa che in deinit l'azzeramento avvenga quando il terminale è chiuso?
Vasily, esegui un indicatore di test che stampa il numero di barre.
Questo è ciò che viene stampato nel log.
Forse questo ti dirà da dove viene il problema...
Si prega di chiedere agli sviluppatori una risposta semplice.
Quando il terminale viene chiuso, viene eseguita la funzione DeInit() nei programmi collegati al grafico?
In senso stretto, no.
OnDeinit viene eseguito. DeInit sarà eseguito solo se lo chiamate esplicitamente da OnDeinit.
Se vi riferite alla vecchia funzione deinit, tenete anche presente che i nomi delle funzioni sono sensibili alle maiuscole. Cioè, deInit è una funzione sconosciuta, deinit è un punto di ingresso standard sulla deinizializzazione (come OnDeinit)
E non importa che in deinit l'azzeramento avvenga quando il terminale è chiuso?
Chi se ne frega? Quando il terminale viene chiuso, questi buffer non sono più necessari, perché saranno immediatamente rilasciati quando il programma viene scaricato, che avviene subito dopo OnDeinit
Prova a cambiare solo l'intervallo di tempo. OnDeinit funzionerà, i buffer rimarranno (perché il programma non viene scaricato in questo caso), ma nessuno garantisce il loro contenuto dalla "vita passata"
Leggete finalmente la documentazione! https://docs.mql4.com/ru/runtime/running e https://docs.mql4.com/ru/runtime /event_fire#deinit
Chi se ne frega? Quando si chiude il terminale, questi buffer non sono più necessari, perché saranno immediatamente rilasciati quando il programma viene scaricato, che avviene subito dopo OnDeinit
Prova a cambiare solo l'intervallo di tempo. OnDeinit funzionerà, i buffer rimarranno (poiché lo scarico del programma non avviene in questo caso), ma nessuno garantisce il loro contenuto dalla "vita passata"
Leggete finalmente la documentazione! https://docs.mql4.com/ru/runtime/running e https://docs.mql4.com/ru/runtime /event_fire#deinit
Quindi nel mio caso, i buffer sono biforcati quando il grafico viene riaperto?
Non avete una biforcazione del buffer.
Questo è il modo in cui riempite il vostro buffer da soli. La prima volta, quando si disegna; la seconda volta, quando si ottiene una porzione di dati. Entrambe le volte si opera con lo stesso valore di Time[0].
Non state avendo un buffer split.
È così che si riempie il proprio buffer. La prima volta al rendering e la seconda all'arrivo dei dati. Entrambe le volte si opera con lo stesso valore di Time[0].
OK.
Si prega di correggere l'aiuto inglese e questo è tutto.
Anche l'aiuto inglese dice cheArrayInitialize non restituisce nulla.