Errori, bug, domande - pagina 1391
![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
Dopo aver premuto "aggiorna" tutto viene calcolato. Sarebbe più comodo se i dati dell'indicatore, creati nell'inite, fossero calcolati prima della prima chiamata di OnCalculate/OnTimer ecc.
Sarebbe utile avere la possibilità di aspettare il loro calcolo dopo l'inizializzazione nel ciclo all'interno dell'indicatore.
Per calcolare l'indicatore, l'utente deve premere più volte "refresh" sul grafico. Ne ha bisogno. Ricorderà il buon vecchio MT4 e rimarrà con esso, nonostante alcuni vantaggi di MT5.
Qualsiasi calcolo negli indicatori DEVE essere fatto solo in OnCalculate().
Sto parlando delle letture dell'indicatore Ishimoku in questo caso. Sto parlando di letture di indicatori che sono usati in quello corrente, cioè OnCalculate. Quindi sono calcolati prima che OnCalculate sia chiamato, come era in MT4.
Sto parlando delle letture dell'indicatore Ishimoku in questo caso. Sto parlando di letture di indicatori che sono usati in corrente, cioè in OnCalculate. Quindi sono calcolati prima della chiamata di OnCalculate, come era in MT4. Oppure sarebbe possibile aspettare il loro calcolo in OnCalculate. Altrimenti gli utenti dovranno premere più volte Update per costruire un indicatore. Poiché non tutti gli indicatori sono costruiti sull'intera storia in 1 secondo, ci sono indicatori complessi che richiedono più tempo per il calcolo. Per tutto questo tempo l'utente dovrà aspettare il pulsante "Refresh", mentre in MT4 si deve solo aspettare che venga disegnato.
Questo problema si presenta di tanto in tanto sul forum. Sfortunatamente, chiamare OnCalculate() in OnTimer() non risolve il problema.
Ma si può provare. Un esempio può essere trovato in questo articolo: MQL5 Recipes - Sviluppo di un indicatore di volatilità multivaluta in MQL5.
Dopo potrete scrivere se ha funzionato o no.
OnInit() prepara l'ambiente di trading per l'indicatore. E solo in OnCalculate() potete usare i dati dell'indicatore.
Questo problema si presenta di tanto in tanto sul forum. Sfortunatamente, chiamare OnCalculate() in OnTimer() non risolve il problema.
Ma si può provare. Un esempio può essere trovato in questo articolo: MQL5 Recipes - Sviluppo di un indicatore di volatilità multivaluta in MQL5.
In seguito scrivete se ha funzionato o no, se non è troppo disturbo.
Si scopre che non è possibile, senza premere il pulsante "Update" sul grafico una o più volte (o aspettare 1 o qualche tick), se l'indicatore utilizza altri indicatori di altri simboli e/o tf.
E se guardate più da vicino il funzionamento del codice che ho dato? E in particolare agli Esperti? Dopo aver riavviato il terminale nel fine settimana:
È perfettamente visibile che il calcolo è andato a buon fine solo sulla seconda chiamata a OnCaalculate(). Quindi nessuno rimuove la responsabilità del programmatore per i controlli: controllare il risultato di CopyBuffer() in OncalCulate() - se la funzione non ha restituito nulla, deve essere controllato al prossimo input in OnCalculate().
Questo problema si presenta di tanto in tanto sul forum. Sfortunatamente, chiamare OnCalculate() in OnTimer() non risolve il problema.
Ma si può provare. Un esempio può essere trovato in questo articolo: MQL5 Recipes - Sviluppo di un indicatore di volatilità multivaluta in MQL5.
Per favore, scrivete più tardi, se non è troppo difficile, se ha funzionato o no.
Non ho ancora letto l'articolo, ma funziona bene con OnTimer
Ho una strana immagine che mostra che chiamando OnCalculate da OnTimer funziona) ho bisogno di aggiungere valori corretti nelle serie temporali
Non ho ancora letto l'articolo, ma la ricezione con OnTimer funziona bene
Non ho ancora letto l'articolo, ma la ricezione con OnTimer funziona bene
Usa lo Styler - è meglio per identificare gli errori.
Aumentare la variabile di conteggio prima di uscire da OnCalculate() - in questo caso questa variabile conterà correttamente tutte le corse in OnCalculate.