上周,我们给大家详细讲述了量化交易策略的类型。今天,我们将介绍应该要如何开发一套完善的量化交易策略。

 

作者“黄金EA量化”,程序员出身的量化交易者。2015年开始从事量化交易,主做黄金外汇、国内商品期货等衍生品的程序化交易。投资逻辑——通过数据挖掘,自下而上,运用数学,物理学和统计学知识建立算法交易系统。此外,他基于算法,程序化研究出ALGOTRADER自动化交易系统。

 

如何开发一套能够稳定盈利的量化策略?

 

俗话说,耳闻不如眼见,眼见不如实践。如果你具备了基础编程知识,掌握一些编程语言,像JAVA、Python、MQL、TB公式、C++等,熟悉一些投资工具,又特别喜欢钻研,那么完全可以去开发一套交易策略,甚至是做到稳定盈利的策略。

 

当然,如何开发一套能够稳定盈利的交易策略?这个的确没有那么简单,做到盈利还是可以的,但想要做到长期稳定盈利,就要考验你的研发能力以及对交易本身的认知水平。适合自己的策略才是最好的策略,不妨从这个角度入手,去开发一套适合自己的交易策略。

 

1选择一个投资品种

一定要选自己熟悉的投资品种,最好是以前交易过的品种或者感兴趣的品种,愿意花时间去关注品种的行业、品种的过去与现状等,了解这个品种的流动性、交易量和波动率。从各个维度去分析这个品种,然后确定作为开发策略的目标。

 

2通过品种去评估并找适合的量化策略

是做日内、短线还是中长线?是做趋势模型还是震荡模型?还要综合考虑策略研发的难易。从自己的角度出发,比如,能承受多少的心理亏损;频繁止损还是浮亏对自己心理的影响,哪个是能够接受多一点。

 

例如:

  • 趋势类策略,比较容易实现,止损频繁,胜率低,盈亏比大,适合大周期使用;

  • 马丁类网格类策略,适合震荡行情,胜率高,盈亏比小,每一笔盈利小,浮亏会很大,需要计算风险趟口,尽量用在黑天鹅事件少的品种上;

  • 算法交易类策略,需要综合的数学、物理和统计学知识,而且能够灵活使用这些知识用于设计模型,考验独立思考的能力和敏锐的洞察力,还要很强的动手能力。因为几乎没有现成的案例可以让你参考或者模仿。

 

3开发模型

选好了品种和交易策略类型,剩下的时间就是投入到设计算法、编写代码和测试,统称为开发阶段。这个阶段,要围绕这几个要素进行:

 

历史数据

尽量完整的历史数据,至少采集满足三年以上连续的历史数据。

 

时间周期

做外汇黄金,周期还是选择尽量大,至少30分钟以上的周期才有保障;除非你可以购买到或者采集到的历史数据精确度很高,很少出现跳空的K线数据。作为个人开发者,建议选择大周期开发,就是避免数据的不完整性导致的各种问题。

 

避免偷价和未来函数,策略高度拟合

构成入场出场信号的依据,应该是已经发生的K线数据进行的指标计算或者算法逻辑运算。简单的说,就是尽量使用上一根K线以前的数据做量化分析,当前K线还在进行中,作为条件就有偷价或者未来函数的可能,这些会严重影响到策略的真实可靠性。

 

算法的建立,应该基于统计学意义,而不是适配某一段行情做限制性条件,那样就是拟合了。拟合并不会适应未来的行情发展。

 

合理的盈亏比、胜率和夏普率

如果你开发出来一套策略,经测试发现胜率很高,盈亏比也很大,那么肯定是有问题的,就要考虑是不是偷价的模型,需要重复仔细验证。

 

趋势策略,胜率都小于40%,盈亏比能达到2以上;

 

马丁类策略,那么胜率就会比较高,至少80%以上,盈亏比通常是1.2-1.5左右;

 

算法交易,胜率介于两者之间,盈亏比一般超过1.5;夏普率应该维持在2以上,才能确保盈利是稳定的。

 

另外还要考虑到如何去克服实际交易中的点差、手续费成本问题。最好的办法就是提高盈亏比,减少交易次数。

 

最大回撤

最大回撤应根据实际情况进行设置,没有一劳永逸的控制办法。

 

如果编程能力强的,尽可能将回撤条件用程序控制实现,参数化、流程化实现。如果硬要将回撤控制5%或者10%,我估计你的回测效果不会好到哪里,除非回测时长很短。这个就是行情匹配的问题,行情永远在变,因此要学会管理你的策略,运用好它。

 

历史回测

这个主要看盈亏比,最大回撤和净值曲线来判断,研发的策略是否符合自己的要求,或者是否达到设计目标。一般回测分为周期内、周期外、跨期回测。

 

周期内回测主要是配合策略的测试调试,用于调试策略的历史数据周期;

 

周期外回测,是指将测试好的策略单独使用一段新的历史数据进行的回测,看看净值曲线是否一致;

 

跨周期内外,进行一次整体回测,也是观察回测曲线是否表现一致。如果得到结果相似或者达到设计目标,则说明策略是一个正期望值的交易策略。

 

不过,真正的表现还得看模拟测试和实盘交易。

 

4模拟验证交易

经过开发阶段,然后就是模拟测试阶段。实时监控成交记录,对交易数据统计发现问题并改进,对实盘交易中可能出现的问题提前制定相应的预防和解决措施。

 

综合考虑测试结果的各个性能指标,不能太看重某一个性能指标,如下面两个策略测试结果:

 

 

上图虽然夏普率9.12,但是最大回撤24.41%,这与策略本身的思想有关。

 

上图虽然夏普率为6.8175,低于第一张图的策略,但在相同仓位控制条件下,最大回撤减小6倍。

 

5实盘资金交易

其实最主要还是控制风险,控制了风险及回撤,那这个策略就算是稳定的策略,让时间成为你的朋友,财富是慢慢积累的。

 

 

1、关注交易品种的产业链数据和新闻等不固定公布时间公布信息,统计相关信息数据的理论正常值,出现异常时马上采取措施。

 

2、关注交易品种的产业链数据和新闻等固定公布时间公布信息,如EIA数据、原油钻井数量数据、美国非农数据等,在数据公布前后及时平仓,保护盈利利润。

 

3、关注政治风险、军事冲突、自然气候灾害,如有重大事件应马上采取天制定好的措施(如今年英国退欧、美国大选、中东叙利亚战争、伊朗石油解禁、美国页岩油政策等)

 

4、针对人为带来的影响因素如断电断网等制定紧急措施。

 

5、针对以上风险确认以上风险过后,制定再入场时的补仓策略。

 

6、实时监控,定期检验。

 

如何辨别量化交易策略的好坏

 

如果你从头阅读到这里,相信大家心中已经有了自己的那个圣杯。适合自己的策略就是好的策略。

 

一个策略,不是看见它短时间内暴利就是优秀,也不能说一个策略它每天稳赚百分之几就是稳定的。要从多个维度来评判一个策略是属于优秀、良好、及格还是不及格。风险与收益永远是投资的主题,从这方面来说,可以分为以下一些评判条件。

 

1时间维度

久经时间考验,经历过各种行情的颠簸,策略有没有因此而导致大亏损或者不盈利,甚至变为亏损,策略有没有失效。如果经过几年,策略仍然能取得不错的收益,例如,年均10%-30%,那么这个策略应该是值得信任的。

 

2收益率

在时间维度上,取得不多的收益率,但前提是这个收益率是名义收益率还是实际收益率。就是说,根据你的交易次数、盈亏比、最大回撤,计算一个夏普比率,夏普比率是否及格了。夏普比率是衡量交易模型的收益率是否是稳定的,如果爆赚爆亏,夏普比率就会偏低。

 

3资金量

小资金的稳定收益,可以说是一种名义收益率。小资金的交易环境要求很低。这个大家都明白,对交易心理影响不大,例如,剥头皮交易,小资金很容易快进快出,但是资金量一大,剥头皮策略就有可能不太适用了。

 

4盈亏比

大家其实不用太关注胜率,胜率只是盈亏比的附属品。盈亏比决定了你的策略能够长期获得正期望收益。理论上讲,盈亏比越大策略的正期望值越好,盈利能力越强,抵抗回撤的能力也越强。

 

5夏普比率

这个就是说明,相同的回报,所要承担的风险水平。无风险回报当然是最理想的,但现实与理想总有差距。当然夏普比率越高越好,据说达到3以上,就证明你的策略能够达到月月盈利。

 

6最大回撤

分为最大回撤率和最大回撤值。小资金就要看最大回撤值,大资金就看最大回撤率。

 

基金的要求一般都是控制在10%回撤以内,但是做外汇的,我觉得这个值可以尽量大一点。其实最保险的方式,就是赚了部分出金,物理阻断回撤风险。用EA控制回撤,就好像纸上谈兵,不靠谱。因为外汇杠杆式交易,对用户是最不公平的,点差、上下影线,都可以将你打回解放前。

 

7多品种组合、多策略组合

相信大家会明白,一套策略应用在不同的投资品种,或者由不同的策略组合成为多策略组合的投资方案。

 

这种对冲交易策略,也是可以大大提高收益率,减少回撤风险,从而实现稳定盈利。一般选择有互补性行情的品种或者策略多样性的,例如:趋势策略和震荡策略混合着用,从时间上,错开同时下单建仓的风险。这个就有点想算法交易,一次下单手数太重,那么头寸风险趟口就比较大了,心理上负担也会很重,不利于行情的波动。

 

总结

 

量化交易,量化是手段,交易结果是目的。量化的优势,就是把人从重复性、繁杂性的工作中解放出来,聚焦更重要的决策。

 

但是,不论手工交易还是量化交易,都要面临克服人性这个难题。克服人性也是交易的永恒主题,做交易的互勉吧!