Mal funcionamento no código que verifica o número de ticks e muda a cor da linha tracejada

 
Olá, venho pedir uma ajuda a respeito do código a seguir. Ele plota uma linha amarela no fechamento de cada vela. Também deveria mudar a color desta linha quando o volume de ticks do candle fosse superior a 500, por exemplo. No entanto, ao compilar o código, a linha inteira muda de cor, não apenas quando o volume de ticks é superior a 500. Alguém poderia me ajudar? Sou muito grato desde já.
//+------------------------------------------------------------------+
//|                                              linha_exercício.mq5 |
//|                                        gabriel.oficial@yahoo.com |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "gabriel.oficial@yahoo.com"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1

//--- LINE
#property indicator_type1 DRAW_LINE
#property indicator_label1 "LINE_Z"
#property indicator_color1 clrYellow
#property indicator_width1 3
#property indicator_style1 STYLE_SOLID


input uint N = 5; //N° de ticks
//--- BUFFERS
double LineBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
   //ArraySetAsSeries(LineBuffer,true);
   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[])
  {
//---
   static int ticks=0;
//--- Calculate ticks to change the style, color and width of the line
   ticks++;
//--- If a critical number of ticks has been accumulated
   
   
   
   
   
   PrintFormat("prev calculated: %f", prev_calculated);
   PrintFormat("rates total: %f", rates_total);
   
    //close[rates_total - 1]
    double valor = rates_total - prev_calculated;
    
    //PrintFormat("ticks: %f", tick_volume[rates_total - 1]);
    for(int i = 0; i < rates_total; i++)
       {
          LineBuffer[i] = close[i];
          //PrintFormat("LineBuffer %f", LineBuffer[i]);
          if(tick_volume[i]>500)
           {
            //--- Change the line properties
             PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrBlack);
             //PlotIndexSetInteger(0,PLOT_LINE_WIDTH,4);
             PlotIndexSetInteger(0,PLOT_LINE_WIDTH,3);
            //--- Reset the counter of ticks to zero
            ticks=0;
           }
           
           //PrintFormat("ticks: %f", tick_volume[i]);
       
       }    
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
Descubra novos recursos para o MetaTrader 5 com a comunidade e os serviços MQL5
Descubra novos recursos para o MetaTrader 5 com a comunidade e os serviços MQL5
  • 2024.05.09
  • www.mql5.com
MQL5: linguagem de estratégias de negociação inseridas no Terminal do Cliente MetaTrader 5. A linguagem permite escrever seus próprios sistemas automáticos de negócios, indicadores técnicos, scripts e bibliotecas de funções
 
Voce tem que usar DRAW_COLOR_LINE para fazer uma linha colorida. Se voce usar DRAW_LINE toda a cor vai ser alterada. A unica diferença com a versão colorida é que além do plot do preço tu tem que lidar com um indice que diz qual cor é pra usar.
Documentação sobre MQL5: Indicadores Customizados / Estilos de Indicador em Exemplos / DRAW_COLOR_LINE
Documentação sobre MQL5: Indicadores Customizados / Estilos de Indicador em Exemplos / DRAW_COLOR_LINE
  • www.mql5.com
O valor DRAW_COLOR_LINE é uma variante colorida do estilo DRAW_LINE ; ele também desenha uma linha usando os valores do buffer do...
Razão: