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.
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:
Un'occhiata molto sommaria. Domanda: Posso avere un frattale sulla barra dello zero ? Ma in OnDeinit(), si fa un ciclo attraverso le barre e naturalmente si trova un frattale (non un valore vuoto del buffer).
Artyom Trishkin: 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, faccio anche un loop attraverso 4-6 e ogni cosa è al suo posto e ha dei valori.
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.
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?
E perché c'è una nuova barra nell'indicatore? Apparentemente non ci sono calcoli complessi
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
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