Errori, bug, domande - pagina 3150
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
l'operatore ternario sembra più conciso (IMHO)
in modo ancora più conciso:
:))
Ho già scritto che con questa costruzione state accedendo all'indice del buffer con il numero rates_total (quando prev_calculated == 0).
E questo è un overflow perché rates_total è la dimensione del buffer il cui ultimo elemento è rates_total-1
Sì, capisco perché l'overflow sta accadendo ora!
Perché questo costrutto funzionava prima e perchénon funziona ora?
Perché il buffer è allocato esattamente a rates_total
Aspetto di sentire cosa ha da dire Artem, lui capisce il problema.e nonrates_total+1
Sì, capisco perché l'overflow sta accadendo ora!
Perché prima questo design funzionavae ora no?
Perché il buffer è allocato esattamente a rates_total
e nonrates_total+1
I miracoli non esistono.
Se prima funzionava, doveva essere un codice diverso.
Con questo design.
il buffer dell'indicatore va fuori limite.
Per favore, mostratemi un esempio per itick con ciclo i>=0
forse ho dimenticato cosa sto facendo di sbagliato.
ridurre approssimativamente l'indice di 2 o 3 al bordo massimo per essere sicuri).
Non ci sono miracoli.
Se ha funzionato prima, deve essere stato un codice diverso
In precedenza, il calcolo corretto del limite era
e passerebbe nel ciclo i>=0.
Ma ora non funziona perché il limite risulta essere -1
Il calcolo corretto era
e andrebbe in loop i>=0
Ora non entra perché il limite risulta essere -1
Anche io non riuscivo ad accedere con lo stesso codice prima.
non inventare cose.
Scarica la vecchia build da Hatimlansky e controllala, se non mi credi.
Questa discussione è off-topic qui, appartiene a qualche thread per principianti
Se non hai mai usato questo design, allora astieniti con il tuo offtop.
Non potevo accedere con lo stesso codice neanche prima
non inventare questo
da Hatimlansky scarica la vecchia build e controllala se non mi credi.
Anche Artem ha usato questa build.
Che ha descritto sopra, quindi solo lui capisce il problema qui.
Il calcolo corretto era
e andrebbe in loop i>=0
E ora non lo fa, perché il limite risulta essere -1.
C'era sempre un controllo: if(limit>1) limit=rates_total-1. Questo è per i casi in cui non c'è i+qualcosa nei calcoli. Se c'è, allora questi "quanti-qualcosa" dovrebbero essere inclusi nel costrutto: limit=rates_total-1-qualcosa-qualcosa.
Senza di essa, ci sarebbe sempre un superamento dell'array. Perché rates_total non è altro che Bars(). Corrispondentemente, se ci sono 5000 barre e ci rivolgiamo all'indice 5000, cadremo fuori dai limiti dell'array (il calcolo delle barre inizia da zero).
Nel tuo esempio, il calcolo del limite è sbagliato:
Dovrebbe essere così:
int limit = rates_total-prev_calculated;E dopo di ciò controlla se c'è un limite>1
e se il limite è maggiore di uno, allora limite = rates_total-1