指标: IDWMA

 

IDWMA:

反转距离加权移动平均线指标。


作者: Scriptor

 

该指标是我的指标 的精简版(无 MTF/移位)。未经适当确认,擅自使用。

指标代码
我的代码
for(int i=limit; i>=0 && !IsStopped(); i--)
  {


   double Ew=0, Ewx=0;
   for(int j=i; j<=i+period; j++)
     {
      double Ed=0;
      for(int n=i; n<=i+period; n++)
         Ed+=fabs(BufferMA[j]-BufferMA[n]);

      double w=(period-1)/fmax(Ed,Point());
      Ew+=w;
      Ewx+=w*BufferMA[j];
     }
   BufferIDWMA[i]=(Ew!=0 ? Ewx/Ew : EMPTY_VALUE);
for(iBar = Bars - 1 - counted_bars; iBar >= 0; iBar--){
   // reference //en.wikipedia.org/wiki/Distance-weighted_estimator
   // W[i] = (n-1)/E[j=1...n]|x[i]-x[j]|
   // ave[i] = E[i=1...n](W[i]X[i]) / E[i=1...n]W[i]
   double  Ewx=0,  Ew=0;   int iLimit = iBar + MA_Period;
   for(int iWeight = iBar; iWeight < iLimit; iWeight++){

       double Ed = 0.;
       for(int iDist = iBar; iDist < iLimit; iDist++){
           Ed += MathAbs(prices[iWeight] - prices[iDist]);
       }
       double w = (MA_Period - 1) / MathMax(Ed, Point);
       Ew  += w;
       Ewx += w * prices[iWeight];
   }
   MAs[iBar] = Ewx / Ew;