[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 389

 

Buon pomeriggio, sto cercando di contare il volume delle candele minute rialziste e ribassiste in un'ora:

se (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Numero totale di candele da cercare
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);

Cosa c'è che non va, perché non funziona?

 
Stells:

Pomeriggio, cercando di calcolare il volume delle candele minute rialziste e ribassiste in un'ora:

se (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // numero totale di candele da cercare
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);

cosa c'è che non va, perché non funziona?

tutto il tempo esaminando la prima candela
 

se(iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Numero totale di candele da cercare
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);

questo funziona, ma i valori di Vupbars e Vdnbars lampeggiano e si resettano -- questo l'ho rimosso, il secondo non ancora ?

e anche la loro somma non è uguale a V perché?

 
Stells:

e anche la loro somma non è uguale a V perché?

perché state confrontando il volume delle 59 candele dell'ultimo minuto (compresa quella appena iniziata) con l'ultima candela dell'ora chiusa

 

No, i numeri non corrispondono a un ordine di grandezza.

Per esempio, l'orologio ha un volume di 40.

la somma dei minuti è 320

 
dkfl.zrjdktdbx:

Qualcosa del genere, nella mia mente


No, non funziona così, non sono mai uguali. E infatti, per qualche motivo ho un segnale visivo che è chiaramente inferiore a quello principale, per esempio, ma i valori dicono il contrario. Non capisco, qual è il trucco?
 
Stells:

No, i numeri non corrispondono a noi per un ordine di grandezza.

Per esempio, l'orologio ha un volume di 40.

la somma dei minuti è 320

Stai lanciando l'indicatore sulla M1?

dare il codice completo e usare il pulsante SRC quando si inserisce

 
ilunga:

stai lanciando un indicatore sulla M1?

dare il codice completo e usare il pulsante SRC quando si inserisce


questo consulente

su m1

 
Stells:


questo è un EA

su m1

in ogni caso, date un po' più di codice - per esempio dove si usano Vupbars e Vdnbars che si scopre che sono azzerati

e sarebbe anche auspicabile azzerarli prima del ciclo:

int Vupbars = 0;
int Vdnbars = 0;

 

L'ho fatto:

int Vupbars; - questo viene messo nelle variabili volumetriche
int Vdnbars; - questo viene messo nelle variabili volumetriche

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

se(iTime(NULL,60,1)!=TS)
{
int TotalBars = 61; // Numero totale di candele da cercare
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);