prev_calcolato - pagina 7

 
Alexander Puzanov:

Lei ha un giudizio errato su tutti e tre i punti.

prev_calculate visualizza il numero di BAR contate (elaborate) nella chiamata precedente. Questo è un assioma.

Se la storia è cambiata, si è gonfiata, o l'indicatore non è stato ancora calcolato - valore di prev_calculate==0. Anche questo è un assioma.

Quale parte di questo non è chiara?

 
Karputov Vladimir:

Lei ha un giudizio errato su tutti e tre i punti.

prev_calculate visualizza il numero di BAR contate (elaborate) nella chiamata precedente. Questo è un assioma.

Se la storia è cambiata, si è gonfiata, o l'indicatore non è stato ancora calcolato - valore di prev_calculate==0. Anche questo è un assioma.

Quale parte di questo non è chiara?

Solo due problemi non sono chiari da esso:

1. Dove sparisce la storia se né il terminale né il grafico sono stati chiusi?

2. È così difficile fare l'array senza spazio spazzatura quando si inizializza il buffer dell'indicatore? Oppure l'array è inizializzato con il valore impostato in PLOT_EMPTY_VALUE

 
Alexey Viktorov:

Solo due problemi non sono chiari da questo:

1. Dove sparisce la storia se né il terminale né il grafico sono stati chiusi?

2. È così difficile fare un array senza spazzatura spaziale durante l'inizializzazione del buffer degli indicatori? Oppure l'array dovrebbe essere inizializzato con il valore impostato da PLOT_EMPTY_VALUE

1. @Dove sparisce la storia se né il terminale né il grafico sono stati chiusi?

2. Questa è proprio una situazione di vita reale, incontrata ad ogni passo. Ho bisogno di dichiarare una variabile. Quale pensi sia giusto, a) o b):

a): int i;
б): int i=0;
 
Karputov Vladimir:

1. @Dove sparisce la cronologia se né il terminale né il grafico sono stati chiusi?

2. Questa è una situazione abbastanza reale, incontrata ad ogni passo. Ho bisogno di dichiarare una variabile. Quale opzione pensi sia giusta, a) o b):

a): int i;
б): int i=0;

1. Nessuna implicazione, domanda diretta. Il terminale funziona, le quotazioni vengono ricevute, ad ogni tick l'indicatore ricalcola OnCalculate e conta prev_calculated che restituisce rates_total e improvvisamente bang!!! e si perde un'intera barra... Dove si va?

2. Non raggruppate le variabili, gli array personalizzati e i buffer degli indicatori.


Sembra che sia stata trovata una stampella. L'indicatore viene lanciato con questa stampella. Dopo un'altra perdita della storia ci sarà un risultato.

 
Alexey Viktorov:

Solo due problemi non sono chiari da questo:

1. Dove sparisce la cronologia se né il terminale né il grafico sono stati chiusi?

2. È così difficile fare l'array senza spazio spazzatura quando si inizializza il buffer dell'indicatore? Oppure l'array è inizializzato con il valore impostato in PLOT_EMPTY_VALUE

2. Non difficile, ma inutile, persino indesiderabile. Perché i buffer sono riempiti con i dati calcolati dell'indicatore. Non c'è bisogno di fare cose inutili.
 
Karputov Vladimir:

Lei ha un giudizio errato su tutti e tre i punti.

prev_calculate visualizza il numero di BAR contate (elaborate) nella chiamata precedente. Questo è un assioma.

Se la storia è cambiata, si è gonfiata, o l'indicatore non è stato ancora calcolato - valore di prev_calculate==0. Anche questo è un assioma.

Quale parte non è chiara?

Oh caro, come pensi che il bug sia diverso dall'assioma? Non hai bisogno di mettere parole in testa qui - tutto il formulato in 3 punti può essere facilmente visto nel mio 1° post. Se non è così - sei un programmatore, non un falegname, mostra nel tuo codice come risolvere separatamente i semplici compiti elencati in 3 paragrafi con prev_calculated nudo senza stampelle aggiuntive: mostrare quante barre sono state contate nel tick precedente, definire la prima chiamata di OnCalculate e definire che la storia (checksum) è stata modificata. Non c'è bisogno di inventare nulla per l'utente, per adattarsi ai vostri assiomi - i compiti sono formulati, molto semplici e non ambigui come mezzo dito

 

Alexey Viktorov:

Questo NON è nella documentazione!!! Quindi, è un saggio a ruota libera. Proprio come la mia affermazione sull'inizializzazione automatica, ancora più figa. Almeno il mio aveva un disclaimer...

Di cosa stai parlando senza senso? Se questa inizializzazione è implementata in OnCalculate, sarà inizializzata senza alcun ciclo. Ma se prev_calculated è azzerato, azzera tutti i dati che sono stati accumulati durante il funzionamento...

A una domanda sull'inizializzazione dei buffer all'inizializzazione. Considera logicamente. Non c'è accesso a rates_total in OnInit(), giusto? Se non c'è accesso a rates_total in OnInit(), allora le dimensioni dei buffer degli indicatori non sono ancora note ( =0 potete controllare voi stessi). E dato che la dimensione del buffer di un indicatore = 0, che cosa si resetta?

 
Alexander Puzanov:

Oh caro, come pensi che un bug sia diverso da un assioma? Non c'è bisogno di cospargersi il cervello di parole qui - tutto formulato in 3 paragrafi può essere facilmente visto nel mio primo post. Se non è così - sei un programmatore, non un falegname, mostra nel tuo codice come risolvere separatamente i semplici compiti elencati in 3 paragrafi con prev_calculated nudo senza stampelle aggiuntive: mostrare quante barre sono state contate nel tick precedente, definire la prima chiamata di OnCalculate e definire che la storia (checksum) è stata modificata. Non c'è bisogno di inventare nulla per l'utente, per adattarsi ai vostri assiomi - i compiti sono formulati, molto semplici e non ambigui come mezzo dito

Non dovresti rivolgere questa domanda a Vladimir (lui difende solo la posizione degli sviluppatori), ma agli sviluppatori stessi, che (rappresentati da Slawa) ti hanno detto che quando prev_calculated = 0, tutto deve essere ricalcolato. Non possono sempre calcolare tutte le varianti di utilizzo dell'indicatore. Se c'è un problema ora, è inutile torturare il moderatore, devi andare da servicedesk con una descrizione dettagliata.
 
Alexey Viktorov:

È così difficile assicurarsi che non ci sia spazzatura nell'array quando si inizializza il buffer dell'indicatore? Oppure l'array è inizializzato con il valore impostato a PLOT_EMPTY_VALUE

if (rates_total > prev_calculated)
  ArrayFill(Buffer, prev_calculated, rates_total - prev_calculated, EMPTY_VALUE);
 
Alexey Viktorov:

1. Nessun sottotesto, domanda diretta. Il terminale funziona, le quotazioni vengono ricevute, ad ogni tick l'indicatore ricalcola OnCalculate e conta prev_calculated restituendo rates_total e improvvisamente bang!!! e un'intera barra è persa... Dove si va?

2. Non raggruppate le variabili, gli array personalizzati e i buffer di indicatori in un unico mucchio.


Sembra che sia stata trovata una stampella. L'indicatore viene lanciato con questa stampella. Dopo un'altra perdita della storia ci sarà un risultato.

1. Ancora una volta un treno di pensieri, ma non ho ancora visto il punto.

2. Non hai ancora risposto alla tua domanda, il che mi dice che non hai mai pensato a cosa viene memorizzato nella variabile dopo che è stata dichiarata.