o que quer que você esteja tentando fazer, esta provavelmente não é a maneira de obtê-lo.
olhar para "Indicadores de justiça, especialistas e testes estratégicos" -- expliquei a maneira de usar o iCustom...
Acho que você deveria ter mudado o indicador e feito dois buffers extras para obter esses dados.
O baixo valor é, por exemplo, LOWbuff[]
alto valor é HIGHbuff[]
agora se você tem um novo alto (indicador interno) então você verifica se isso difere do valor armazenado agora mesmo... se for, você tem um novo valor...
1.2815 ZigZag máximo, por exemplo
bar1
bar2
bar3
...
barx novo valor vem como 1,2755
sua vontade será algo como HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755.... ]
então você usa Icustom(NULL,0, "ZigZag",3,0); --> e voilá! você tem seu número
Espero que você possa entender do que estou falando...
zolero
olhar para "Indicadores de justiça, especialistas e testes estratégicos" -- expliquei a maneira de usar o iCustom...
Acho que você deveria ter mudado o indicador e feito dois buffers extras para obter esses dados.
O baixo valor é, por exemplo, LOWbuff[]
alto valor é HIGHbuff[]
agora se você tem um novo alto (indicador interno) então você verifica se isso difere do valor armazenado agora mesmo... se for, você tem um novo valor...
1.2815 ZigZag máximo, por exemplo
bar1
bar2
bar3
...
barx novo valor vem como 1,2755
sua vontade será algo como HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755.... ]
então você usa Icustom(NULL,0, "ZigZag",3,0); --> e voilá! você tem seu número
Espero que você possa entender do que estou falando...
zolero
zolero:
o que quer que você esteja tentando fazer, esta provavelmente não é a maneira de obtê-lo.
olhar para "Indicadores de justiça, especialistas e testes estratégicos" -- expliquei a maneira de usar o iCustom...
Acho que você deveria ter mudado o indicador e feito dois buffers extras para obter esses dados.
O baixo valor é, por exemplo, LOWbuff[]
alto valor é HIGHbuff[]
agora se você tem um novo alto (indicador interno) então você verifica se isso difere do valor armazenado agora mesmo... se for, você tem um novo valor...
1.2815 ZigZag máximo, por exemplo
bar1
bar2
bar3
...
barx novo valor vem como 1,2755
sua vontade será algo como HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755.... ]
então você usa Icustom(NULL,0, "ZigZag",3,0); --> e voilá! você tem seu número
Espero que você possa entender do que estou falando...
zolero
Não, na verdade eu não entendo, o que quer que você esteja tentando fazer, esta provavelmente não é a maneira de obtê-lo.
olhar para "Indicadores de justiça, especialistas e testes estratégicos" -- expliquei a maneira de usar o iCustom...
Acho que você deveria ter mudado o indicador e feito dois buffers extras para obter esses dados.
O baixo valor é, por exemplo, LOWbuff[]
alto valor é HIGHbuff[]
agora se você tem um novo alto (indicador interno) então você verifica se isso difere do valor armazenado agora mesmo... se for, você tem um novo valor...
1.2815 ZigZag máximo, por exemplo
bar1
bar2
bar3
...
barx novo valor vem como 1,2755
sua vontade será algo como HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755.... ]
então você usa Icustom(NULL,0, "ZigZag",3,0); --> e voilá! você tem seu número
Espero que você possa entender do que estou falando...
zolero
Tudo o que eu quero é que minha EA saiba para que lado o indicador ziguezague está apontando (UP ORDOWN). COMO EU FARIA ISSO?
Tudo o que eu quero é que minha EA saiba para que lado o indicador ziguezague está apontando (PARA CIMA OU PARA BAIXO). COMO COMO EU VAI FAZER ISSO?
Provavelmente você quer saber quais foram os dois últimos valores (já que o ziguezague nem sempre tem um valor). Portanto, você tem que ler os dois últimos valores de um indicador: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++; }agora você tem dois números zig -- último valor e zag -- valor anterior a esse
if(zag>zig) indicador mostra para baixo
if(zig>zag) indicador mostra para cima
zolero
zolero:
if(zag>zig) indicador mostra para baixo
if(zig>zag) indicador aparece
zolero
OBRIGADO, entendi, funciona como um encanto
Tudo o que eu quero é que minha EA saiba para que lado o indicador ziguezague está apontando (PARA CIMA OU PARA BAIXO).
Provavelmente você quer saber se foram os dois últimos valores (já que o ziguezague nem sempre tem um valor), portanto você tem que ler os dois últimos valores de um indicador: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++; }agora você tem dois números em zig -- último valor e zag -- valor anterior a esse
if(zag>zig) indicador mostra para baixo
if(zig>zag) indicador aparece
zolero
c0d3:
DEPOIS DE TESTÁ-LO,
indicador if(zag<zig) mostra para baixo
se(zig<zag) indicador aparecer
i PENSANDO QUE É CORRETO, Deu DIREÇÃO OPOSITIVA COM (zag>zig), (zig>zag)
zolero:
if(zag>zig) indicador mostra para baixo
if(zig>zag) indicador aparece
zolero
OBRIGADO, entendi, funciona como um encanto Tudo o que eu quero é que minha EA saiba para que lado o indicador ziguezague está apontando (PARA CIMA OU PARA BAIXO).
Provavelmente você quer saber se foram os dois últimos valores (já que o ziguezague nem sempre tem um valor), portanto você tem que ler os dois últimos valores de um indicador: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++; }agora você tem dois números em zig -- último valor e zag -- valor anterior a esse
if(zag>zig) indicador mostra para baixo
if(zig>zag) indicador aparece
zolero
DEPOIS DE TESTÁ-LO,
indicador if(zag<zig) mostra para baixo
se(zig<zag) indicador aparecer
i PENSANDO QUE É CORRETO, Deu DIREÇÃO OPOSITIVA COM (zag>zig), (zig>zag)
c0d3:
Eu já estava olhando a última linha no gráfico. isto significa que a última linha estava olhando para baixo [ou para cima]. Mas há um pequeno problema em tomá-lo como sinal para cima ou para baixo: o ziguezague pode [e muitas vezes faz] se redesenhar. isto significa que se a linha entre dois pontos estiver mostrando boca a boca (de 1.2900 a 1.2850) então não significa que o preço suba. É provável que ele suba, mas há uma grande chance de que, após algum movimento para baixo, você tenha uma linha nova para baixo (de 1.2900 a 1.2820) e assim por diante. Meu ponto é que ter uma linha sobre o gráfico não significa que o movimento para esta direção tenha terminado.
i PENSANDO QUE É CORRETO, Deu DIREÇÃO OPOSITIVA COM (zag>zig), (zig>zag)
int n, i; duplo 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++;
}
&nbint n, i; duplo 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++; }
Modifiquei um pouco o código em ziguezague para mostrar o que quero dizer com falso sinal. como theysay: uma imagem pode dizer mais de 1000 palavras....

A linha vermelha é o ziguezague original e vai de baixo para cima e de volta aos melhores momentos... pelo menos parece assim. Mas se você está codificando uma ea, então ea get'ssignals que estão perto da linha amarela. pode ser ainda pior, pois eu fiz um quickhack muito rápido...
o código está sendo redesenhado para cima ou para baixo até que a próxima linha tenha sido desenhada e assim, passo a passo, mudando a linha amarela (apagando valores máximos e mínimos) até que você receba uma linha vermelha...

A linha vermelha é o ziguezague original e vai de baixo para cima e de volta aos melhores momentos... pelo menos parece assim. Mas se você está codificando uma ea, então ea get'ssignals que estão perto da linha amarela. pode ser ainda pior, pois eu fiz um quickhack muito rápido...
o código está sendo redesenhado para cima ou para baixo até que a próxima linha tenha sido desenhada e assim, passo a passo, mudando a linha amarela (apagando valores máximos e mínimos) até que você receba uma linha vermelha...

Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Isto é o que eu tenho até agora:
ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);
As linhas são desenhadas no gráfico, mas tanto ZigZagHigh quanto ZigZagLow são iguais tozero quando eu executo o programa.
Como eu determinaria a tendência do indicador ZigZag com a função icustom?
Obrigado