Errori, bug, domande - pagina 1681
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
Non fa alcuna differenza se le citazioni vanno o stanno in piedi. È necessario controllare la condizione prev_calculate==0 nell'indicatore - questo è lo swap della storia e il secondo punto - il modo parsimonioso di ricalcolo delle barre modificate, cioè in effetti rates_total -prev_calculate+1.
Dovresti leggere ciò che è scritto prima di rispondere. Il codice per riprodurre il bug del debugger! Tutti i dati per riprodurlo sono dati.
Ecco uno script per riprodurre lo stesso bug
Dovresti leggere ciò che è scritto prima di rispondere. Codice per riprodurre il bug del debugger! Tutti i dati per la riproduzione sono indicati.
Ti ho risposto - non ti interessa quante volte viene chiamato OnCalculate. Il vostro compito è quello di fornire un ricalcolo completo o parziale dell'indicatore analizzando due valori: rates_total, prev_calculate e la condizione quando prev_calculate==0.
Non c'è una condizione rigorosa che OnCalculate() debba essere chiamata una o due volte. OnCalculate() non deve niente a nessuno. Ma il programmatore deve controllare due valori: rates_total, prev_calculate e la condizione quando prev_calculate==0.
Te l'ho detto - non ti interessa quante volte viene chiamato OnCalculate. Il vostro compito è quello di fornire un ricalcolo completo o parziale dell'indicatore, analizzando due valori: rates_total, prev_calculate e la condizione quando prev_calculate==0.
Mi interessa quante volte viene chiamato il debugger e quante volte viene chiamato OnCalculate. Sono una persona AWESOME per natura! E mi interessa tutto.
State cercando di insegnarmi qualcosa senza capire l'essenza del problema. Grazie, naturalmente. Ma ascoltiamo e sentiamo il nostro avversario.
No, lo sto facendo funzionare su RTS ora, quando i kotir sono in piedi. Ho capito che viene chiamato una volta e il debugger mente, mostrando come se fossero due. Codice per giocare (eseguire su un personaggio in cui non ci sono ticchettii)
Dopo aver premuto F5, il sistema raggiungerà un punto di interruzione. E dopo una seconda pressione su F5 - allo stesso modo. Mentre questo non dovrebbe essere - come conferma, potete accorciare quella linea nel codice e provare con questo.
È così che si può vedere cosa c'è di sbagliato. Guarda il valore di i al primo e al secondo arresto.
In questo modo si può vedere qual è il problema. Traccia il valore di i al primo e al secondo arresto.
L'ho rintracciato, per questo l'ho scritto.
Ho scoperto che viene chiamato una volta, ma il debugger mente, mostrandolo come se fossero due.
Perché il debugger mi riporta allo stesso punto dopo la seconda pressione su F5? Non succede niente del genere con return(0), che è corretto.
Non mente, si ferma due volte - prima di calcolare l'espressione tra parentesi e dopo di essa, appena prima del ritorno.
A proposito, un trucco molto utile, secondo me. Ho bisogno di ricordarlo. Non c'è bisogno di mettere il risultato tra parentesi in una variabile separata per controllare il valore di ritorno prima di uscire, il debugger stesso si fermerà di nuovo.
Non mente, si ferma due volte - prima di calcolare l'espressione tra parentesi e dopo di essa, appena prima del ritorno.
A proposito, un trucco molto utile, secondo me. Ho bisogno di ricordarlo.Non c'è bisogno di mettere il risultato tra parentesi in una variabile separata per controllare il valore di ritorno prima di uscire, il debugger stesso si fermerà per la seconda volta.
Mettete il codice in questo modo:
e mettere l'indicatore sul grafico. E poi ricaricare il terminale (non è necessario rimuovere l'indicatore dal grafico). Vedrete che OnCalculate() può essere chiamata una o due o anche tre volte. Cioè, come ho detto sopra - non ci sono regole rigide.
Mettete il codice in questo modo:
e mettere l'indicatore sul grafico. E poi ricaricare il terminale (non è necessario rimuovere l'indicatore dal grafico). Vedrete che OnCalculate() può essere chiamata una o due o anche tre volte. Cioè, come ho detto sopra - non ci sono regole rigide.
Sono d'accordo che questo è utile. Ma come posso scoprire il risultato di ritorno prima dell'uscita senza una variabile nel debugger?
Guardate nel corpo di Func() per vedere cosa restituisce prima di uscire. Sto parlando di un caso speciale. Se il valore sarà calcolato direttamente tra parentesi, ovviamente, non è possibile.
PS. Anche se... Perché no? Alla seconda fermata, cerca tutti gli argomenti return() e calcola il risultato. )