常见的计算均线的指标是ma(simple moving average) 和ema(exponential moving average),公式如下: SMA = SUM(CLOSE, N)/N EMA = (CLOSE(i)P)+(EMA(i-1)(1-P)) or (M*CLOSE(i)+(N-M)*EMA(i-1))/N MA有滞后的特点, 因此在ema中对最近的价格给予较大的权重提高对趋势的跟踪效果。具体的ma指标有各种版本,ma ,ema,sm,wma等,不过原理都类似。 传统均线不考虑随时变化着的市场条件, 采用固定的计算过程, 在市场反复震荡时短期均线频繁地转向,而在市场快速上升或者下跌时长期均线反应迟钝。而趋势跟踪的策略需要指标能够适应不同的市场特性,根据市场的方向和速度“聪明”地应对,在单边市场中应用快速的均线,震荡行情中应用较慢的均线。 针对上述情况,Perry Kaufman 在 《Smarter Trading》中,提出了自适应均线(Adaptive Moving Average,AMA)的概念,试图在复杂的市场环境下, 使指标能够自动调整, 尽量过滤掉噪音和不可预知的价格变动, 更好地跟踪市场趋势的变动。
一、价格有效性比率 1、 问题提出 从下图看出, 从a到c,市场模式从理想化地平滑到充满噪音, 趋势的速度必须降下来,避免遭受双重损失。当价格在单方向上变化越快, 噪音越不明显,因此趋势速度的选择需要同时考虑方向和噪声:价格变动越清晰,越快,就需要使用越快的趋势均线,所以需要一种机制来敏感地捕捉市场模式的速度和连续性, 并且把该信息反馈到移动均线,调整移动均线的平滑速度
2、 有效性比率公式(Efficiency Ratio ER) 有效性比率用全部的价格移动距离(价格轨迹)除价格的净变动,也可认为是价格位移对波动的比率。公式如下: 假定在过去n 个收盘价格分别为p1,p2, …pn , 那么这个价格序列的效率
从公式可以看到, er值的范围是0(市场不明确,充满噪声)~~~1(高度趋势)
二、 定义趋势速度范围 按照指数平滑的思路对er简单扩展一下, 提高其稳定性 Scaled smoothing constand : sc = ER*(fast sc – slow sc) + slow sc 其中 sc = 2/(N+1) Eg 假如从快到慢的范围是2到30天, 则平滑常量为2/3, 2/31, 则 Sc = er * (2/3- 2/31) + 2/31 最后,即使在横向盘整的市场里, 长期(30)均线仍然缓慢地上下波动, 当市场趋向不明显时,自适应均线最好能够水平移动,为了实现这个目的, 再对sc平方一下。 Constant : C= sc * sc
三、 AMA 最终计算的AMA如下: AMA[i] = AMA[i-1] + c * (p[i] – AMA[i-1] ) 从公式看到, ama和ema计算思路是一样的, 只是在权重的确定不一样。
AMA趋势均线有如下特点: 1) 使用一定数目的天数,指定趋势范围的快慢 2) 市场没有方向时, ama趋势线停止波动 3) 当价格有明显变动时,ama能够快速跟踪, 较小的延迟 4) 改变一个参数,应用到不同市场 5) Ama基于预测分析,而不是简单验证
以上内容主要是描述或者翻译作者的原文,觉得这种对传统指标巧妙扩展的思路很值得借鉴,后续需要对自适应均线AMA的策略进行测试,看看在A股市场上实战的效果如何。
《smarter trading》 联合证券《自适应均线的择时应用》
luckystarsjz 回复 首先,我要说一件事,程序化交易不是强化自己的判断,也不是数据挖掘,更不是数据处理。择时只是一个减少错误损失我放大正确盈利的选择题,你中间这么多数据平滑,挖掘,用于未来毫无适应性,根本不了解市场的逻辑。
转载自 心一他爹的博客