[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 282

 

Signori, insegnate come prendere un segnale didivergenza da un indicatore(FX5_Divergence_V2.1.mq4) ad un EA.

I buffer 2 e 3 dell'indicatore danno EMPTY_VALUE.

 
Qualcuno ha un raccoglitore di tick che salva la storia dei tick come segue: tempo di arrivo del tick, asc, bid? il codebase ha solo un raccoglitore di tick senza asc.
 
Sergey_Rogozin:

Signori, insegnate come prendere un segnale didivergenza da un indicatore(FX5_Divergence_V2.1.mq4) ad un EA.

I buffer 2 e 3 dell'indicatore danno EMPTY_VALUE.

Ho scritto la tua sceneggiatura? C'è tutto dentro. Invece di emettere un messaggio con Alert, scrivete la vostra elaborazione. Potete scrivere otto in DoubleToString() invece di sei cifre decimali se emette degli zeri. In ogni caso, i segnali sono presenti e lo script li legge. Applica un po' di mente e di sforzo.
 
artmedia70:
Ti ho scritto un copione? C'è tutto dentro. Invece di emettere un messaggio con Alert, scrivete la vostra elaborazione. Potete scrivere otto in DoubleToString() invece di sei cifre decimali se emette degli zeri. In ogni caso, i segnali sono presenti e lo script li legge. Applica un po' di mente e di sforzo.
Che uomo testardo! Lasciate che glielo spieghi di nuovo sulle mie dita.
I valori vuoti dei buffer con le frecce sono riempiti al posto degli zeri con valori EMPTY_VALUE numericamente uguali a 2147483647. Dove ci sono le frecce, i valori sono diversi, per esempio 0,000031.
Dobbiamo filtrare programmaticamente i valori "vuoti", perché al confronto sembrano il numero 2147483647.
Per esempio, io faccio così e funziona. Chi è più intelligente, può renderlo più bello.

double buy=iCustom(NULL,0,"FX5_Divergence_V2.1",2,CountBar);
// отфильтровывает значения EMPTY_VALUE, заменяя их на 0 
if(buy==EMPTY_VALUE) buy=0.0;
// теперь значения buy могут быть либо 0, либо значением стрелки, например, 0,000032
 
granit77:
Che uomo testardo! Lasciate che glielo spieghi di nuovo sulle mie dita.
I valori vuoti dei buffer con le frecce sono riempiti al posto degli zeri con valori EMPTY_VALUE numericamente uguali a 2147483647. Dove ci sono le frecce, i valori sono diversi, per esempio 0,000031.
Dobbiamo filtrare programmaticamente i valori "vuoti", perché al confronto sembrano il numero 2147483647.
Per esempio, io faccio così e funziona. Chi è più intelligente, può renderlo più bello.

Ora la persona scriverà che i buffer 2 e 3 emettono solo zeri :)))

Amico, una logica così semplice: se il valore del buffer NON è uguale a EMPTY_VALUE, significa che c'è una freccia su questa barra e quindi un segnale.
E come presentare questo valore vuoto e con cosa confrontarlo è una questione di gusto.

 
artmedia70:

Qui è tutto un dannato casino...


All'isola!!! :)

Ho gli stessi numeri (tramite Expert Advisor) ma la finestra Data mostra EMPTY_VALUE! C'è un modo per risolvere questo problema?


 
granit77:
Un uomo testardo. Lasciate che glielo spieghi di nuovo sulle mie dita.
I valori vuoti dei buffer con le frecce sono riempiti con EMPTY_VALUE numericamente uguale a 2147483647 invece di zeri. Dove ci sono le frecce, i valori sono diversi, per esempio 0,000031.
Dobbiamo filtrare programmaticamente i valori "vuoti", perché al confronto sembrano il numero 2147483647.
Per esempio, io faccio così e funziona. Chi è più intelligente, può renderlo più bello.



inteso in modo approssimativo.

 

A artmedia70.

Non potevo davvero usare lo script. Ho provato a fare quasi la stessa cosa di granit77 ,ma non ha funzionato.

If(buy==EMPTY_VALUE) buy=0.0 ; - il risultato è sempre "0". Ho degli avvisi provenienti dall'indicatore ma l'avviso collegato all'Expert Advisor non funziona.

Ok, grazie, continuerò a "soffrire"...)))

 
Sergey_Rogozin:

A artmedia70.

Non potevo davvero usare lo script. Ho provato a fare quasi la stessa cosa di granit77 ,ma non ha funzionato.

If(buy==EMPTY_VALUE) buy=0.0 ; - il risultato è sempre "0". Ho degli avvisi provenienti dall'indicatore ma l'avviso collegato all'Expert Advisor non funziona.

Ok, grazie, continuerò a "soffrire"...)))

non sei l'unico - agonizzante, sto già sistemando l'indicatore:)))
 
todem:

Ho gli stessi numeri (via EA), ma la finestra dei dati mostra EMPTY_VALUE! C'è un modo per risolvere questo problema?

Quando si stampano i valori del buffer sullo schermo, cosa si fa? Sono i dati numerici che vengono emessi comunque. Se volete emettere una stringa vuota, o "Empty Value" o "EMPTY_VALUE", emetteteli come variabili stringa.
Cioè :
stringa val;
se(buffer value==EMPTY_VALUE) val="EMPTY_VALUE";
Ma se(buffer value!=EMPTY_VALUE) val=DoubleToString(buffer value, 8);
e visualizzare il valore della variabile val invece del valore del buffer.
Per esempio: Commento ("Valore = ", val);