全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
10962 10
2016-01-04
量化杂谈之基础篇系列文章:
【一】获取所有股票的代码和名字:一个爬虫的简单例子https://bbs.pinggu.org/thread-4145710-1-1.html
【二】回测的那些事
https://bbs.pinggu.org/thread-4154818-1-1.html


关注我的微信公众号,有更多关于量化的原创文章哦!。
我的微信公众号:会掘金的小鹿(NuggetsRoad)
是时候关注一波了!


       策略的回测是存在一定共性的,比如都需要获取历史数据、识别交易信号、平开仓操作、策略表现计算等。如果我们对每个策略都单独做一套的话,那么会浪费很多时间在重复性的工作上。因此,搭建一个完善高效的回测系统是非常有必要的。回测系统包含策略回测的整个过程,并且封装了各种容易调用的接口,可以快速地进行策略的回测。


数据库的搭建

       建立回测系统的第一步是搭建存储数据的数据库。数据库主要用于原始数据的存储,原始数据清洗或变换后的数据存储,以及回测产生的交易和结果数据的存储。常用的数据库有以下几种:

  • SQL:MySQL,Oracle,SQL Server,PostgreSQL

  • NoSQL:MongoDB等



       此外,构建一个Linux的开发环境是对你非常有帮助的(在Windows系统上可以采用虚拟机),采用Shell脚本能够对任务进行定时的调度。


回测工具的选取

       哪一款工具是最适合策略回测的,不同的量化研究人员会给你不同的答案,下面这几种是回测中比较流行的工具和编程语言。

  • Matlab

  • Python

  • R

  • C++


       Matlab的优点在于其矩阵运算特性,Matlab与统计和金融相关的toolbox能让你轻松完成一些复杂模型的建立,非常容易上手。Python是一种高级、开源的脚本语言,numpy、pandas、scipy等扩展模块能够帮助你完成矩阵、数据统计、数值计算等方面的处理,开发效率很高。R擅长统计和时间序列的处理,在统计、计量、数据规整以及画图等方面有优秀的package。C++是执行速度最快的高级语言之一,一般用于超高频策略的回测中。

       具体选择哪种回测工具取决于策略的类型和交易频率,开发的效率要求,购买和维护成本,源码是否能够获得,交易软件的API接口是否支持以及第三方库的丰富性。当然,作为业余的量化投资研究,我们也不需要纠结这么多因素,哪个工具你更熟悉、用起来更方便就用哪个。我曾经使用Matlab做过很多策略的回测,现在更倾向于使用Python,因为它的通用性更加有利于扩展,并且其开源特性更适合业余学习。


回测系统环境的搭建

       我推荐的回测环境是Spyder,Spyder是Python的一个集成的pyton开发环境,其界面与Matlab非常类似,并且自带了很多package,省去了我们单独安装的麻烦。当然原生或者其他如pycharm的IDE也是可以选择的,这取决于你的偏好。无论选择怎样的IDE,以下模块是在回测中需要经常用到的:

  • numpy

  • pandas

  • scipy

  • matplotlib或其他绘图包

  • scikit-learn或其他机器学习包

  • MySQLdb或其他数据库接口



回测框架的建立

       建立怎样的回测框架取决于你的策略是怎样的,你的回测目的又是什么。如果回测仅仅是为了对策略进行研究和探索,那么在回测框架中不需要对委托下单等具体事件进行构建。以下我们建立了一个最简单的回测框架以供参考,该框架可以用于低频择时策略的回测研究。

       框架主体有三个模块组成:策略模块是根据策略的参数和规则产生交易信号,交易模块根据信号决定各期的仓位、并记录交易过程中产生的费用以及资金情况,回测表现模块则是对策略进行评判、输出相关指标、图形以及测试报告。


  • 策略模块


Input:交易品种的bars,Open-High-Low-Close-Volume (OHLCV)

Output: 信号signals,取值为(1,0,-1),分别表示buy,hold,sell


  • 交易模块


Input:Signals

Output:  交易相关数据的tracing(仓位,交易费用,资金流)


  • 回测表现模块


Inputs:交易相关数据

Output:策略评价指标,图形,回测报告等



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-1-4 20:53:45
还是觉得MATLAB顺手,当年学机器学习用的就是MATLAB
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-29 12:28:42
真是不错的好文!前排支持!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-29 15:58:49
总结的真好,太棒啦
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-4 20:33:40
可以的,不错
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-9 03:42:49
多谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群