![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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'incredibile capacità di rispondere alla domanda sbagliata...
Ora spiegatemi cosa succede se:
1. 100 barre ricalcolate, inserite nei buffer da 0 a 99 inclusi (consideriamo la direzione come serie temporale) il valore 1.03
2. Improvvisamente, la storia è stata caricata e prev_calculato è diventato 0.
Da quale barra dell'indicatore il valore sarà 1,03?
{
//--- инициализация элементов индикаторного буфера при первом запуске или при подкачке истории
for(int i=0;i<rates_total;i++)
ExtBuffer[i]=1.01;
return(rates_total);
}
Meglio spiegare come sbarazzarsi dei rifiuti laPRIMA volta che si avvia l'indicatore.
Non è affatto una stampella. È così che faccio io.
{
//--- инициализация элементов индикаторного буфера при первом запуске или при подкачке истории
for(int i=0;i<rates_total;i++)
ExtBuffer[i]=1.01;
return(rates_total);
}
Quindi, questo è il problema che dovrebbe essere risolto. Non ho bisogno di spazzatura (non proprio, ma interferisce con la visualizzazione), ma ho bisogno di salvare i calcoli precedenti dell'indicatore. Quando si avvia l'indicatore la PRIMA volta il buffer diventa spazzatura, e quando si carica la storia tutto ciò che è stato inserito nei buffer dovrebbe essere salvato... e preferibilmente senza salvarlo in un file o in GV.
aggiunto:
Questo ha lo scopo di stimare il drawdown in tempo reale ogni minuto. L'Expert Advisor lavora per una settimana senza fermarsi, e invece della visualizzazione settimanale vedremo solo l'ultimo valore, che è visibile anche senza l'indicatore.
Se un semplice flag di prima esecuzione / non più di prima esecuzione è sufficiente, sostituire prev_calculated con static bool b_First_Run. E potete mettere l'inizializzazione del buffer in OnInint
No, gli obiettivi non sono così primitivi.
Quindi questo è il problema che deve essere risolto. Non ho bisogno di spazzatura (non ne ho bisogno, ma interferisce con la visualizzazione), ma ho bisogno di salvare i calcoli precedenti dell'indicatore. Quando si avvia l'indicatore la PRIMA volta il buffer diventa spazzatura, e quando si carica la storia tutto ciò che è stato inserito nei buffer dovrebbe essere salvato... e preferibilmente senza salvarlo in un file o in GV.
aggiunto:
Questo è inteso come una stima in tempo reale del drawdown ogni minuto. L'Expert Advisor lavora per una settimana senza fermarsi, e invece della visualizzazione settimanale vedremo solo l'ultimo valore, che è visibile anche senza indicatore...
Alexey Viktorov, come ho capito, ha bisogno solo di questo: azzerare i buffer al primo avvio e non toccare nulla in essi durante tutta la paginazione
Ricontrollato cosa succede se gli array di buffer sono inizializzati in OnInit().
Anche quando l'indicatore viene rimosso dal grafico e impostato di nuovo, NON TUTTI, ma alcuni buffer hanno ancora i vecchi valori. Non sono nemmeno esattamente quelli che erano prima, ma uno di questi valori si estende su diverse barre.
Ora ha più senso. Vi farò sapere stasera.
Scusa per il ritardo nella risposta. L'unico modo per salvare i valori calcolati per un determinato periodo di tempo è quello di salvarli in un file. È necessario occuparsi della sincronizzazione - in modo che quando si legge dal file i dati siano posizionati sulle loro barre. La soluzione più logica è la sincronizzazione secondo il tempo di apertura della barra, ma ci possono essere alcune sottigliezze: per esempio, il tempo di apertura della barra (salvato in un file) era 2016.09.05. 25:02, ma ora c'è una barra sul grafico con il tempo uguale a 2016.09.05. 25:01.
O forse sarebbe meglio attirare l'attenzione degli sviluppatori sul problema dell'inizializzazione dei buffer degli indicatori? Perché non c'è questo problema in MT4? Forse di nuovo una comprensione non completa? Il problema è che anche dopo l'inizializzazione obbligatoria dei buffer dopo aver tolto un indicatore da un grafico in CIASCUNO di essi, non tutti i buffer contengono spazzatura, e non possiamo scaricarla da lì...
Personalmente non mi dispiacciono le stampelle, ma solo se queste stampelle non sono troppo complicate e con effetto positivo. Ma scrivere su un file e poi leggerlo è una stampella scadente.