Programmazione Metatrader aiuto mql4 (1 Viewer)

Salve a tutti, spero che qualcuno potrà darmi una mano con questo problemino...

perchè scrivendo così funziona e si aggiorna correttamente candela dopo candela (partendo dalla candela [1]):
Label1Buffer[1] = Volume[1]/((High[1]-Low[1])*10000);
Label1Buffer[2] = Volume[2]/((High[2]-Low[2])*10000);
Label1Buffer[3] = Volume[3]/((High[3]-Low[3])*10000);


e così invece volendo visualizzare l'indicatore anche in tempo reale (sulla candela [0]) funziona solo alla prima candela poi si congela?:
Label1Buffer[0] = Volume[0]/((High[0]-Low[0])*10000);
Label1Buffer[1] = Volume[1]/((High[1]-Low[1])*10000);
Label1Buffer[2] = Volume[2]/((High[2]-Low[2])*10000);
Label1Buffer[3] = Volume[3]/((High[3]-Low[3])*10000);



anche con il ciclo for ovviamente il risultato non cambia:
for(int i=0;i<=Bars-(Bars-100);i++){
Label1Buffer = Volume/((High-Low)*10000);
}




invece così (senza candela [0]) funziona...
for(int i=1;i<=Bars-(Bars-100);i++){
Label1Buffer = Volume/((High-Low)*10000);
}



se invece sostituisco nel ciclo for il valore del buffer "Volume/((High-Low)*10000);" inserendo un solo valore (High più tosto che Low o Volume) funzionano tutto perfettamente...


RINGRAZIO TUTTI ANTICIPATAMENTE :)

codice completo:
#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots 1
//--- plot Label1
#property indicator_label1 "Label1"
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 clrBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
//--- indicator buffers
double Label1Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,Label1Buffer);

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---

for(int i=0;i<=Bars-(Bars-100);i++){
Label1Buffer = Volume/((High-Low)*10000);
}


//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
 

Users who are viewing this thread

Alto