Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 195
![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
Guarda di nuovo il codice dell'indicatore dalla guida https://www.mql5.com/ru/docs/indicators/ima . Notate le linee in OnInit():
Questo crea la maniglia dell'indicatore per il periodo - "period".
Buon pomeriggio.
Sto cercando di ottenere l'ultimo valore di un frattale:
Handle[Number]=iFractals(Symbol_,0);
CopyBuffer(Handle[Number],UPPER_LINE,4,100,Upper)
upenv[Numero]=Upper[0];
ma a volte ottengo qualche strano numero upenv[Numero]=1.797693134862316e+308
Se questo numero fosse 0, il problema si risolverebbe in questo modo
if(upenv[Number]=Upper[0] && Upper[0]!=0)
upenv[Numero]=Upper[0];
Dov'è il mio errore? Cosa sto facendo di sbagliato? Come posso ottenere l'ultimo valore del frattale prima che cambi?
Ancora una volta si dovrebbe guardare attraverso il codice dell'indicatore da https://www.mql5.com/ru/docs/indicators/ima . Notate le linee in OnInit():
Qui è doveviene creata la maniglia dell'indicatore per il periodo - "period".
Ho trovato l'errore nella dimensione dell'array, era il mio errore principale dal codice iniziale. Non riesco a capire perché il grafico del terminale si comporta in modo inadeguato (sfuma, si aggiorna, si sposta, ecc.). Grazie.
Avete creato un handle dell'indicatore ad ogni tick (cioè nella funzione OnCalculate()). Questo non è corretto. La maniglia dell'indicatore dovrebbe essere creata in OnInit().
Tutti hanno trovato un errore nella dimensione dell'array, che era il mio errore principale nel codice originale. Ma perché il grafico del terminale si comporta in modo inadeguato (lampeggia, si aggiorna, si sposta, ecc.). Grazie.
Avete creato un handle dell'indicatore ad ogni tick (cioè nella funzione OnCalculate()). Questo non è corretto. La maniglia dell'indicatore deve essere creata in OnInit().
E se ho bisogno delle letture MACD in un indicatore (M1;M5;M15;H1;H4;D1;W1), allora devo creare un handle per ogni periodo?
Sì, fate tanti handle di indicatori quanti ne servono in OnInit.
Tutti hanno trovato un errore nella dimensione dell'array, che era il mio errore principale nel codice originale. Ma perché il grafico del terminale si comporta in modo inadeguato (lampeggia, si aggiorna, si sposta, ecc.). Grazie.
Hai creato un handle dell'indicatore ad ogni tick (cioè nella funzione OnCalculate(). Questo non è corretto. La maniglia dell'indicatore deve essere creata in OnInit().
È più probabile che il grafico M15 utilizzi dati D1, oppure mi sbaglio.
Si crea un handle dell'indicatore ad ogni tick (cioè in OnCalculate()). Questo non è corretto. Il manico dell'indicatore dovrebbe essere creato in OnInit(). Sul grafico M15, potete usare i dati di D1. Tuttavia, in questo caso, i dati potrebbero essere incompleti - leggi "Organizzare l'accesso ai dati" https://www.mql5.com/ru/docs/series/timeseries_access.