//AtrSmColor для этого индикатора нужен индикатор SmAtr //он находится внизу кода закоментирован, если вы скачали индикатор AtrSmColor с МКЛ кодебазы //скачайте там же индикатор SmAtr #property copyright "Martingeil" #property link "fx.09@mail.ru" //---- indicator settings #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Yellow #property indicator_color2 Blue #property indicator_color3 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 //---- input parameters extern double t3_period=8.0; extern int AtrPeriod=14; extern double b=0.7; //---- indicator buffers double ExtBuffer0[]; double ExtBuffer1[]; double ExtBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(3); //---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_LINE); //---- 3 indicator buffers mapping SetIndexBuffer(0,ExtBuffer0); SetIndexBuffer(1,ExtBuffer1);//буфер синей линии SetIndexBuffer(2,ExtBuffer2);//буфер красной линии //---- name for DataWindow and indicator subwindow label IndicatorShortName("AtrSmColor"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| AtrSmColor | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); double atr; //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- atr if(counted_bars==0) limit-=1+1; for(int i=0; i=0; i--) { ExtBuffer1[i] = EMPTY_VALUE; if(ExtBuffer0[i]>ExtBuffer0[i+1]) ExtBuffer1[i] = ExtBuffer0[i]; ExtBuffer2[i] = EMPTY_VALUE; if(ExtBuffer0[i]=0) limit=Bars-counted_bars; limit--; for (shift=limit;shift>=0;shift--) {//Begin ATR=iATR(NULL,0,AtrPeriod,shift); dpo=ATR; e1Buffer[shift] = w1*dpo + w2*e1Buffer[shift+1]; e2Buffer[shift] = w1*e1Buffer[shift] + w2*e2Buffer[shift+1]; e3Buffer[shift] = w1*e2Buffer[shift] + w2*e3Buffer[shift+1]; e4Buffer[shift] = w1*e3Buffer[shift] + w2*e4Buffer[shift+1]; e5Buffer[shift] = w1*e4Buffer[shift] + w2*e5Buffer[shift+1]; e6Buffer[shift] = w1*e5Buffer[shift] + w2*e6Buffer[shift+1]; t3 = c1*e6Buffer[shift] + c2*e5Buffer[shift] + c3*e4Buffer[shift] + c4*e3Buffer[shift]; if (t3==0) t3=0.0001; ExtMapBuffer1[shift]=t3; } return(0); } //+------------------------------------------------------------------+ */ //+------------------------------------------------------------------+