一、DMA的基本原理
前边我们讲过MACD,它利用了短期EMA和长期EMA的偏离来做文章,今天要讲的DMA也是类似的思路。DMA和MACD的本质区别在于,它在计算均线时将EMA替换为了SMA,其他的两者基本一致。
其完整的计算公式如下。很明显,如果我们用第三行得到的DMA是否穿越0轴来作为交易信号的话,那这就是一个经典的均线金叉/死叉策略。
S M A 1 = S M A ( C L O S E , M 1 ) S M A 2 = S M A ( C L O S E , M 2 ) D M A = S M A 1 − S M A 2 A M A = S M A ( D M A , M 3 ) SMA1 = SMA(CLOSE, M1) \\ \quad \\ SMA2 = SMA(CLOSE, M2) \\ \quad \\ DMA = SMA1 - SMA2 \\ \quad \\ AMA = SMA(DMA, M3) SMA1=SMA(CLOSE,M1)SMA2=SMA(CLOSE,M2)DMA=SMA1−SMA2AMA=SMA(DMA,M3)
我们从统计学的角度做一个不太严谨的分析。
根据中心极限定理,随机变量的均值的分布服从正态分布。因此SMA1和SMA2均服从正态分布。我们又知道两个服从正态分布的随机变量的差值也服从正态分布,因此,DMA也服从正态分布。
对于服从正态分布的随机变量来说,均值回归就是最可靠的真理。因此,我们可以对DMA做移动平均来求得一个锚,即上述公式中的AMA。很容易想到,DMA会一直围绕着AMA波动:比AMA涨多了,就要跌回来;比AMA跌多了,就要涨回来。于是金叉、死叉的策略就出来了。
当然,这里有很多不严谨的地方,因为收盘价并不一定是随机变量,它的均值、标准差也可能会随着公司发展、宏观变化等而不断变化。但是在周期长度有限时,我们不妨将其看做一个服从正态分布的随机变量。
毕竟理想的假设太难满足,基于一定的假设做推论是很常见的操作。
二、DMA的魔改思路
参数
很明显,M1,M2,M3三个参数是我们最容易想到的魔改点。一般来说,默认的DMA会使用10、50、10这一版参数。但是在过往的研究中,我们早就发现了绝大多数指标并不能以一套参数适用于所有股票。
所以我们往往要探索针对自己关注的那些资产最合适的参数是什么。
DMA
对于DMA的计算,我们可以考虑下在MTM那里的魔改操作。即将SMA1-SMA2改为SMA1/SMA2*100-100,这时它就变成了一个中枢为0的指标,它的取值含义类似于BIAS指标。
好了,考虑到很多朋友不太喜欢这种理论性的东西,所以我们尽快进入到效果评测环节。
三、DMA的策略效果
DMA原版参数的效果在沪深300上表现并不太好,甚至没有跑赢基准。
我们尝试在原版公式的基础上来寻找更好的参数组合,看能否以比较低的成本取得比较好的效果。可以看到,相比于原版参数,(16,35,7)的组合不管是在累计收益还是最大回撤方面的表现都远远好于原版,胜率也提升到了50%,这会大大提高交易体验。
从交易信号来看也还可以,没有错过大的波段,但在震荡行情中胜率的确不高,这一般是因为有些假突破信号单纯从这一指标中无法比较好地识别,可能需要我们组合其他指标一起来看才会更好。
整体来看,DMA的底子还是很好的,值得进一步魔改或者用到组合策略中。
四、DMA魔改
我们再尝试下在DMA的计算公式中引入BIAS的思路,可以看到,策略效果进一步提升。收益和回撤都有了更好的表现,但胜率方面略有下滑。值得一提的是,魔改策略在10月初的反弹中创下了历史新高!
总的来说,第一个参数的最佳范围大概在10-20之间,第二个参数的最佳范围大概在20-40之间,第三个参数的最佳范围大概在2-10之间。大家可以根据自己日常关注的标的,来看下哪一套参数更加适合。
老Q也把魔改后的策略编成了通达信指标。大家可以加入圈子来获取魔改通达信公式和Python回测代码!