Как изменять цвет только последней свечи?

 
Хочу .чтобы цвета последней свечи менялись, а остальные свечи оставались без изменений. Как мне это сделать? Заранее спасибо за ответы.
 
Potok2017:
Хочу .чтобы цвета последней свечи менялись, а остальные свечи оставались без изменений. Как мне это сделать? Заранее спасибо за ответы.

аккуратно нарисовать что-то своё(свечу другим цветом) поверх последней свечи.

в 5-ке можно задавать цвета через отдельный буфер


 
Maxim Kuznetsov:

аккуратно нарисовать что-то своё(свечу другим цветом) поверх последней свечи.

в 5-ке можно задавать цвета через отдельный буфер



Расскажите пожалуйста по подробнее!
 
Potok2017:

Расскажите пожалуйста по подробнее!

Очень просто.

/********************************************************************\
                                               Color last candle.mq5 |
                                                            Viktorov |
\********************************************************************/
#property copyright "Viktorov"
#property link      ""
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_plots   1
#property indicator_color1 clrDeepPink clrMediumSpringGreen
#property indicator_type1   DRAW_COLOR_CANDLES

double buffOpen[]
     , buffHigh[]
     , buffLow[]
     , buffClose[]
     , buffColor[];
/**************Custom indicator initialization function**************/
int OnInit()
{
   SetIndexBuffer(0, buffOpen, INDICATOR_DATA);
   SetIndexBuffer(1, buffHigh, INDICATOR_DATA);
   SetIndexBuffer(2, buffLow, INDICATOR_DATA);
   SetIndexBuffer(3, buffClose, INDICATOR_DATA);
   SetIndexBuffer(4, buffColor, INDICATOR_COLOR_INDEX);
   PlotIndexSetInteger(0, PLOT_SHOW_DATA, false);
//---
   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[])
{
//---
   if(prev_calculated == 0)
    {
     ArrayInitialize(buffOpen, EMPTY_VALUE);
     ArrayInitialize(buffHigh, EMPTY_VALUE);
     ArrayInitialize(buffLow, EMPTY_VALUE);
     ArrayInitialize(buffClose, EMPTY_VALUE);
    }
   buffOpen[rates_total-2] = EMPTY_VALUE;
   buffHigh[rates_total-2] = EMPTY_VALUE;
   buffLow[rates_total-2] = EMPTY_VALUE;
   buffClose[rates_total-2] = EMPTY_VALUE;
   buffColor[rates_total-2] = EMPTY_VALUE;
   
   buffOpen[rates_total-1] = open[rates_total-1];
   buffHigh[rates_total-1] = high[rates_total-1];
   buffLow[rates_total-1] = low[rates_total-1];
   buffClose[rates_total-1] = close[rates_total-1];
   buffColor[rates_total-1] = open[rates_total-1] > close[rates_total-1] ? 0 : 1;
//--- return value of prev_calculated for next call
   return(rates_total);
}/*******************************************************************/

Файлы:
Причина обращения: