[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 389

 

Buenas tardes, estoy tratando de contar el volumen de velas de minutos alcistas y bajistas en una hora:

¡si (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Número total de velas a buscar
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);

¿Qué pasa, por qué no funciona?

 
Stells:

Buenas tardes, intentando calcular el volumen de las velas de minutos alcistas y bajistas en una hora:

si (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Número total de velas a buscar
int Vupbars;
int Vdnbars;
int V=iVolumen(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);

¿Qué pasa, por qué no funciona?

todo el tiempo examinando la primera vela
 

¡si(iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Número total de velas a buscar
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);

esto funciona, pero los valores de Vupbars y Vdnbars parpadean y se reinician -- este lo he quitado, el segundo todavía no ?

y además su suma no es igual a V ¿por qué?

 
Stells:

y además su suma no es igual a V ¿por qué?

porque estás comparando el volumen de las 59 velas de último minuto (incluyendo la que acaba de empezar) con la última vela de hora cerrada

 

No, las cifras no coinciden en un orden de magnitud.

Por ejemplo, el reloj tiene un volumen de 40.

la suma de las actas es de 320

 
dkfl.zrjdktdbx:

Algo así, en mi mente


No, no funciona así, nunca son iguales. Y de todos modos, por alguna razón tengo una señal visual una visiblemente más baja que la principal, por ejemplo, pero los valores dicen lo contrario. No lo entiendo, ¿cuál es el truco?
 
Stells:

No, los números no coinciden con nosotros por un orden de magnitud.

Por ejemplo, el reloj tiene un volumen de 40.

la suma de los minutos es de 320

¿Estás tirando el indicador en la M1?

dar el código completo y utilizar el botón SRC al insertar

 
ilunga:

¿está lanzando un indicador en la M1?

dar el código completo y utilizar el botón SRC al insertar


es un asesor

en m1

 
Stells:


esto es un EA

en m1

en cualquier caso, dar un poco más de código - por ejemplo, donde Vupbars y Vdnbars se utilizan que se encuentran a cero

y también sería deseable ponerlos a cero antes del ciclo:

int Vupbars = 0;
int Vdnbars = 0;

 

Lo he hecho:

int Vupbars; - se pone en las variables volumétricas
int Vdnbars; - se pone en las variables volumétricas

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

¡si(iTime(NULL,60,1)!=TS)
{
int TotalBars = 61; // Número total de velas a buscar
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ón de la queja: