Errori, bug, domande - pagina 1984

 
Aleksey Vyazmikin:

Il buffer non dovrebbe scomparire dopo la scomparsa dell'indicatore?

Tuttavia, forse i calcoli devono essere de-inizializzati in qualche modo, ma come?

È stato rimosso dal codice?

 
Alexey Viktorov:

È stato rimosso dal codice?


È stato solo dichiarato nel codice, ma non è stato fatto alcun calcolo.

 

Rimosso del tutto le menzioni dal codice - i buffer sono spariti.

 
Alexey Viktorov:

È così che deve essere. La pulizia dell'array e/o del buffer degli indicatori è una preoccupazione del programmatore.

A proposito, c'è ancora un difetto. Se c'è un'impostazione dinamica del numero di serie del grafico (a scelta dell'utente), anche se i buffer sono inizializzati con valori vuoti in OnDeinit(), sono ancora visibili al riavvio dell'indicatore.

Cioè, se indicator_plots è più del numero di serie grafiche utilizzate, la spazzatura può rimanere sullo schermo (nel caso in cui tutte le serie grafiche sono state coinvolte prima, e poi alcune di esse non sono più coinvolte).

 
Alexey Kozitsyn:

A proposito, c'è ancora un difetto. Se c'è un'impostazione dinamica del numero di serie del grafico (a scelta dell'utente), anche se i buffer sono inizializzati con valori vuoti in OnDeinit(), sono ancora visibili al riavvio dell'indicatore.

Cioè, se indicator_plots supera il numero di trame utilizzate (serie di grafici), la spazzatura può rimanere sullo schermo (nel caso in cui tutte le serie di grafici sono coinvolte prima, e poi alcune non lo sono più).

Che è quello che succede con il nostro omonimo. Ma questo si risolve in un "una tantum", no? Se i tracciati non sono più necessari, devono essere cancellati o riempiti ad ogni barra con un valore non visibile.

Non sono molto esperto di hardware, ma sospetto che abbia a che fare con la cancellazione dell'indirizzo di memoria del computer. E probabilmente a causa di questo, tra le altre cose, aumenta la velocità di MT.

 
Alexey Viktorov:

Che è il caso del nostro omonimo. Ma questo può essere risolto subito, vero? Se le trame non sono più necessarie, devono essere cancellate, o su ogni barra devono essere riempite con un valore che non viene visualizzato.

Non sono forte in hardware, ma sospetto che abbia a che fare con la cancellazione dell'indirizzo di memoria. E probabilmente a causa di questo, tra le altre cose, la velocità di MT aumenta.

Non so lui, ma io non sono riuscito a risolvere questo problema. Dovrebbe essere più semplice di così. Arriva il momento della deinizializzazione, lo prende e azzera tutti i buffer. Solo tutti i buffer in uso. Idealmente, dovrebbe aiutare. Tuttavia, si ottiene la seguente immagine.

Il caso di usare tutte le serie di grafici:

Ed ecco cosa succede quando si disabilita la visualizzazione della freccia (tramite i parametri di input):


E qualunque sia il clearing impostato in OnDeinit() - la spazzatura rimane.

 
Alexey Kozitsyn:

Non so lui, ma io non sono riuscito a risolvere questo problema.

Più tardi monterò un indicatore di prova e lo invierò alla SD.
 
Alexey Kozitsyn:
Più tardi monterò un indicatore di prova e lo invierò alla SD.

Saggia decisione!

E mi è stato detto che dovrebbe esserlo, quindi ho già riscritto e strofinato tutto...

 
Alexey Kozitsyn:

Non so lui, ma io non sono riuscito a risolvere questo problema. Dovrebbe essere semplice. Il momento della deinizializzazione è arrivato, ho preso tutti i buffer e li ho azzerati. Solo tutti i buffer in uso. Idealmente, dovrebbe aiutare. Tuttavia, si ottiene la seguente immagine.

Il caso di usare tutte le serie di grafici:

Ed ecco cosa succede quando si disabilita la visualizzazione della freccia (tramite i parametri di input):


E qualunque sia il clearing impostato in OnDeinit() - la spazzatura rimane.

Alexey, una domanda immodesta, PLOT_EMPTY_VALUE è prescritto?

 
Alexey Viktorov:

Alexei, e domanda immodesta, PLOT_EMPTY_VALUE è prescritto?

Sì, certo che lo è.