//+------------------------------------------------------------------+ //| Interpolation.mq4 | //| Copyright © 2008, Gryb Alexander | //| ICQ: 478-923-832 E-mail: alexandergrib@rambler.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Gryb Alexander" #property link "ICQ: 478-923-832 E-mail: alexandergrib@rambler.ru" //---- номер версии индикатора #property version "1.00" //---- отрисовка индикатора в отдельном окне #property indicator_separate_window //---- количество индикаторных буферов 1 #property indicator_buffers 1 //---- использовано всего одно графическое построение #property indicator_plots 1 //+----------------------------------------------+ //| Параметры отрисовки индикатора | //+----------------------------------------------+ //---- отрисовка индикатора в виде линии #property indicator_type1 DRAW_LINE //---- в качестве цвета использован #property indicator_color1 clrMagenta //---- линия индикатора - сплошная #property indicator_style1 STYLE_SOLID //---- толщина линии индикатора равна 2 #property indicator_width1 2 //---- отображение лэйбы индикатора #property indicator_label1 "Interpolation" //+----------------------------------------------+ //| объявление констант | //+----------------------------------------------+ #define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора //+----------------------------------------------+ //| ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА | //+----------------------------------------------+ input uint inumPrognoz=2; // Количество прогнозируемых баров input uint ibegin=0; // Стартовый бар для анализа input uint iend=5; // Финишный бар для анализа //+----------------------------------------------+ double b[]; //---- Объявление целых переменных начала отсчёта данных int min_rates_total,Shift,begin,end,numPrognoz; //---- объявление динамических массивов, которые будут в // дальнейшем использованы в качестве индикаторных буферов double IndBuffer[]; //+------------------------------------------------------------------+ //| Interpolation indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //---- Инициализация переменных начала отсчёта данных numPrognoz=int(inumPrognoz); begin=int(ibegin); end=int(iend); Shift=int(MathMax(numPrognoz-begin,0)); min_rates_total=end+numPrognoz; //---- Проверка входных переменных if(end=0; bar--) IndBuffer[bar]=0.0; //---- индексация элементов в массивах как в таймсериях ArraySetAsSeries(time,true); ArraySetAsSeries(close,true); //----Определяем коэфициенты for(int k=end; k>=begin; k--) b[k]=k; int start=begin-numPrognoz; int finish=end+numPrognoz+1; for(int bar=0; bar