Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 76
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
Questo errore non viene fuori durante la compilazione, ma quando attacco l'indicatore al grafico, o quando cambio il timeframe.
Questo messaggio di errore suona sempre, o scompare con il tempo?
Ragazzi! La MT5 può essere collegata a qualsiasi società di brokeraggio?
No. Il trading attraverso MT5 è possibile attraverso il broker che fornisce la possibilità di fare trading attraverso questa piattaforma, come VTB24 e Alfa forex.
Questo messaggio di errore suona costantemente o scompare nel tempo?
Questo messaggio di errore suona sempre, o scompare con il tempo?
Questo messaggio di errore suona costantemente o scompare nel tempo?
FinEngineer:
Una volta, quando attacco l'indicatore al grafico...
Allora stai andando bene. Quando si attacca il programma a un grafico o si cambia timeframe, non ci sono nuovi dati calcolati per l'indicatore RSI o qualsiasi altro nel terminale. E il terminale ha bisogno di un po' di tempo per calcolare i buffer di indicatori necessari. Guarda attentamente il tuo codice (capisco che è scritto secondo l'esempio di qualcun altro, ma comunque): quando i dati calcolati per RSI non sono sufficienti, la funzione OnCalculate() smette di funzionare ('return(0);') e aspetta un nuovo tick. Non appena al prossimo tick i buffer dell'indicatore per l'RSI sono calcolati, il tuo indicatore inizia a lavorare in modalità normale. Cosa che fa, a giudicare da quello che dici.
Potete anche inserire il controllo con BarsCalculated() nella funzione OnInit() - allora l'errore si verificherà molto raramente (se mai). Un esempio è dato nella descrizione della funzione BarsCalculated().
Su questo errore ti ho già scritto ieri. (Non dimenticare di inserire il codice correttamente :) )
Rimosso il pezzo di codice responsabile dei dati insufficienti (sotto)
int calculated=BarsCalculated(RSI1_Handle);
se(calcolato<tassi_totale)
{
Print("Non tutti i dati di RSI1_Handle sono calcolati (",calculated, "bars ). Error",GetLastError());
ritorno(0);
}
calculated=BarsCalculated(RSI2_Handle);
se(calcolato<tassi_totale)
{
Print("Non tutti i dati di RSI2_Handle sono calcolati (",calculated, "bars ). Errore",GetLastError();
ritorno(0);
Puoi dirmi come segnare i frammenti di codice nel messaggio?
Ora esce un errore:
2012.12.22 15:14:00 Pair_delta_RSI (EURGBP,M1) Ottenere RSI1 è fallito! Errore4806Inserire il codice correttamente.
Lì funzionava bene, quel "pezzo di codice che è responsabile dei dati insufficienti". E correttamente segnalato che al primo tick dati per RSI non è ancora calcolato dal terminale. Se non vi piace ricevere messaggi di errore, provate a fare come sopra, cioè a controllare i dati calcolati non solo in OnCalculate(), ma anche in OnInit(). In altre parole, provate ad aspettare il calcolo dei dati per gli indicatori tecnici selezionati in OnInit() e poi passate all'elaborazione dei tick in OnCalculate() quando il calcolo dei dati per gli indicatori è garantito.
Aggiungendo. Alla fine, la rimozione di una parte del codice di controllo non aumenta il numero di dati calcolati dell'indicatore :)