767
//--------------------------------------------------------------- 8 --
int start() // Специальная функция start()
{
//--------------------------------------------------------------- 9 --
double
MA_c, MA_p, // Текущее и предыдущ. знач. МА
Sum; // Техн.параметр для накопл. суммы
int
i, // Индекс бара
n, // Формальн. параметр(индекс бара)
Counted_bars; // Количество просчитанных баров
//-------------------------------------------------------------- 10 --
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанного
if (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.
//-------------------------------------------------------------- 11 --
while(i>=0) // Цикл по непосчитанным барам
{
//-------------------------------------------------------- 12 --
Line_0[i]=0; // Горизонтальная линия отсчёта
//-------------------------------------------------------- 13 --
MA_c=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,i);
MA_p=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,i+Sh_1);
Line_1[i]= MA_c-MA_p; // Значение 1 линии скорости
//-------------------------------------------------------- 14 --
MA_c=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,i);
MA_p=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,i+Sh_2);
Line_2[i]= MA_c-MA_p; // Значение 2 линии скорости
//-------------------------------------------------------- 15 --
MA_c=iMA(NULL,0,Period_MA_3,0,MODE_LWMA,PRICE_TYPICAL,i);
MA_p=iMA(NULL,0,Period_MA_3,0,MODE_LWMA,PRICE_TYPICAL,i+Sh_3);
Line_3[i]= MA_c-MA_p; // Значение 3 линии скорости
//-------------------------------------------------------- 16 --
Line_4[i]=(Line_1[i]+Line_2[i]+Line_3[i])3;// Суммарный массив
//-------------------------------------------------------- 17 --
if (Aver_Bars<0) // Если неверно задано сглаживание
Aver_Bars=0; // .. то не меньше нуля
Sum=0; // Технический приём
for(n=i; n<=i+Aver_Bars; n++) // Суммироваение последних значен.
Sum=Sum + Line_4[n]; // Накопление суммы последн. знач.
Line_5[i]= Sum(Aver_Bars+1); // Индик. массив сглаженной линии
//-------------------------------------------------------- 18 --
i--; // Расчёт индекса следующего бара
//-------------------------------------------------------- 19 --
}