qualunque cosa tu stia cercando di fare, questo non è probabilmente il modo per ottenerla.
guarda 'Custiom indicators, experts and strategy testing' -- ho spiegato il modo di usare iCustom...
Penso che dovresti cambiare l'indicatore e fare due buffer extra per ottenere quei dati.
il valore basso è per esempio LOWbuff[]
il valore alto è HIGHbuff[]
ora se hai un nuovo alto (all'interno dell'indicatore) allora controlli se questo è diverso dal valore memorizzato in questo momento... se lo è, hai un nuovo valore...
1.2815 ZigZag max per esempio
bar1
bar2
bar3
...
il nuovo valore di barx arriva come 1.2755
il tuo sarà qualcosa come HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... . ]
poi usi Icustom(NULL,0, "ZigZag",3,0); --> e voilà! hai il tuo numero
Spero che tu possa capire di cosa sto parlando...
zolero
guarda 'Custiom indicators, experts and strategy testing' -- ho spiegato il modo di usare iCustom...
Penso che dovresti cambiare l'indicatore e fare due buffer extra per ottenere quei dati.
il valore basso è per esempio LOWbuff[]
il valore alto è HIGHbuff[]
ora se hai un nuovo alto (all'interno dell'indicatore) allora controlli se questo è diverso dal valore memorizzato in questo momento... se lo è, hai un nuovo valore...
1.2815 ZigZag max per esempio
bar1
bar2
bar3
...
il nuovo valore di barx arriva come 1.2755
il tuo sarà qualcosa come HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... . ]
poi usi Icustom(NULL,0, "ZigZag",3,0); --> e voilà! hai il tuo numero
Spero che tu possa capire di cosa sto parlando...
zolero
zolero:
qualunque cosa tu stia cercando di fare, questo non è probabilmente il modo per ottenerla.
guarda 'Custiom indicators, experts and strategy testing' -- ho spiegato il modo di usare iCustom...
Penso che dovresti cambiare l'indicatore e fare due buffer extra per ottenere quei dati.
il valore basso è per esempio LOWbuff[]
il valore alto è HIGHbuff[]
ora se hai un nuovo alto (all'interno dell'indicatore) allora controlli se questo è diverso dal valore memorizzato in questo momento... se lo è, hai un nuovo valore...
1.2815 ZigZag max per esempio
bar1
bar2
bar3
...
il nuovo valore di barx arriva come 1.2755
il tuo sarà qualcosa come HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... . ]
poi usi Icustom(NULL,0, "ZigZag",3,0); --> e voilà! hai il tuo numero
Spero che tu possa capire di cosa sto parlando...
zolero
No, in realtà non capisco, qualunque cosa tu stia cercando di fare, questo non è probabilmente il modo per ottenerla.
guarda 'Custiom indicators, experts and strategy testing' -- ho spiegato il modo di usare iCustom...
Penso che dovresti cambiare l'indicatore e fare due buffer extra per ottenere quei dati.
il valore basso è per esempio LOWbuff[]
il valore alto è HIGHbuff[]
ora se hai un nuovo alto (all'interno dell'indicatore) allora controlli se questo è diverso dal valore memorizzato in questo momento... se lo è, hai un nuovo valore...
1.2815 ZigZag max per esempio
bar1
bar2
bar3
...
il nuovo valore di barx arriva come 1.2755
il tuo sarà qualcosa come HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... . ]
poi usi Icustom(NULL,0, "ZigZag",3,0); --> e voilà! hai il tuo numero
Spero che tu possa capire di cosa sto parlando...
zolero
Tutto quello che voglio è fare in modo che il mio EA sappia da che parte sta puntando l'indicatore zigzag (SU O GIÙ). COME POTREI FARE?
Tutto quello che voglio è fare in modo che il mio EA sappia da che parte punta l'indicatore zigzag (SU O GIÙ). COME POTREI FARE?
Probabilmente vuoi conoscere gli ultimi due valori (dato che lo zigzag non ha sempre un valore). Quindi devi leggere gli ultimi due valori di un indicatore:int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }ora hai due numeri zig - ultimo valore e zag - valore precedente
se(zag>zig) l'indicatore mostra giù
se(zig>zag) l'indicatore mostra su
zolero
zolero:
se(zag>zig) l'indicatore mostra giù
se(zig>zag) l'indicatore mostra su
zolero
GRAZIE, capito, funziona come un fascino
Tutto quello che voglio è fare in modo che il mio EA sappia da che parte punta l'indicatore zigzag (SU o GIÙ). Come dovrei fare?
Probabilmente vuoi conoscere gli ultimi due valori (dato che lo zigzag non ha sempre un valore), quindi devi leggere gli ultimi due valori di un indicatore:int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }ora avete due numeri zig -- ultimo valore e zag -- valore precedente
se(zag>zig) l'indicatore mostra giù
se(zig>zag) l'indicatore mostra su
zolero
c0d3:
DOPO AVERLO TESTATO,
se(zag<zig) l'indicatore mostra giù
se(zig<zag) l'indicatore mostra su
PENSO CHE SIA CORRETTO, DAREBBE DIREZIONE OPPOSTA CON (zag>zig), (zig>zag)
zolero:
se(zag>zig) l'indicatore mostra giù
se(zig>zag) l'indicatore mostra su
zolero
GRAZIE, ce l'ho, funziona come un fascino Tutto quello che voglio è fare in modo che il mio EA sappia da che parte punta l'indicatore zigzag (SU o GIÙ). Come dovrei fare?
Probabilmente vuoi conoscere gli ultimi due valori (dato che lo zigzag non ha sempre un valore), quindi devi leggere gli ultimi due valori di un indicatore:int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }ora avete due numeri zig -- ultimo valore e zag -- valore precedente
se(zag>zig) l'indicatore mostra giù
se(zig>zag) l'indicatore mostra su
zolero
DOPO AVERLO TESTATO,
se(zag<zig) l'indicatore mostra giù
se(zig<zag) l'indicatore mostra su
PENSO CHE SIA CORRETTO, DAREBBE DIREZIONE OPPOSTA CON (zag>zig), (zig>zag)
c0d3:
Stavo guardando l'ultima linea già sul grafico. questo significa che l'ultima linea stava guardando giù [o su]. Ma c'è un piccolo problema nel prenderlo come un segnale verso l'alto o verso il basso: lo zigzag può [e spesso lo fa] ridisegnare se stesso. ciò significa che se la linea tra due punti si trova a sud (da 1,2900 a 1,2850) allora non significa che il prezzo salirà. Probabilmente salirà, ma c'è una grande possibilità che dopo qualche movimento verso il basso si abbia una nuova linea verso il basso (da 1,2900 a 1,2820) e così via. Il mio punto è che avere una linea sul grafico non significa che il movimento in questa direzione sia finito.
PENSO CHE QUESTO SIA CORRETTO, SI STAVA DANDO LA DIREZIONE OPPOSTA CON (zag>zig), (zig>zag)
int n, i; doppio zag, zig;
i=0;
mentre(n<2)
{
if(zig>0) zag=zig;
zig=iCustom(NULL, 0, "ZigZag", 0, i);
if(zig>0) n+=1;
i++;
}
&nbint n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }sp;int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }
Ho modificato un po' il codice dello zigzag per mostrare cosa intendo per falso segnale. come si dice: un'immagine può dire più di 1000 parole....
![](https://c.mql5.com/mql4/forum/2006/09/zigzag_modified.gif)
La linea rossa è lo zigzag originale e va dal basso verso l'alto e viceversa nei momenti migliori... almeno così sembra. Ma se stai codificando un ea allora l'ea ottiene segnali che sono vicini alla linea gialla. può essere anche peggio come ho fatto un hack molto veloce...
il codice sta ridisegnando la linea verso l'alto o verso il basso fino a quando la linea successiva è stata disegnata e così passo dopo passo cambiando la linea gialla (cancellando i valori massimi e minimi) fino ad ottenere una linea rossa...
![](https://c.mql5.com/mql4/forum/2006/09/zigzag_modified.gif)
La linea rossa è lo zigzag originale e va dal basso verso l'alto e viceversa nei momenti migliori... almeno così sembra. Ma se stai codificando un ea allora l'ea ottiene segnali che sono vicini alla linea gialla. può essere anche peggio come ho fatto un hack molto veloce...
il codice sta ridisegnando la linea verso l'alto o verso il basso fino a quando la linea successiva è stata disegnata e così passo dopo passo cambiando la linea gialla (cancellando i valori massimi e minimi) fino ad ottenere una linea rossa...
![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
Questo è quello che ho finora:
ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);
Le linee sono disegnate sul grafico, ma sia ZigZagHigh che ZigZagLow sono uguali a zero quando eseguo il programma.
Come potrei determinare la tendenza dell'indicatore ZigZag con la funzione icustom?
Grazie