![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
Per esempio, se attualmente sono le 8 del mattino, qualsiasi cosa nel codice che presuppone che (a) la barra delle 7 del mattino sia di 60 barre fa, o anche (b) che esista una barra delle 07:00.
Buon punto, non avevo apprezzato che i grafici fossero M1 quando li ho guardati per la prima volta... è abbastanza comune che le barre M1 manchino nei momenti di calma, durante la notte per esempio.
In questo caso penso che sia più probabile che si tratti di una perdita temporanea di connessione al broker, ma il principio e le implicazioni sono le stesse.
Hmm, "i nuovi dati storici vengono aggiunti al grafico", come? L'indicatore viene avviato e lasciato indisturbato. Abbiamo un lookback fisso di 1000 barre.
indicatore non sta caricando alcun dato storico.
Qualcuno del team di sviluppo può dare un'occhiata a questo?
Jic, grazie per le osservazioni.
I test vengono effettuati su un server CNS VPS con connessione affidabile e il conto demo utilizzato per i test sono con i broker IBFX e VantageFX
Faccio un RefreshRates() ad ogni tick e uso le normali funzioni timeseries per accedere ai dati delle barre. Il codice utilizzato per aggiornare gli indicatori è riportato nel mio post precedente, vedi funzione DrawMoveEx. Credo che la TimeSeries non abbia barre mancanti da 0 a 'Bars -1'. Fammi sapere se questa supposizione non è corretta.
Allego un'altra istantanea, con scala temporale corretta, e senza scorrimento a destra (con i dati attuali di IBFX).
Hai avuto modo di guardare il file excel allegato al post 2011.10.07 15:30
AnkaSoftware:
I believe the TimeSeries does not have missing bars from 0 to 'Bars -1'. Let me know if this assumption is incorrect.
Questa supposizione appare certamente errata perché il tuo screenshot originale "Move Error" ha 16 barre tra ogni marker dell'asse X - puoi contarle da solo - ma uno dei periodi copre 21 anziché 16 minuti. E, come dice RaptorUK, non è una supposizione che puoi tranquillamente fare nel tuo codice. Non ci sarà necessariamente uno scambio ogni singolo minuto del giorno - anche se sarei sorpreso se non ci fosse su GBPUSD al di fuori delle principali festività - e quindi non ci sarà necessariamente una barra M1 per ogni singolo minuto.
Se credi che non ci siano barre mancanti - quando è dimostrabile che ci sono barre mancanti in uno dei tuoi screenshot - allora probabilmente stai codificando sulla base di questa supposizione/convinzione. Non considererei il tuo ultimo screenshot come una controprova, perché potrebbero esserci (a) dati mancanti prima del periodo mostrato nello screenshot che (b) stanno in qualche modo influenzando i calcoli per le barre che sono mostrate nello screenshot.
La cosa più sospetta è che le linee viola si fermano nello screenshot originale durante il periodo in cui c'è chiaramente una barra mancante. Non potrei commentare ulteriormente, o fare analisi dei tuoi fogli di calcolo, senza vedere il codice completo.
Jic, grazie per le osservazioni.
I test vengono effettuati su un server CNS VPS con connessione affidabile e il conto demo utilizzato per i test sono con i broker IBFX e VantageFX
Faccio un RefreshRates() ad ogni tick e uso le normali funzioni timeseries per accedere ai dati delle barre.
Questa supposizione appare certamente errata perché il tuo screenshot originale "Move Error" ha 16 barre tra ogni marker dell'asse X - puoi contarle da solo - ma uno dei periodi copre 21 anziché 16 minuti. E, come dice RaptorUK, non è una supposizione che puoi tranquillamente fare nel tuo codice. Non ci sarà necessariamente uno scambio ogni singolo minuto del giorno - anche se sarei sorpreso se non ci fosse su GBPUSD al di fuori delle principali festività - e quindi non ci sarà necessariamente una barra M1 per ogni singolo minuto.
Se credi che non ci siano barre mancanti - quando è dimostrabile che ci sono barre mancanti in uno dei tuoi screenshot - allora probabilmente stai codificando sulla base di questa supposizione/convinzione. Non considererei il tuo ultimo screenshot come una controprova, perché potrebbero esserci (a) dati mancanti prima del periodo mostrato nello screenshot che (b) stanno in qualche modo influenzando i calcoli per le barre che sono mostrate nello screenshot.
La cosa più sospetta è che le linee viola si fermano nello screenshot originale durante il periodo in cui c'è chiaramente una barra mancante. Non potrei commentare ulteriormente, o fare analisi dei tuoi fogli di calcolo, senza vedere il codice completo.
Raptor, verificherò "cosa succede se riduci il lookback a 500 barre, hai problemi dopo 8 ore?
JIC, si prega di notare che il problema non si verifica su piattaforme a 32 bit. Ho fornito del codice in uno dei post precedenti.
Credo che la TimeSeries non abbia barre mancanti da 0 a 'Bars -1'. Fatemi sapere se questa supposizione non è corretta.
Certo che no, ci sono candele di Bars numerate da 0 a Bars-1. ArraySize(Close) == Bars sempre.
Tuttavia ci sono sempre barre saltate. Da venerdì 21:59z la prossima barra è domenica 22:00z. Fine settimana e vacanze e minuti senza attività.
Non potete assumere che Time[x] == Time[x+1] + 60*Period() non sarà su una barra saltata.
Se vuoi aiuto con il TUO indicatore, posta il TUO codice - non ci sono lettori del pensiero qui.
Alcune ulteriori informazioni -
a) La corruzione degli indicatori avviene solo su piattaforma Windows 64 bit
b) Ho fatto un dump dell'array di indicatori prima della corruzione e dopo la corruzione - gli stessi sono disponibili nel file xls allegato con i commenti.