Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 600
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
Saluti! :)
Ho più o meno lo stesso codice indicatore:
Lo lascio cadere sul grafico M1. L'indicatore si blocca insieme al terminale, presumibilmente eseguendo i calcoli.
Lo chiudo con forza dopo 15 minuti e apro il suo registro:
Si scopre che l'indicatore non reagisce ai tick appena arrivati (è logico) finché non calcola la prima volta. Ma dimentica di dire al terminale durante la valutazione che a IndicatorConted() deve essere già assegnato un valore diverso da 0.
Quindi risulta che i tick in arrivo ordinati per la valutazione ricordano il valore corrente di IndicatorCounted()?
Ho provato a controllarlo tramite la variabile busy (stringa commentata - stesso risultato).
Ho provato anche in questo modo:
Naturalmente, questa volta tutto ha funzionato correttamente:
Cosa abbiamo qui? Il sistema non ha tempo per scrivere un nuovo valore in IndicatorCounted()? In altre parole, ho bisogno di fare qualcosa come sleep()? So che questo non è possibile nell'indicatore)
Oppure, quando arriva un nuovo tick, poiché il vecchio tick non ha finito i suoi calcoli, si ricorda che IndicatorCounte() è ancora uguale a zero e quando arriva il suo momento, comincia a calcolare dal vecchio valore IndicatourCounted()=0?
Cosa fare? )
Saluti! :)
Ho circa lo stesso codice dell' indicatore:
Questa è la mia prima esperienza, non giudicare troppo duramente:)
Questo dice tutto. Per circa questo codice, circa questa risposta...scrivere?
Il punto è che il resto del codice è irrilevante. L'essenza dell'errore è descritta in questo pezzo.
In generale avevo paura di spaventare la gente con un grande post. Così l'ho gonfiato.
In breve, può essere formulata come segue: se un indicatore viene calcolato per un lungo periodo (più di un minuto), IndicatorCounted() restituisce sempre 0.
Ad essere onesti, mi sembra che il tester ricordi il valore passato della variabile - dall'ultimo test. Come - non lo so, non c'è molto tempo per il debriefing. Forse un bug nel terminale. Ho appena messo un commento nel codice e ho emesso i valori nel log. Così si scopre che ogni volta che eseguo un nuovo test il valore del test precedente viene memorizzato nella variabile sys. Che confusione. Forse qualcun altro vedrà, forse il mio occhio è bagnato...
È solo che hai dimenticato che la linea
Quando le proprietà dell'indicatore sono richiamate, non saranno eseguite.
Non ho guardato a fondo, ma forse questo otterrà il risultato desiderato?
Hai solo dimenticato che la stringa
Quando le proprietà dell'indicatore sono richiamate, non saranno eseguite.
Non ho guardato a fondo, ma forse questo otterrà il risultato desiderato?
Il punto è che il resto del codice è irrilevante. L'essenza dell'errore è descritta in questo pezzo.
In generale avevo paura di spaventare la gente con un grande post. Così l'ho gonfiato.
In breve, può essere formulata come segue: se un indicatore viene calcolato per un lungo periodo (più di un minuto), IndicatorCounted() restituisce sempre 0.
Non è questo il punto. Nessuno ha bisogno del tuo codice segreto completo. Basta scrivere un pezzo di codice di prova completo con quell'equivoco. E da questa parte.
quando hai cancellato la linea evidenziata? I telepati non aiutano, i semplici mortali ancora meno...
Poi c'è questa parte.
Non so da quale programmatore provenga, ma c'è qualcosa scritto in modo inadeguato... Non è colpa tua. Tu, come molti altri, hai appena preso il codice e cerchi di aggiustarlo...
Se la variabile counted_bars è uguale al numero di barre rimaste invariate dall'ultima chiamata dell'indicatore (la prima riga)
Come può diventare meno di zero che viene controllato if(counted_bars < 0) non riuscirò mai a capire...
Anche il resto è senza senso, ma sono troppo pigro per analizzarlo...
Hai solo dimenticato che la stringa
Quando le proprietà dell'indicatore sono richiamate, non saranno eseguite.
Non ho guardato a fondo, ma forse questo otterrà il risultato desiderato?
Ci ho provato... non funziona...
Generalmente un consulente. Ma HZ, non c'è tempo per sperimentare. Ho tutti gli EAs che lavorano nel modo che ho scritto. Dovrò rintracciare questa merda nel tester. Quando ho abbastanza tempo.
Ci ho provato... non funziona...
Ho appena ricompilato il codice in EA e l'ho eseguito. Quando cambio il parametro Sys nel commento questo valore cambia.