TRUE Forex

Просмотр кода форекс индикатора !!X08-MT4 HISTO MA.mq4

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1  C'60,20,220'
#property indicator_color2  C'220,20,60'//C'178,34,34'
#property indicator_color3  CLR_NONE
#property indicator_width1  6
#property indicator_width2  6
#property indicator_width3  0

//
//
//
//
//

extern int Price              = PRICE_CLOSE;
extern int PriceSmoothing     = 3;
extern int PriceSmoothingMode = MODE_EMA;
extern int AverageLength      = 20;
extern int AverageMode        = MODE_EMA;

double avg[];
double avgeu[];
double avged[];
double price[];


//------------------------------------------------------------------
//                                                                  
//------------------------------------------------------------------
// 
//
//
//
//

int init()
{
   IndicatorBuffers(4);
      SetIndexBuffer(0,avgeu); SetIndexStyle(0,DRAW_HISTOGRAM);
      SetIndexBuffer(1,avged); SetIndexStyle(1,DRAW_HISTOGRAM);
      SetIndexBuffer(2,avg);
      SetIndexBuffer(3,price);
         PriceSmoothing = MathMax(PriceSmoothing,1);
      IndicatorShortName("X");
      SetIndexLabel(0,NULL);
      SetIndexLabel(1,NULL);
      SetIndexLabel(2,NULL);
   return(0);
}

//------------------------------------------------------------------
//                                                                  
//------------------------------------------------------------------
//
//
//
//
//

int start()
{
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);

   //
   //
   //
   //
   //

      for(int i=limit; i>=0; i--)
      {
         price[i] = iMA(NULL,0,PriceSmoothing,0,PriceSmoothingMode,Price,i);

               double ma = iMA(NULL,0,AverageLength,0,AverageMode,Price,i);
               double me = iDeviation(price,AverageLength,ma,i)/MathSqrt(AverageLength);
               if (me!=0)
                     avg[i] = (price[i]-ma)/me;
               else  avg[i] = 0;
               avgeu[i] = EMPTY_VALUE;               
               avged[i] = EMPTY_VALUE;               

         if (avg[i]>0) avgeu[i] = avg[i];
         if (avg[i]<0) avged[i] = avg[i];
      }
   return(0);
}


//------------------------------------------------------------------
//                                                                  
//------------------------------------------------------------------
//
//
//
//
//

double iDeviation(double& array[], double period, double ma, int i, bool isSample=true)
{
   double sum = 0.00; for(int k=0; k<period; k++) sum += MathPow((array[i+k]-ma),2);
   if (isSample)      
         return(MathSqrt(sum/(period-1.0)));
   else  return(MathSqrt(sum/period));
}

Комментарии к исходному коду форекс индикатора !!X08-MT4 HISTO MA.mq4
В целях безопасности и борьбы со спамом в тексте комментариев запрещено размещать html-теги и ссылки. Благодарим за понимание.

  • X
  • 0% загружено
« индикатор !!X06-MT4 BANDS.mq4
индикатор !!X10-MT4 RSI #2.mq4 »