Помогите с тиковым графиком

 
Написал индюк, который отображает тиковый график. Всё бы ничего, но в момент открытия новой свечи рисует неверную катировку в виде параллельного участка. Как это изменить?? Цену Открытия свечи в момент появления новой свечи пробовал. Что делать??
Если кто-то делал подобное - поделитесь, пожалуйста. Или направте на страничку.


#property indicator_separate_window

#property indicator_buffers 1
#property indicator_color1 Red

double Tiks[];

int init()
{
   IndicatorBuffers(1);
   SetIndexBuffer (0, Tiks);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexEmptyValue( 0, 0.0);

   return(0);
}

int start()
{
   Tiks[0] = Bid;

   for (int i = (ArraySize(Tiks) - 1); i > 0; i--)
      Tiks[i] = Tiks[i - 1];

   return(0);
}

int deinit()
{
   return(0);
}
 
   if(Bid!=Tiks[0]){
     Tiks[0] = Bid;
     for (int i = (ArraySize(Tiks) - 1); i > 0; i--){
       Tiks[i] = Tiks[i - 1];
     }
   }
это простейшее решение...
 

При появлении нового бара не надо делать

for (int i = (ArraySize(Tiks) - 1); i > 0; i--)
Tiks[i] = Tiks[i - 1];

оно само делается.


А Tiks[0] = Bid; надо бы в конце делать, а не в начале.

 
int start(){

   static datetime LastTime=0;
   if(LastTime==0)LastTime=Time[0];
   
      if(LastTime==Time[0]){
            for(int i=MathMin(Bars,MaxLenght)-1;i>0;i--){
               ExtMapBuffer1[i]=ExtMapBuffer1[i-1];
            }
         ExtMapBuffer1[0]=Close[0];
      }
      else{
         ExtMapBuffer1[0]=Close[0];
         SetIndexDrawBegin(0,Bars-MathMin(Bars,MaxLenght));
      }

   LastTime=Time[0];

   return(0);
}
 
СПС. Работает.