美文网首页从零入门量化交易系列我爱编程程序员
以DualThrust为例回测我们的第一个策略【从零入门量化交易

以DualThrust为例回测我们的第一个策略【从零入门量化交易

作者: 西瓜量化 | 来源:发表于2018-05-28 19:43 被阅读208次

    通过前面4篇文章,我们已经对量化交易有了大概的了解,并且能够将VN.PY成功运行,并能进行模拟交易。然而模拟交易并不是我们使用VN.PY的目的,我们的目的是做实盘的量化交易。对于VN.PY来说,它的优势在于做CTA的中低频策略实盘

    想要做实盘交易,首先得研发策略,策略研发的步骤一般是:1、分析和策略构思;2、回测;3、评估;4、优化;5、实盘运行

    策略构思,每个人的交易经验和认知都不一样,一个比较容易的入门方式是,先找经典的策略进行学习;然后多看研报、多参加行业会议、多听别人的分享、自己多在交易中总结。这里就不做过多的赘述了。

    在实际的研发过程中,当我们有了一个思路后,一般都是回测、评估、优化,周而复始,直到有一个比较满意的结果。

    这篇文章我们对回测和评估进行一个介绍。

    一、将IF指数的1分钟数据导入到MongoDB

    在回测前,我们需要有相应的数据,而VN.PY附带了两份数据,一个是IF指数1分钟数据,一个是螺纹钢指数1分钟数据。放在了examples\CtaBacktesting目录下。

    这两份数据,是csv格式的,我们需要做的是读取每一行的数据,然后写入到MongoDB中。

    读取代码,VN.PY已经帮我们准备好了。在框架的ctaHistoryData.py类中,已经实现好了:

    1)loadMcCsv:将Multicharts导出的csv格式的历史数据插入到Mongo数据库中

    2)loadTbCsv:将开拓者TB导出的csv格式的历史分钟数据插入到Mongo数据库中

    3)loadTbPlusCsv:将TB极速版导出的csv格式的历史分钟数据插入到Mongo数据库中

    4)loadTdxCsv:将通达信导出的csv格式的历史分钟数据插入到Mongo数据库中

    5)loadOKEXCsv:将OKEX导出的csv格式的历史分钟数据插入到Mongo数据库中

    这里我们使用loadMcCsv来导入数据:

    二、DualThrust交易策略介绍

    有了数据后,我们可以开始写交易策略了。这里给大家介绍大名鼎鼎的Dual Thrust。Dual Thrust系统是 Michael Chalek在80年代开发的一种通道突破交易的策略。我们用来做日内策略:

    1)取前一日的真实波动ATR,乘以一个系数K,来作为今日的价格通道;

    2)突破上轨做多,突破下轨做空;

    3)收盘平仓

    对于多头和空头的系数K,策略考虑了非对称的幅度,可以做多用一个系数k1,做空用另一个系数k2。真实波动的周期数也是可以进行调整的。

    注意:我们今天的目的不是讲策略优化,而是给大家演示如何把策略跑起来,这里选择的也只是一个Demo策略,不能作为参考。

    三、使用回测引擎,对DualThrust进行回测

    上面,我们导入了数据,介绍了一个典型策略,下面进入回测的具体操作环节。

    打开examples\CtaBacktesting文件夹下的runBacktesting.py文件,这是作者给我们写好的回测示例代码。BacktestingEngine就是我们的回测引擎。

    我们以股指期货为例,设置好引用的策略包,回测开始日期、滑点、手续费、合约大小、合约最小变动、本金大小、数据库、使用的策略,然后我们点击运行。

    (这里我在策略源码中把做多和做空的系数K都修改成了0.5)策略的源代码在vnpy\trader\app\ctaStrategy 这个文件夹中,有兴趣的同学也可以研究一下。

    四、对回测数据进行分析和评估

    运行完成后,我们需要对跑出来的的结果进行分析,看看策略好不好。

    我们可以看到策略的回测结果:

    回测的结果显示这个策略在我们回测的时间段是赚钱的,胜率在40%以上,还不错。但盈亏比比较低,只有1.45。最重要的是,最大回撤比较高,在只交易一手股指的情况下,达到了31万多,一手股指的保证金才多少钱?所以这个DEMO策略是不能直接实盘的。

    我们追求的策略是:达到40%左右胜率,盈亏比在2以上,夏普率在1.5以上,最大回撤比一手保证金要少,最大回撤越小越好。这里面,最终看的指标是夏普率,但也并不是越高越高,太高的话,很可能是你的策略过拟合了。

    我们应该找到适应性比较强,但数据并不是那么“优秀”的策略,然后进行投资组合优化,采用多策略、多品种、多周期组合,通过这样的方式提升我们的夏普率。

    相关阅读 

    克服贪婪和恐惧的方式:量化交易

    第二篇-什么是量化交易系统,目前有哪些解决方案?

    第三篇-搞金融的同学三小时快速入门python【从零入门量化交易系列】

    第四篇-零投入打造量化交易系统【从零入门量化交易系列】

    相关文章

      网友评论

      • cbb428c65a7f:学量化比较小众,所以阅读量不多。但凡是来过的,都在等你更新。高手!我也在等!
      • 3be0002f2d9c:编程基础我都有的,希望跟你起飞
      • 3be0002f2d9c:很赞啊博主

      本文标题:以DualThrust为例回测我们的第一个策略【从零入门量化交易

      本文链接:https://www.haomeiwen.com/subject/vscnjftx.html