首页 技术指标 帖子

平滑ADX指标详解:提升交易决策的利器

附件
7072.zip (1 KB, 下载 0次)

大家好,今天我们来聊聊平滑ADX指标,这个指标是应某位论坛朋友的要求而编写的,实际上也不算太复杂。不过,关于平滑ADX算法的描述在网上几乎没有找到,因此我将直接分享代码。



输入参数:
     长度(14),
     ADX趋势(25), alpha1(0.25), alpha2(0.33);

 

变量:
     DMI正(0), DMI负(0), DMI(0), ADX(0),
     DMI正引导(0), DMI负引导(0), DMI正最终(0), DMI负最终(0),
     ADX引导(0), ADX最终(0);


接下来,我们调用内置的ADX函数,这样就不需要自己计算了:

Value1 = DirMovement(H, L, C, Length, DMI正, DMI负, ADX);
 

接下来是对原始ADX指标进行平滑处理,DI+、DI-和ADX线都将被平滑:

DI正引导 = 2*DMI正 + (alpha1 - 2) * DMI正[1] + (1 - alpha1) * DMI正引导[1];
DI正最终 = alpha2*DI正引导 + (1 - alpha2) * DMI正最终[1];
 
DI负引导 = 2*DMI负 + (alpha1 - 2) * DMI负[1] + (1 - alpha1) * DMI负引导[1];
DI负最终 = alpha2*DI负引导 + (1 - alpha2) * DMI负最终[1];
 
ADX引导 = 2*ADX + (alpha1 - 2) * ADX[1] + (1 - alpha1) * ADX引导[1];
ADX最终 = alpha2*ADX引导 + (1 - alpha2) * ADX最终[1];
 

最后,我们将在图表上绘制这些线:

Plot1(DI正最终, "DMI+");

Plot2(DI负最终, "DMI-");
Plot3(ADX最终, "ADX");



实际上,如果你不深入理解平滑ADX背后的深层含义,这个平滑过程可以分为两个阶段。假设我们有一个数值序列P,需要以最小滞后进行平滑。我们在第一阶段构建函数V(P)来表示P序列的振荡,公式如下:


  • P0是当前序列的值(价格或指标);
  • P1是前一个序列的值;
  • V1是前一个振荡值;
  • V0是当前振荡值。

另一种表达方式是:
     V0 = (Vol(P) + 3*V1) / 4,
其中: 
   
     Vol(P) = 8*P0 - 7*P1 - Ehlers的爆发(这个术语是我自己创造的)。


在第二阶段,我们应用简单的加权平滑:
 
     W0 = (1*V0 + 2*W1) / (2 + 1)。
其中:

  • W0是序列P的当前平滑值;
  • V0是当前的P序列振荡值;
  • W1是前一个平滑值。

在平滑ADX中,这个平滑算法被应用于标准ADX指标的所有三个缓冲区。这就是为什么我们称它为平滑ADX。如果我们对RSI指标进行平滑,我们就称之为平滑RSI等等。下面的图表显示,平滑ADX确实不像原始的标准ADX(平均方向运动指数)那样“剧烈”。



相关帖子

评论 (0)