Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 466
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
Saluti a tutti. Ho una domanda del genere. Ho un indicatore (frattali modificati), quando viene caricato su un grafico tutto è corretto, funziona come dovrebbe, ma quando cerco di usarlo in un EA, dice che il buffer è vuoto. Allo stesso tempo, quando si passa il buffer in Deinit, memorizza i valori corretti.
Il codice sorgente dell'indicatore è allegato. Sono pronto ad ascoltare consigli e suggerimenti su cosa sto sbagliando.
Codice da EA:
Potresti sostituire i se alla fine con:
(se è così semplice come quello,,,)
Grazie
Saluti a tutti. Ho una domanda del genere. Ho un indicatore (frattali modificati), quando viene caricato su un grafico tutto è corretto, funziona come dovrebbe, ma quando cerco di usarlo in un EA, dice che il buffer è vuoto. Allo stesso tempo, quando si passa il buffer in Deinit, memorizza i valori corretti.
Il codice sorgente dell'indicatore è allegato. Sono pronto ad ascoltare consigli e suggerimenti su cosa sto sbagliando.
Codice da EA:
Uno sguardo molto superficiale. Domanda: un frattale può essere su una barra zero ? Ma in OnDeinit() si fa un ciclo attraverso le barre e naturalmente si trova un frattale (non un valore di buffer vuoto).
In Deinit, passo anche attraverso 4-6 e ogni cosa è al suo posto.
In OnDeinit() si esegue un ciclo (da 0 a 100) attraverso le barre alla ricerca di un valore diverso da zero e si registra il valore trovato.
In OnTick() si cerca di emettere solo le ultime 6 barre del buffer 0. Potrebbe non esserci nessun frattale su di loro.
Per prima cosa, trova la barra con il frattale e poi stampa il valore di quella barra.
In OnDeinit() si esegue un ciclo (da 0 a 100) attraverso le barre alla ricerca di un valore diverso da zero e si registra il valore trovato.
Ma in OnTick(), si cerca di stampare solo le ultime 6 barre del buffer 0. Potrebbe non esserci nessun frattale su di loro. Per prima cosa, trova la barra con il frattale e poi stampa il valore di questa barra.
La sesta barra dovrebbe contenere un frattale.
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 frattale Up: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 frattale Up: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 frattale Down: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 frattale Up: 1,10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Funzione Deinit
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi! test avviato
Questo è l'inizio del log. Il test è iniziato, l'Expert Advisor ha funzionato, Deinit è stato lanciato e il frattale è stato trovato a 6 posizioni.
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
replay dell'immagine.
la sesta barra dovrebbe contenere un frattale.
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 frattale Up: 1,098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 frattale Up: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 frattale Down: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 frattale Up: 1,10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Funzione Deinit
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi! test avviato
Questo è l'inizio del log. inizio del test, l'Expert Advisor ha lavorato, Deinit parte, e immediatamente sulla 6a posizione trova un frattale.
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
Non so come affrontare il buffer dell'indicatore.
Questo:
do
prevtime = Time[0];
alla fine
Questo:
do
alla fine.
Come può influire questo? Purtroppo non è cambiato nulla.
come immagino il processo: l'indicatore viene caricato, inizia a controllare ogni condizione di tick/bar, se la condizione è soddisfatta, mette il valore nel buffer o nei buffer selezionati, poi l'EA chiama l'indicatore dal numero del buffer al valore ad un certo offset e prende il valore. Giusto?
Come può influire questo? Purtroppo non è cambiato nulla.
come immagino il processo: l'indicatore viene caricato, inizia a controllare la condizione ogni tick/bar, se è soddisfatta, mette il valore nel buffer o nei buffer selezionati, poi l'EA chiama l'indicatore dal numero del buffer al valore ad un certo offset e prende il valore. Giusto?
Perché c'è un nuovo controllo a barre nell'indicatore? Apparentemente non ci sono calcoli complicati