MACD+波动率过滤+追踪止损 期货择时汇总

论坛 期权论坛 期权     
聚宽量化实验室   2019-8-10 23:59   4816   0



MACD 是常用的技术指标。广泛应用于股票期货等投资品类中。本文抱着实验的心态,通过 MACD 被使用最普遍的的方法对该指标在中国商品期货市场的择时效果进行验证。


我们还加入了波动率过滤,和追踪止损模块,希望以此验证指标的有效性,同时在验证过程中对传统方法进行调整,以期获得更好的绩效。


未经授权,严禁转载。




[h1]MACD 简介[/h1]

MACD分为三根线,分别是快速线 DIF,慢速线 DEA,信号线 MACD


计算方法为:


DIF = EMA(〖Price〗_i) - EMA(〖Price〗_j)
DEA = EMA(〖DIF〗_n)
MACD = 2 * (DIF - DEA)


Price:资产价格
i:短周期参数
j:长周期参数
n:DEA 周期参数
EMA:指数平均




[h1]策略使用方法[/h1]

使用的是最普遍,也是最简单的 MACD 方法。即金叉买入,死叉卖出。


对于金叉和死叉的判定,也是众说纷纭。


1、最传统保守的论点是:金叉,快速线 DIF,慢速线DEA同时大于 0,且DIF上穿 DEA,MACD 由负数变为正数;死叉:快速线 DIF,慢速线DEA同时小于 0,且DIF 下穿 DEA,MACD 由正数变为负数。


2、而另一种观点认为:并不需要限制DIF和DEA的符号,只需要 DIF 上下穿 DEA 就可以判定金叉和死叉。


3、还有一种观点:是我们最终放出来的这个代码,就是 DIF 和 DEA 都大于 0 时候做多,反之都小于 0 做空。






在我们的模型中,我们最初使用了传统观点,因为无论是实际测试还是从逻辑出发推测,传统观点的严格性都能更好的界定价格突破的真实性。


之后发现,使用改进方法也确实取得了更好的绩效表现。但是做参数变化时,我们发现,其实更加有效的模块,是追踪止损。


小编有话说:聚宽已经实现了期货实盘,详情参见文末推荐阅读。有兴趣的朋友可以了解一下~




[h1]模型参数[/h1]

一个好的策略首先就是要保证尽可能维持数据的鲁棒性。因此我们在对策略进行优化的过程,只对MACD中快速线周期,慢速线周期和信号线周期三个参数进行调整,其他条件都保持默认,因此来防止策略得过度拟合。


1、模型多参数下绩效表现:






我们可以看到,经过多组参数的测试。每个参数组都取得了正收益,说明该模型的确具有一定的择时能力。而事实上,表现最差的一组模型我们使用的是 13,26,9 的 MACD 原始默认参数。而其他参数组使用的参数周期均更短。因此我们判断, MACD 模型对于短期价格突破的预测能力更敏感。


2、模型多参数下最佳组绩效表现:


当参数 fastperior=3,slowperiod=7,signalperiod=7 时,模型取得了最好的绩效和 Sharpe Radio。绩效曲线如下:








[h1]模型调整[/h1]

出于进一步探究的目的,我们对策略进行了一些调整,希望能取得更好的效果,各调整方法与有效性分析如下。


使用 80-20 周期波动率过滤方法:


80-20 方法,即计算 80 日到当前每一日的 20 日波动率,求平均,然后用当前 20 日波动率和这个平均值做对比,如果当前 20 日波动率更大,就认为该品种目前波动率过大趋势不明,该品种就不参与交易。


代码表达如下(实测效果并不好):






使用截面波动率过滤方法:


截面波动率过滤方法即,计算全市场所有品种波动率Z分位数的均值,然后用当前品种波动率的 Z 分位数和这个平均值做对比,如果波动率更大,就认为该品种目前波动率过大趋势不明,该品种就不参与交易。


代码表达如下:






更新后模型的绩效得到了一些提升,上图不是很直观,我们直接使用数据进行绩效比:






可以看到绩效在几个参数下都有所所提升。说明截面波动率过滤方法达到了我们希望达到的效果。


下图为截面过滤后 MACD 策略收益风险矩阵图:






鉴于过滤前数据缺失,而且过滤后柱状图并未显示具体数值,观察起来比较困难,我们直接出示绩效对比结论。过滤对于夏普比率的提升,最大回撤的减少并没有显著帮助,但是过滤后的策略绩效得到了提升。说明过滤过滤掉了不容易跟踪趋势的品种,存在一些效果。


模型截面波动率过滤后多参数下最佳参数组绩效表现:






最终,当我们想公开这些测试结论的时候,我发现回测中有 3 个问题:


1、手续费设置较低,所以我们改为万分之1单边手续费+万分之 1 滑点(在很多品种上,差不多就是 1 跳),然后重新测试了性能,结果绩效差异不大。


2、某些时刻,截面持仓数量会达到 20 个品种,此时,对每个品种在ATR头寸部分,分配 0.05 的资金量,会造成其他品种不够用。所以,我调整为 0.01,要知道海龟交易系统才 0.01。所以调整后,收益和回撤,都发生了下降,但是收益风险比、夏普比率这些值,没有变化,因为期货是保证金交易,我们只是用了更少资金,收益和回撤,都会等比例下降。


3、某些波动率太低的品种,常年无法择时获得正收益的品种,没必要去交易,为什么不剔除这些品种呢?就像股票模型的黑名单一样,这里不存在什么幸存者偏差,这些品种从基本面、交割制度、市场博弈层面就是存在问题的,完全可以剔除。说的就是这几个:'ZN','SN','BU','A','CF','OI','AP','JM','FG'


看看结果吧:








推荐阅读



■ 重磅 | 聚宽期货实盘开通上线!
【年度干货】精选99个量化投资策略源码打包下载 量化策略公布:通过散户羊群效应 获得A股超额收益 业绩爆雷预测 六大异常财务指标效果实测 10后小学生Python笔记曝光,写代码从娃娃抓起! A股短期大涨能延续?高盛揭秘我们处于全球周期的位置 量化择业 银行vs券商vs公募vs私募?(行内人深度分享) 趋势交易能赚钱吗?商品期货动量效应挖掘初探 天生量化将才?理工科程序员 做量化投资优劣势分析 摩根士丹利研究:量化投资者 都在思考什么?What Are Quantitative Investors Thinking?

星标★一下,不会错过我
↙点击下方 “阅读原文” ,获取源码。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:75
帖子:15
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP