
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
Ok, aspetterò
Dopo più di 20 ore l'indicatore funziona correttamente. Non so cosa dire.
Rosh, Zoom in/Out, scorri a sinistra/destra. Su quale piattaforma stai testando a 64/32 bit?
Rosh, Zoom in/Out, scorri a sinistra/destra. Quale piattaforma stai testando su 64/32 bit?
Posso replicare il problema generale su 32-bit. L'unico modo in cui l'O/S sembra essere rilevante è la questione del perché il tuo sistema a 64 bit sembra ricevere periodicamente nuovi dati all'inizio o a metà della sua storia delle barre, mentre il tuo sistema a 32 bit (e quello a 64 bit di RaptorUK) no. In ogni caso, sembra che tu abbia intenzione di dare il tuo indicatore ad altre persone, e le modifiche alla storia delle barre sono problemi che sicuramente incontrerai poi nella vita reale, se non altro perché i tuoi utenti subiscono disconnessioni dal broker che portano all'inserimento di barre mancanti nel mezzo della storia al momento della riconnessione.
Come ho già cercato di spiegare, è discutibile se questo "bug" sia nel vostro codice o in MT4. C'è un'aspettativa su come gli indicatori si comportano in MT4, e il tuo indicatore non si comporta così. Per esempio, quando crei un nuovo indicatore usando MetaEditor, inserisce per te la linea "int counted_bars=IndicatorCounted();". Tu stai rimuovendo questo e ignorando IndicatorCounted().
Posso replicare il problema generale usando il seguente indicatore che disegna semplicemente una linea tra le ultime 10 barre alte quando si avvia per la prima volta:
Puoi quindi replicare lo stesso tipo di problema facendo quanto segue:
* Aprire un grafico per qualsiasi simbolo
* Aggiungere l'indicatore al grafico
* Disattivate "Chart autoscroll" (solo per facilitare i seguenti passi; non perché abbia un impatto sul problema)
* Andare all'inizio del grafico, premendo Home
* Premere Page Up per forzare il download di dati extra. (N.B. Non c'è alcun problema, a meno che qualche dato extra venga effettivamente aggiunto al grafico a questo punto).
* Vai alla fine del grafico, premendo End. La linea rossa tra i massimi sarà ora fuori posizione. Sarà stata spostata indietro nel tempo.
[Tutto questo è solo un approfondimento di ciò che RaptorUK ha già identificato].
OK, puoi confermare che IndicatorCounted() restituirà un numero -ve, in questo caso di barre mancanti / indicatori corrotti? Lasciatemi provare a reinizializzare gli array di indicatori e a ridisegnare le mosse dalla barra di lookback.
OK, potete confermare che IndicatorCounted() restituirà un numero -ve, in questo caso di barre mancanti / indicatori corrotti?
La documentazione di IndicatorCounted()(https://docs.mql4.com/customind/IndicatorCounted) fornisce un esempio di come fare questo, e ci sono versioni alternative come https://www.mql5.com/en/forum/132447 che mirano a migliorare molto marginalmente le prestazioni perché il codice standard di https://docs.mql4.com/customind/IndicatorCounted ricalcola inutilmente una barra che è "pulita".
Aggiungendo i controlli di IndicatorCounted() e reinizializzando gli indicatori quando IndicatorCounted() restituisce il valore 0, si risolve il problema dello spostamento degli indicatori che è causato dall'inserimento della storia o di barre aggiuntive.
Tuttavia, c'è un altro problema di corruzione degli indicatori, che sembra non essere causato dall'inserimento di barre storiche. Il codice di esempio allegato per riprodurre il problema, è necessario eseguirlo per 10+hrs, fino ad almeno due reinizializzazione degli indicatori cioè IndicatorCounted() che restituisce 0 (post inizio indicatore).