Sim. Tem as funções ChartGetInteger para saber a primeira e total de barras visíveis no gráfico, e as funções ChartXYToTimePrice e ChartTimePriceToXY para conversão de escala. Com essas informações podes criar uma caixa (região) para cada candle com as quais pode verificar se o clique foi sobre algum candle. Sabendo sobre qual candle foi o clique pode obter a máxima e mínima usando as funções iHigh e iLow.
Também vai precisar da função iTime, para saber o tempo de abertura da vela e obter a coordenada x. A coordenada y vai ser obtida sabendo máxima e mínima com as funções iHigh e iLow.
Fiz um modelo que podes usar como ponto de partida, já que em algum momento pode me ser útil.
//+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- if(id!=CHARTEVENT_CLICK) { return; } int first = ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR); int total = ChartGetInteger(0,CHART_VISIBLE_BARS); int last = first - total +1; int x,y; int prev_x; int left; int right; int top; int bottom; int bar = -1; for(int i=0; i<total; i++) { int j = last+i; ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,j),iHigh(_Symbol,PERIOD_CURRENT,j),x,top); ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,j),iLow(_Symbol,PERIOD_CURRENT,j),x,bottom); ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,j+1),0,prev_x,y); int dx = x-prev_x; left=x-dx/2; right=x+dx/2; Print(left,",",right,",",top,",",bottom); if(left<lparam && lparam<=right && top<=dparam && dparam<=bottom) { bar = j; break; } } if(bar>=0) { Comment("High: ",iHigh(_Symbol,PERIOD_CURRENT,bar),"\nLow: ",iLow(_Symbol,PERIOD_CURRENT,bar)); } }
Samuel Manoel De Souza:
Fiz um modelo que podes usar como ponto de partida, já que em algum momento pode me ser útil.
Muito bom, obrigado por compartilhar.
Samuel Manoel De Souza:
Fiz um modelo que podes usar como ponto de partida, já que em algum momento pode me ser útil.
Muito obrigado,
vou estudar o código, vlww!!!

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 tarde Pessoal,
tem alguma forma de quando clicar em um candle no gráfico me retornar a máxima ou a mínima do candle no qual foi clicado?