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
Prova a trasferire in C - l'errore si troverà da solo. E in generale - con tali progetti è l'unico modo di scrivere, se non volete problemi in futuro. Purtroppo, io stesso l'ho capito troppo tardi e ora lo riscrivo :).
Abbiamo un indicatore che gira su TF M15, nel codice l'indicatore richiede la serie temporale MqlRates da TF M1.
L'indicatore non parte subito perché i dati M1 non sono pronti e non è possibile caricarli durante la prima corsa.
Come risultato abbiamo un falso passaggio e l'indicatore non accede più ai dati, pensando che siano già calcolati e non ci sia bisogno di ricalcolarli.
Ora sto eseguendo l'indicatore in due modi:
Da qui la domanda: come automatizzare il corretto controllo e caricamento dei dati richiesti per un altro TF?
Da qui la domanda: come automatizzare il controllo e il caricamento dei dati richiesti dall'altro TF?
In una situazione simile, controllo il processo di inizializzazione in OnCalculate. Se c'è un errore durante l'inizializzazione, allora restituisco prev_calculated=0 e continuo a farlo finché tutto è calcolato correttamente.
L'idea è buona, anche se nulla può essere assegnato a prev_calculated, la variabile è dichiarata come const, ma capisco che si può avere un'altra variabile simile.
C'è ancora una domanda: se non ci sono dati, cosa devo fare?
Capisco che la richiesta di dati in sé non porta a scaricare o caricare dal database locale, e questo è esattamente il problema.
L'idea è buona, anche se non puoi assegnare nulla a prev_calculated, la variabile è dichiarata come const, ma ti ho capito, puoi avere un'altra variabile simile.
Non si tratta dell'assegnazione, ma del numero restituito da OnCalculated. Se i vostri dati non sono pronti, restituirete 0 da OnCalculated.
Guardate gli esempi di BarsCalculated. Ecco come dovreste controllare.
Rimane una domanda: se non ci sono dati, cosa si deve fare?
Se volete, potete aspettare e calcolare i buffer con il timer.
Se i vostri dati non sono pronti, restituirete 0 da OnCalculated.
Se non li avete e non appaiono, allora non c'è molto da fare.Guardate gli esempi di BarsCalculated.
Se volete, potete chiamare i buffer di attesa e di calcolo con un timer.
Non aiuta, solo scaricando l'indicatore e riavviandolo, in questo caso i dati sono già lì per qualche motivo.
Oppure, in alternativa, aprire un grafico con l'M1 TF richiesto, poi i dati sul grafico M15 adiacente su richiesta M1 sono pronti immediatamente.
Non aiuta, solo scaricando l'indicatore e riavviandolo, in questo caso i dati sono già lì per qualche motivo.
O in alternativa, apri un grafico con il TF richiesto, poi i dati sul grafico adiacente sono subito pronti.
Oggi ho passato mezza giornata con gli indici. C'erano multicurrency/multitime.
Il problema della mancata visualizzazione è che c'è un tentativo di prendere un valore da una barra che semplicemente non esiste in questo TF.
Quindi dovete controllare prima di prendere una barra - SeriesInfoInteger.Non c'è bisogno di scaricare. Non scaricherai comunque la parte di calcolo (ho appena sollevato l'argomento su questo oggi).
Ho lavorato con gli indici per mezza giornata oggi. C'erano multicurrency/multitime.
Il problema della non visualizzazione è che cerca di prendere il valore da una barra che semplicemente non esiste in questo TF.
Quindi dovete controllare prima di prendere una barra - SeriesInfoInteger.Non c'è bisogno di scaricare. Non puoi comunque scaricare la parte di calcolo (ho appena sollevato un argomento su questo oggi).
Mimeo, ho un controllore, trovo la prima data su TF M1 e il calcolo delle barre M15 parte da questa data. TF è impostato come PERIOD_M1
1. l'idea è buona, anche se nulla può essere assegnato a prev_calculated, la variabile è dichiarata come const, ma capisco che puoi avere un'altra variabile simile.
2. rimane una domanda, e se non ci sono dati, cosa dobbiamo fare?
3. Capisco che la richiesta di dati in sé non fa sì che i dati vengano scaricati o caricati dal database locale, e questo è esattamente il problema.
Capisco che la richiesta di dati in sé non causa il download o il caricamento di dati dal database locale, e questo è esattamente il problema.
Dall'aiuto di CopyXXXX:
Quando si richiedono dati da un Expert Advisor o da uno script, inizierà a scaricare dal server, se il terminale non ha questi dati localmente, o inizierà a costruire le serie temporali richieste, se i dati possono essere costruiti dallo storico locale, ma non sono ancora pronti. La funzione restituisce la quantità di dati che sarà pronta quando il timeout scade, ma la storia continuerà ad essere scaricata e la prossima richiesta simile restituirà più dati.