股票投资

发布资金信息 发布项目融资 申请上市辅导 发布金融峰会 发布文章资讯

手把手教你回测第一个量化交易策略「从零入门量化交易系列」

   时间:2018-05-28 20:16:38     浏览:15082    评论:0    
核心提示:通过前面4篇文章,我们已经对量化交易有了大概的了解,并且能够将VN.PY成功运行,并能进行模拟交易。然而模拟交易并不是我们使用VN.PY的目的,我们的目的是做实盘的量化交易。对于VN.PY来说,它的优势在于做CTA的中低频策略实盘。想要做实盘交易,首先得研发策略,策略研发的步骤一般是:1、分析和策略构思;2、回测;3、评

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

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

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

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

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

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

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

这两份数据,是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进行回测

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

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

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

以股指期货为例

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

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

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

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

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

走势图

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

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

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

 
打赏
 
更多>同类股票投资
0相关评论

推荐图文
推荐股票投资
点击排行
网站地图 | 广告服务 | RSS订阅 | 友情链接 | 联系我们
Copyright © 2006-2018 股票投资 Inc. All rights reserved.
粤ICP备16012416号
联系我们
QQ咨询
电话咨询
email
在线留言
微信联系
返回顶部