Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Boa noite.
Estou tentando fazer um indicador que pinte candles com a seguinte condição.
Se a maxima do candle atual for maior que a dos ultimos dois candles e o seu fechamento for menor que o fechamento do ultimo candle. plotar a cor vermelha nessa barra.
o script roda sem erro, porém ao coloca-lo no gráfico não exibe corretamente a plotagem. Se alguem puder me ajudar.
Segue o script.
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_plots 1
#property indicator_label1 "Preço de fechamento de compra"
#property indicator_type1 DRAW_COLOR_CANDLES
#property indicator_style1 STYLE_SOLID
#property indicator_color1 clrRed
double OpenBuffer[];
double HighBuffer[];
double LowBuffer[];
double CloseBuffer[];
double Colors[];
int OnInit()
{
SetIndexBuffer(0,OpenBuffer,INDICATOR_DATA);
SetIndexBuffer(1,HighBuffer,INDICATOR_DATA);
SetIndexBuffer(2,LowBuffer,INDICATOR_DATA);
SetIndexBuffer(3,CloseBuffer,INDICATOR_DATA);
SetIndexBuffer(4,Colors,INDICATOR_COLOR_INDEX);
//-----
return(INIT_SUCCEEDED);
}
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=1; i<rates_total;i++)
{
if(high[i]>high[i-1] && high[i-1]>high[i-2] && close[i]<close[i-1])
{
OpenBuffer[i]=open[i];
HighBuffer[i]=high[i];
LowBuffer[i]=low[i];
CloseBuffer[i]=close[i];
Colors[i]=0;
}
else
{
OpenBuffer[i]=0;
HighBuffer[i]=0;
LowBuffer[i]=0;
CloseBuffer[i]=0;
}
}
return(rates_total);
}