[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 389

 

Boa tarde, estou tentando contar o volume de velas em alta e em baixa minutos em uma hora:

se (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Número total de castiçais para pesquisar
int Vupbars;
int Vdnbars;
int V=iVolume(NULL,IndPeriod,1);
for(int p=0; p<TotalBars; p+++)
{
if(Close[1]>Open[1]) Vupbars=Vupbars+iVolume(NULL,0,1); else
if(Close[1]<Open[1]) Vdnbars=Vdnbars+iVolume(NULL,0,1);
}
}
TS=iTime(NULL,60,1);

O que está errado, por que não funciona?

 
Stells:

Tarde, tentando calcular o volume de velas de alta e baixa minutos em uma hora:

se (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Número total de candelabros a procurar
em Vupbars;
int Vdnbars;
int V=iVolume(NULL,IndPeriodo,1);
for(int p=0; p<TotalBars; p+++)
{
if(Close[1]>Open[1]) Vupbars=Vupbars+iVolume(NULL,0,1); else
if(Close[1]<Open[1]) Vdnbars=Vdnbars+iVolume(NULL,0,1);
}
}
TS=iTime(NULL,60,1);

o que está errado, por que não funciona?

o tempo todo examinando a primeira vela
 

se(iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Número total de castiçais para pesquisar
int Vupbars;
int Vdnbars;
int V=iVolume(NULL,60,1);
for(int p=0; p<TotalBars; p+++)
{
if(Close[p]>Open[p]) Vupbars=Vupbars+iVolume(NULL,0,p); else
if(Close[p]<Open[p]) Vdnbars=Vdnbars+iVolume(NULL,0,p);
}
}
TS=iTime(NULL,60,1);

isto funciona, mas os valores de Vupbars e Vdnbars piscam e reinicializam -- este eu removi, o segundo ainda não ?

e também sua soma não é igual a V porque ?

 
Stells:

e também sua soma não é igual a V por quê?

porque você está comparando o volume das 59 velas de última hora (incluindo a que acaba de começar) com a vela da última hora fechada

 

Não, os números não correspondem por uma ordem de grandeza.

Por exemplo, o relógio tem um volume de 40.

a soma das atas é de 320

 
dkfl.zrjdktdbx:

Algo como isto, em minha mente


Não, não funciona assim, eles nunca são iguais. E na verdade, por alguma razão tenho um sinal visual claramente inferior ao principal, por exemplo, mas os valores dizem o contrário. Eu não entendo, qual é o truque?
 
Stells:

Não, os números não nos correspondem por uma ordem de grandeza.

Por exemplo, o relógio tem um volume de 40.

a soma dos minutos é de 320

Você está jogando o indicador na M1?

dar o código completo e usar o botão SRC ao inserir

 
ilunga:

você está atirando um indicador na M1?

dar o código completo e usar o botão SRC ao inserir


este assessor

no m1

 
Stells:


este é um EA

no m1

em qualquer caso, dê um pouco mais de código - por exemplo, onde Vupbars e Vdnbars são usados que você descobre que eles são zerados

e também seria desejável zerá-las antes do ciclo:

int Vupbars = 0;
int Vdnbars = 0;

 

Eu já o fiz:

int Vupbars; - isto é colocado nas variáveis volumétricas
int Vdnbars; - isto é colocado nas variáveis volumétricas

int V=iVolume(NULL,60,1);

se(iTime(NULL,60,1)!=TS)
{
int TotalBars = 61; // Número total de castiçais para procurar
Vupbars=0;
Vdnbars=0;

for(int p=1; p<TotalBars; p+++)
{
if(Close[p]>Open[p]) Vupbars=Vupbars+iVolume(NULL,0,p); else
if(Close[p]<Open[p]) Vdnbars=Vdnbars+iVolume(NULL,0,p);
}
}
TS=iTime(NULL,60,1);

Razão: