Ricardo68Bhz
Ricardo68Bhz
Ricardo68Bhz
Ricardo68Bhz
Por favor!
Estou tentando criar uma vwap para um leitura no diario, mas a ela não tá legal, alguem poderia medar um help?
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(
const int rates_total, // número de barras no histórico
const int prev_calculated,// número de barras calculadas anteriormente
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[]
)
{
//---- verificação do número de barras disponíveis
if(rates_total < 1)
return(0);

//---- inicialização de variáveis
double sum_price = 0; // soma dos preços ponderados pelo volume
long sum_volume = 0; // soma dos volumes
datetime current_day = Time[0]; // data do primeiro dia

//---- iteração sobre os dados para calcular o VWAP diário
for(int i = 0; i < rates_total; i++)
{
// verifica se o dia mudou
if(Time[i] != current_day)
{
// calcula o VWAP para o dia anterior
double vwap = (sum_volume > 0) ? sum_price / sum_volume : 0;
IndBuffer[i-1] = vwap;

// reinicia as variáveis para o novo dia
sum_price = 0;
sum_volume = 0;
current_day = Time[i];
}

// acumula os preços ponderados e os volumes
sum_price += close[i] * volume[i];
sum_volume += volume[i];
}

//---- calcula o VWAP para a última barra
double vwap_last_bar = (sum_volume > 0) ? sum_price / sum_volume : 0;
IndBuffer[rates_total-1] = vwap_last_bar;

//---- plotar a VWAP no gráfico como uma média na cor preta
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrBlack);

//----
return(rates_total);
}
Ricardo68Bhz
Registered at MQL5.community