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
Fate una stampa all'inizio di OnDeinit e dopo aver chiuso il terminale client, guardate il log di Expert e assicuratevi che OnDeinit sia stato chiamato!
Ecco il tuo errore
Tu conosci chiaramente gli oggetti che hai creato tu stesso.
Mantenere i loro nomi e cancellarli senza riferimento a ObjectsTotal e ObjectName
PS la nuova build ha aggiunto una funzione per cancellare un gruppo di oggetti per prefisso. Vi aiuterà se nominate i vostri oggetti usando lo stesso prefisso unico nel loro nome
Fate Print all'inizio di OnDeinit e dopo aver chiuso il terminale client, guardate il log di EA e assicuratevi che OnDeinit sia stato chiamato!
Ecco il tuo errore
È chiaro che conosci gli oggetti che hai creato tu stesso.
Salvare i loro nomi e cancellarli senza riferimento a ObjectsTotal e ObjectName
PS La nuova build ha aggiunto una funzione per cancellare un gruppo di oggetti per prefisso. Vi aiuterà se nominate i vostri oggetti usando lo stesso prefisso unico nel loro nome
In realtà, deinit in tutti i programmi è chiamato quando il terminale è chiuso.
C'è persino un codice speciale per la causa della deinizializzazione. RAGIONE_CHIUSA
E azzera i buffer degli indicatori o no?
E azzera i buffer degli indicatori o no?
La situazione del tuo indicatore è stata risolta.
Ecco il punto - l'indicatore è calcolato non solo sull'arrivo dei tick, ma anche sulla prima estrazione e sull'arrivo della storia mancante.
1. Arriva un nuovo tick - l'indicatore viene calcolato.
2. Arriva la cronologia mancante, che riempie il buco tra i dati dell'ultimo avvio del terminale e l'ultimo tick. L'indicatore è calcolato. Ma allo stesso tempo non c'è una nuova condizione del bar!
Per risolvere questo problema è necessario controllare il numero di barre. Circa come questo
Blocca il blocco di inizializzazione del buffer con un valore vuoto sia in init che in deinit. Il risultato è lo stesso. Cioè non esiste.
Aspettando i commenti degli sviluppatori.
Tutto si azzera. Dopo tutto, il terminale si chiude )))
Hmm. Il blocco di inizializzazione del buffer EMPTY_VALUE è messo in Inite.
Perché? I buffer inite potrebbero non essere ancora allocati.
E quando il buffer è pesantemente bufferizzato (è arrivato un nuovo lotto di dati storici)?
In questi casi, l'inizializzazione dei buffer è fatta prima del calcolo dell'indicatore, quando è chiaro che l'intero indicatore sarà ricalcolato
Perché? I buffer inite potrebbero non essere ancora allocati.
E quando il buffer è molto grande (è arrivato un nuovo lotto di dati storici)?
In questi casi, l'inizializzazione dei buffer è fatta prima del calcolo dell'indicatore, quando è chiaro che l'intero indicatore sarà ricalcolato