Название индикатора: ZigZag_iMA Краткое описание: На основании скользящей средней и отступа от неё строится индикатор по принципу Зиг-Заг. Индикатор использует 2 буфера, которые отрисовываются в окне чарта. Настройка индикатора: extern string text1 = "1. Настройка координат"; extern int pipsH=1000; // Отступ от maС + extern int pipsL=1000; //Отступ от maС - extern string text2 = "1.2 Настройка средней скользящей"; //maC – среднее скользящее: extern int TFС=0;//тайм фрейм C extern int pMAC=128;//период C средней extern int priceMAC=0;//цена C средней extern int typeMAC=0;//метод C средней extern int shiftMAC=0;//сдвиг C средней extern string text3 = "1.3 Настройка отрисовки индикатора"; Цвет_1 Стиль_1 Толщина_1 Цвет_2 Стиль_2 Толщина_2 Алгоритм: 1. этап Формируем 2 графических буфера, куда будут сохраняться результаты вычислений индикатора на каждом баре. Pik[] Pik_Max&Min[] 1.1 Этап Вычисляем канал для определения начала построения отрезка maC= iMA(s,TFC,pMAC,shiftMAC,typeMAC,priceMAC,0); Up_ch=mac+pipsH*Point; Down_ch=mac-pipsH*Point; 2. Этап При открытии бара проверяем, какое из действий наиболее вероятно - продолжение отрезка или построение нового отрезка. if (StartUp==0 && High[1]>=Up_ch) StartUp=1, StartDown=0, Up=High[1], Pik[0]=High[1], Pik_Max&Min[0]=High[1]; if (StartDown==0 && Low[1]<=Low_ch) StartDown=1, StartUp=0, Down=Low[1], Pik[0]=Low[1], Pik_Max&Min[0]=Low[1]; if (StartUp==1 && High[1]>Up) Up=High[1], Pik[0]=High[1], Pik[1]=0, Pik_Max&Min[0]=High[1]; if (StartDown==1 && Low[1]