Bom dia, estou com esse código abaixo e a única coisa que gostaria, é de que a cada candle, o meu indicador faça a plotagem da máxima e mínima do candle já fechado com a diferença de 1 tick. Consegui fazer a plotagem de forma bem simples, mas está aparecendo em todos os candles e gostaria que essa plotagem sempre mostrasse no candle anterior ao aberto, cada novo candle, quero deslocar a plotagem e limpar os anteriores. Tem como fazer?
#property version "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_label1 "Max"
#property indicator_type1 DRAW_ARROW
#property indicator_style1 STYLE_DASHDOT
#property indicator_color1 clrGreen
#property indicator_width1 1
#property indicator_label2 "Min"
#property indicator_type2 DRAW_ARROW
#property indicator_style2 STYLE_DASHDOT
#property indicator_color2 clrRed
#property indicator_width2 1
double maxbuffer[];
double minbuffer[];
int OnInit()
{
SetIndexBuffer(0,maxbuffer,INDICATOR_DATA);
SetIndexBuffer(1,minbuffer,INDICATOR_DATA);
ArrayInitialize(maxbuffer,EMPTY_VALUE);
ArrayInitialize(minbuffer,EMPTY_VALUE);
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[])
{
if(prev_calculated==0)
{
for(int i=0;i<rates_total;i++)
{
maxbuffer[i] = high[i]+5;
minbuffer[i] = low[i]-5;
}
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Use a funcao ArraySetAsSeries. Veja a documentacao no link.
[ ]'s
- www.mql5.com
Use a funcao ArraySetAsSeries. Veja a documentacao no link.
[ ]'s
Caramba, na mosca, muito obrigado. Resposta certeira, funcionou aqui de primeira na mudança de série e na hora do indicador, coloquei o valor [1] e isso foi o suficiente, show de bola mesmo....
Será que posso incomodar mais um pouco? Eu consegui deixar no formato da imagem abaixo, mas queria ver como posso desenhar uma linha reta com as cores do ponto que deixei, tentei usar o DRAW_LINE mas não rolou.
Caramba, na mosca, muito obrigado. Resposta certeira, funcionou aqui de primeira na mudança de série e na hora do indicador, coloquei o valor [1] e isso foi o suficiente, show de bola mesmo....
Será que posso incomodar mais um pouco? Eu consegui deixar no formato da imagem abaixo, mas queria ver como posso desenhar uma linha reta
com as cores do ponto que deixei, tentei usar o DRAW_LINE mas não rolou.
Amigo, boa tarde.
Poderia postar como ficou o código para plotagem da máxima? Estou tentando e não consigo.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Bom dia, estou com esse código abaixo e a única coisa que gostaria, é de que a cada candle, o meu indicador faça a plotagem da máxima e mínima do candle já fechado com a diferença de 1 tick. Consegui fazer a plotagem de forma bem simples, mas está aparecendo em todos os candles e gostaria que essa plotagem sempre mostrasse no candle anterior ao aberto, cada novo candle, quero deslocar a plotagem e limpar os anteriores. Tem como fazer?
#property version "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_label1 "Max"
#property indicator_type1 DRAW_ARROW
#property indicator_style1 STYLE_DASHDOT
#property indicator_color1 clrGreen
#property indicator_width1 1
#property indicator_label2 "Min"
#property indicator_type2 DRAW_ARROW
#property indicator_style2 STYLE_DASHDOT
#property indicator_color2 clrRed
#property indicator_width2 1
double maxbuffer[];
double minbuffer[];
int OnInit()
{
SetIndexBuffer(0,maxbuffer,INDICATOR_DATA);
SetIndexBuffer(1,minbuffer,INDICATOR_DATA);
ArrayInitialize(maxbuffer,EMPTY_VALUE);
ArrayInitialize(minbuffer,EMPTY_VALUE);
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[])
{
if(prev_calculated==0)
{
for(int i=0;i<rates_total;i++)
{
maxbuffer[i] = high[i]+5;
minbuffer[i] = low[i]-5;
}
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+