mrDoktor:
Там не только МА, но и ATR и Close, найдете в CodeBase.
Speculator_:
Parabolic SAR не рисуется линией.
mrDoktor:
Это больше похоже на сглаженную среднюю EMA.
на картинке -- параболик отрисованный линией:
-- во вложении -- сам параболик, что поставляется с терминалом
собственно, что было изменено в коде:
//--- drawing settings IndicatorDigits(Digits); SetIndexStyle(0,DRAW_LINE);//DRAW_ARROW); //SetIndexArrow(0,159);-- т.е. отрисовка стилем DRAW_ARROW была заменена на стиль DRAW_LINE.
Файлы:
Parabolic_line.mq4
8 kb
mrDoktor:
А какая линия у Вас чёрная?
G001:
А как этот код использовать?
mrDoktor:
А как этот код использовать?
А как этот код использовать?
#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_width1 2 #property indicator_color2 Red #property indicator_width2 2 //----- Input Parameters //+------------------------------------------------------------------+ extern int ATRPeriod = 21; extern int MAPeriod = 21; extern int MAMethod = 3; // 0=SMA,1=EMA,2=SSMA,3=LWMA extern int MAPrice = 5; // 0=Close,1=Open,2=High,3=Low,4=Median(HL/2),5=Typical(HLC/3),6=Weighted(HLCC/4) extern int PriceMode = 8; // 0=Close,1=Open,2=High,3=Low,4=Median(HL/2),5=Typical(HLC/3),6=Weighted(HLCC/4),7=Simple(OC/2),8=Quarted(HLOC/4),9=Bookkeeper((C*5+O*2+H+L)/9) //+------------------------------------------------------------------+ //----- Buffers double MAATR[]; double ATR[]; double MA[]; //----- int Trend; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //----- Drawing Settings IndicatorDigits(Digits); //----- IndicatorBuffers(3); //----- SetIndexBuffer(0,MA); SetIndexStyle(0,DRAW_LINE); SetIndexLabel(0,"MA"); SetIndexDrawBegin(0,MAPeriod); //----- SetIndexBuffer(1,MAATR); SetIndexStyle(1,DRAW_LINE); SetIndexLabel(1,"MAATR"); SetIndexDrawBegin(1,MAPeriod); //----- SetIndexBuffer(2,ATR); //----- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Price | //+------------------------------------------------------------------+ double Price(int i) { switch(PriceMode) { case 0 : return(Close[i]); case 1 : return(Open[i]); case 2 : return(High[i]); case 3 : return(Low[i]); case 4 : return((High[i]+Low[i])/2.0); case 5 : return((Close[i]+High[i]+Low[i])/3.0); case 6 : return((2*Close[i]+High[i]+Low[i])/4.0); case 7 : return((Open[i]+Close[i])/2.0); case 8 : return((Open[i]+Close[i]+High[i]+Low[i])/4.0); case 9 : return((Close[i]*5+Open[i]*2+High[i]+Low[i])/9); default : return(Close[i]); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //----- int i,limit; int counted_bars=IndicatorCounted(); if (counted_bars>0) counted_bars--; limit=Bars-counted_bars; //----- for(i=limit; i>=0; i--) { ATR[i]=iATR(NULL,0,ATRPeriod,i); MA[i]=iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); if(Price(i) < MA[i] - ATR[i]) {Trend = +1;} if(Price(i) > MA[i] + ATR[i]) {Trend = -1;} MAATR[i] = MA[i] + Trend*ATR[i]; } //----- return(0); } //+------------------------------------------------------------------+Вставить в компилятор, компилировать, и пользоваться им.
G001:
Вставить в компилятор, компилировать, и пользоваться им.
Вставить в компилятор, компилировать, и пользоваться им.
Во от души
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь