Errori, bug, domande - pagina 3149
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
Passo 1: Creare un modello usando 'MQL5 Wizard':
Passo 2: scrivete correttamente 'limit' e USATE l'array close - NON la chiamata iClose!!!
Risultato:
e non ci sono errori.
Chi ha detto che questo è l'unico calcolo corretto di limite e indicatore?
Stiamo discutendo un altro calcolo del limite e l'indicatore stesso - da sinistra a destra - dall'inizio della storia al tempo attuale. È più semplice e più evidente.
In un tale limite calcolato (int limit = rates_total - prev_calculated; if(limit>1) limit=rates_total-1;) tutti i dati su
Se il tick corrente (limit==0), allora for(int i=limit; i>=0; i--) { // . } calcolerà l'indicatore su ogni nuovo tick, e solo la barra zero sarà ricalcolata.
Se apriamo una nuova barra (limit==1), allora for(int i=limit; i>=0; i--) { // ... } eseguirà il calcolo della prima barra e della barra zero - precedente e appena aperta
Se questa storia cambia (limite>1), allora for(int i=limite; i>=0; i--) { // ... } eseguirà il ricalcolo completo dell'indicatore per tutta la storia disponibile (la storia è stata cambiata da qualche parte)
Che differenza fa? Può diventare meno di zero?
Sì, l'ho fatto (aggiunto al post precedente)
Ma apparentemente questo problema è per sempre.
E ora ci sono solo "se".
Solo Artyom ha capito il problema.
Ma apparentemente questo problema è per sempre.
E ora ci sono solo "se".
No, non l'ho capito. Chiarire quello che ho capito...
l'operatore ternario sembra più laconico (IMHO)
Inoltre, come ho detto, cosa succede se qualcosa va storto e prev_calcolato risulta essere superiore a tassi_totale.
Ho incontrato una situazione simile, quando le barre massime nella finestra sono != illimitate, ma per esempio, 50000. In questo caso, la dimensione dell'array di barre aumenterebbe di 1 ad ogni nuova barra, ma ad un certo momento diventerebbe di nuovo 50000. Non seguo la logica. L'ho preso un paio di anni fa. Bisogna controllarlo ora. Imposterò uno sblocco sul mio VPS.
No, non l'ho capito. Chiarire quello che ho capito...
Quello che per ora non funziona come prima
limit==0
per tick i>=0
per barre i>0
Hai scritto tutto correttamente sopra,
solo per la nuova barra stampata malefor(int i=limit; i>=0; i--)
l'operatore = non è necessario qui, ma è probabilmente in passato,
a meno che non restituiscano il comportamento precedente.
Quello che per ora non funziona come prima
limit==0
per tick i>=0
per barre i>0
Hai scritto tutto correttamente sopra,
solo per la nuova barra è scritto malefor(int i=limit; i>=0; i--)
qui l'operatore = non è necessario, ma deve essere già nel passato,
se non ritorna il comportamento precedente.
Ancora una volta non capisco nulla. Cosa c'è che non va? Tutto sembra essere come prima.
Non capisco di nuovo. Cosa c'è che non va? Tutto sembra essere come prima.
Con questo design.
il buffer dell'indicatore è fuori limite.
Per favore mostratemi un esempio per itick con ciclo i>=0
forse ho dimenticato qualcosa e lo sto facendo male.
Con questo design
, il buffer dell'indicatore va fuori dai limiti.
Con questo design.
il buffer dell'indicatore è fuori limite.
Per favore, mostratemi un esempio per itick con ciclo i>=0
forse ho dimenticato cosa sto facendo di sbagliato.
Ho già scritto che con questa costruzione state accedendo all'indice del buffer con rates_total (quando prev_calculated == 0 ).
E questo è un overflow perché rates_total è la dimensione del buffer il cui ultimo elemento rates_total-1