OnDeinit negli indicatori

 

Perché, dopo l'apertura di un grafico, gli indicatori collegati al grafico non attivano la disattivazione?

Questo è logico!

 

più dettagli, ma solo un'ipotesi su cosa intendi (circa il drag and drop dalla panoramica del mercato a un grafico con un indikator???)

 

Per esempio, l'indicatore disegna le zone di supporto e resistenza degli ultimi 3 giorni. Deinit rispettivamente rimuove le zone. La sera spengo il PC, la mattina lo accendo e voilà, vengono visualizzate 4 zone (3 precedenti e una nuova).

Chiedo che il deinit sia attivato prima dell'init, e dopo aver rilasciato l'indicatore.

 
Mi chiedo come l'indicatore rileverà ciò che deve essere cancellato se ciò che deve essere cancellato non è definito nel deinit?
 
eevviill:


Assicuratevi che il deinit sia attivato prima dell'init, e dopo che l'indicatore è staccato.

Allora chiamalo tu stesso - qual è il problema?

void OnDeinit(const  int reazon)
{
// .........................
}
int OnInit(void)
  {
   string short_name;
// -------
    OnDeinit(0);
// -------
// .............................
//--- initialization done
   return(INIT_SUCCEEDED);
  }
 
eevviill:

Per esempio, l'indicatore disegna le zone di supporto e resistenza degli ultimi 3 giorni. Deinit rispettivamente rimuove le zone. La sera spengo il PC, la mattina lo accendo e voilà, vengono visualizzate 4 zone (3 precedenti e una nuova).

Chiedo che il deinit sia attivato prima dell'init, bene, e dopo aver staccato l'indicatore.

Nella build 670 - bug con il motivo della deinizializzazione quando si chiude il terminale (restituisce 4 - grafico chiuso e richiede 9 - il terminale è chiuso)

Scritto - risolto, la build 711 funziona bene.

 
È un altro bug che è stato in giro per anni, da una build all'altra. Mi sono abituato, deinizializzo durante l'inizializzazione come descritto sopra.
 
eevviill:

Per esempio, l'indicatore disegna le zone di supporto e resistenza degli ultimi 3 giorni. Deinit rispettivamente rimuove le zone. La sera spengo il PC, la mattina lo accendo e voilà, vengono visualizzate 4 zone (3 precedenti e una nuova).

Chiederei a deinit di attivarsi prima dell'init, e dopo aver staccato l'indicatore.

Se spengo ilmio PC la sera, si può supporre che venga avviato qualche arresto e che il terminale venga ucciso come processo quando si spegne il PC...

Se il terminale è chiuso, OnDeinit funziona bene e cancella gli oggetti (711 build)...

 

No, non è così. Spengo il terminale normalmente.

Se Deinit è messo in Init, non funziona nemmeno.

Solo la funzione di cancellazione dell'oggetto personalizzato ha aiutato.

 
Conta il numero totale di oggetti sul grafico, forse altri programmi sono intasati? C'è un tempo limitato per eseguire la deinizializzazione e potrebbe non esserci il tempo di passare attraverso tutti gli oggetti.
 
Ragazzi, se volete uno schermo vuoto prima di visualizzare un indicatore/advisor/script, dovrete cancellarlo.