Lyndon的量化修炼之路——均线差与MACD联动策略(一)
//文章内容为中州期货上海分公司所有
//期市妖风大,小心被刮飞。本文不构成任何实质性建议,也不对任何依此进行的交易结果负责
自己瞎琢磨了个策略,也不知道侵权了没#尴尬#
因为①②③④种原因和⑤⑥⑦⑧个现象,我决定构建一个均线差与MACD指标联动的趋势策略(中间乱七八糟一堆就不详述了,对后面也没啥帮助 )。总而言之,言而总之,均线差的极值往往距离行情反转节点较近,MACD不及均线差平滑但对均线差有一定的预测作用,在此利用均线差极值作为开仓信号,MACD指标作为平仓信号,以试图构建一个高胜率趋势模型。
策略的构建
首先选择螺纹钢主力连续合约作为测试使用的品种,K线周期选择30MIN,其他初试值如下表所示:
项目 | 值 |
---|---|
交易品种 | 螺纹主力连续合约 |
交易策略 | 均线差-MACD联动策略 |
期初余额 | 100,000元人民币 |
持仓手数(比例) | 1手 |
保证金比例 | 11% |
手续费 | 交易所手续费标准(开1%%,平今1%%) |
回测时期 | 2016年9月1日 ~ 2017年8月31日 |
K线周期 | 30MIN |
短周期K线根数 | 12根 |
长周期K线根数 | 26根 |
M | 9 |
拟合周期数 | 3 |
*M值表示长短周期指数平滑移动平均数差值的指数平滑移动平均周期
*长短周期K线根数取值采用最常见的26/12。
均线差取值为短均线减去长均线,通过向前拟合几个点得到的直线斜率变化,来判断极值点的位置,当极值由负变正,说明已经越过极小值,反之为极大值。当均线差为极小值处,发出多开信号,极大值处发出空开信号;当MACD处于极大值处且有多头持仓时,发出多平信号,处于极小值且有空头持仓时,发出空平信号。不添加其他开平仓信号过滤条件,下面得到回测结果作为后期优化的对比值。
项目 | 值 |
---|---|
期初余额 | 10,000元人民币 |
期末余额 | 14,780元人民币 |
盈利率 | 47.80% |
年化单利收益率 | 47.80% |
胜率 | 46.05% |
盈亏比 | 1.33 |
权益最大回撤比 | 76.01% |
平均保证金占用 | 35.75% |
交易次数 | 215 |
手续费 | 1350 |
在不进行优化和参数改变的情况下,策略在测试期间获得了47.80%的总收益率,整体表现尚可,但策略胜率不足50%,显然存在大量的错误的交易信号,而这也与最初的高胜率策略目标相距甚远。其次策略的权益回撤高达76.01%,如果用本金最大回调与本金的比值来表征策略所隐含的风险,这一数值则达到67.26%。
引起错误信号发出的原因
针对这一策略,首先应该找出违背操作思路的信号,现在分析以下一段时间内的交易状态。
对上图中出现的7次交易逐一进行分析:
多①:均线差发出了较为稳固的看多信号,但随机的价格走势表明这一信号的方向是错误的,而MACD指标很快到达极大值,即发出看空信号,如果仅靠均线差则损失会迅速扩大,MACD指标实现了这一多单的止损。
空①:这一信号的开仓位置实际上仍处于均线差的底部,因此做多更为合适,但由于均线差在底部形成双峰形态,使策略误认为出现了做空信号,而下一次MACD的平空信号会更加滞后,因此形成加大亏损。
空②:这一信号的发出判断基本是准确的,但由于均线的滞后性,导致遇到行情快速变化的时候,信号迟滞一根均线也会使策略由盈利转向亏损。
多②、多③:其实很明显这两者属于同一个信号,MACD在局部凸起中出现双峰,使得策略提前平仓,又在凸起鞍部发出又一个看多信号,致使策略由盈转亏。
空③:这一信号判断错误的主要原因来自于均线差极大值较实际价格走势由多转空较为滞后,错失最佳的入场机会,在捕捉小幅震荡的时候容易出现亏损。
多④:这一看多信号很好的描述了策略的理想状态,当趋势反转基本成型的时候,在均线交叉之前入场,在MACD极大值出现时平仓,获取相比常规均线策略更大的利润。
那么对以上7个信号进行一个简单的总结,导致错误信号的原因有一下3点:(1) 双峰结构出现时,鞍部结束时发出的错误信号,后称为“鞍部错误”; (2) 行情快速变化时,平仓信号迟滞引起由盈转亏; (3) 捕捉小幅震荡时,开仓信号迟滞引起由盈转亏。在这三个原因当中,后两者由于往往代表了短时的小幅亏损,因此如何解决鞍部错误信号更为首要。