Помогите дописать Индикатор.

 

Я смастерил индикатор, он показывает вертикальные линии определённого времени (часы),

Когда я его запускаю, он по всей истории чертит эти линии, из-за этого терминал подтормаживает, а хотелось бы за 1-2 дня чтоб чертил, и последующий день перечерчивал и так в периоде 2-х дней.

Помогите пожалуйста дописать функцию "extern int NumberOfDays = 0;" - Количество дней истории

Я никак не могу правильно её написать((

Вот полный скрипт:

#property indicator_chart_window
//----
extern int A=11;
extern int B=13;
extern int C=15;
extern int D=17;
extern int E=19;
extern int CountBars=500;
extern int NumberOfDays = 1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
int shift=0;
for(shift=Bars-1;shift>=0;shift--)
{
ObjectDelete("A"+shift);
ObjectDelete("B"+shift);
ObjectDelete("C"+shift);
ObjectDelete("D"+shift);
ObjectDelete("E"+shift);
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int shift, NumBars=500;
double CloseTime,OpenTime;
//----
if (Bars<CountBars) { NumBars=Bars-1; } else { NumBars=CountBars; }
for(shift=Bars-1;shift>=0;shift--)
{
// OpenTime=StrToTime(TimeDay(Time[shift])+" "+A+":"+OpenTimeMin);
// CloseTime=StrToTime(TimeDay(Time[shift])+" "+B+":"+CloseTimeMin);
if (TimeHour(Time[shift])== A && TimeMinute(Time[shift])==0)
{
if(ObjectFind("A"+shift)!=0)
{
ObjectCreate("A"+shift, OBJ_VLINE, 0, Time[shift], 0);
ObjectSet("A"+shift, OBJPROP_WIDTH,1);
ObjectSet("A"+shift, OBJPROP_STYLE,0);
ObjectSet("A"+shift, OBJPROP_COLOR,Blue);
}
}
if (TimeHour(Time[shift])== 13 && TimeMinute(Time[shift])==0)
{
if(ObjectFind("B"+shift)!=0)
{
ObjectCreate("B"+shift, OBJ_VLINE, 0, Time[shift], 0);
ObjectSet("B"+shift, OBJPROP_WIDTH,1);
ObjectSet("B"+shift, OBJPROP_STYLE,0);
ObjectSet("B"+shift, OBJPROP_COLOR,Blue);
}
}
if (TimeHour(Time[shift])== C && TimeMinute(Time[shift])==0)
{
if(ObjectFind("C"+shift)!=0)
{
ObjectCreate("C"+shift, OBJ_VLINE, 0, Time[shift], 0);
ObjectSet("C"+shift, OBJPROP_WIDTH,1);
ObjectSet("C"+shift, OBJPROP_STYLE,0);
ObjectSet("C"+shift, OBJPROP_COLOR,Blue);
}
}
if (TimeHour(Time[shift])== D && TimeMinute(Time[shift])==0)
{
if(ObjectFind("D"+shift)!=0)
{
ObjectCreate("D"+shift, OBJ_VLINE, 0, Time[shift], 0);
ObjectSet("D"+shift, OBJPROP_WIDTH,1);
ObjectSet("D"+shift, OBJPROP_STYLE,0);
ObjectSet("D"+shift, OBJPROP_COLOR,Blue);
}
}
if (TimeHour(Time[shift])== E && TimeMinute(Time[shift])==0)
{
if(ObjectFind("E"+shift)!=0)
{
ObjectCreate("E"+shift, OBJ_VLINE, 0, Time[shift], 0);
ObjectSet("E"+shift, OBJPROP_WIDTH,1);
ObjectSet("E"+shift, OBJPROP_STYLE,0);
ObjectSet("E"+shift, OBJPROP_COLOR,Blue);
}
}
}
return(0);
}

 

Вот переработка твоего индикатора с тем что ты хотел получить..

Файлы:
 

Спасибо!

Причина обращения: