在jupyter中用python自己写策略回测的基本思路
2019-10-08 本文已影响0人
昵称违法
1、k线数据的获取和保存
股票和期货k线数据的获取途径:
1.1 从通达信里面下载:【系统】-【数据导出】-【高级导出】。里面可以选择各种数据批量导出,此处有一个注意事项,“前复权”的数据,容易失真,可设置成“等比前复权”。
1.2 从wind导出:前提,有wind的账号,从【量化】-【Python接口】下载。用【代码生成器】初步生成代码,然后在jupyter里用脚本下载,注意,在不超过数据量限制的前提下,尽量多只股的数据发一个下载请求。
1.3 数据的保存:强烈建议在本地建一个数据库,比如mysql数据库。提取的数据,整理后放入数据库中保存,最好放在固态硬盘的分区里。
2、策略回测的一般过程
2.1 预取数据:读取策略配置参数、回测目标的k线数据
2.2 计算指标和数据清洗:定义及计算指标(变量),并清洗筛选数据。空值处理,节假日影响的k线剔除
2.3 计算开平仓止损信号
2.4 交易和资金计算
3、一些优化的建议:
3.1 指标定义和计算可以使用矢量计算,速度快。
3.2 对多只股票进行交易的回测时,使用joblib的并行计算,或者自己用多进程进行处理(注意数据的合并)
3.3 dataframe尽量使用eval和query,表达式一目了然,甚至还可以把一些指标和计算过程做成配置文件
3.4 交易和资金计算部分,凡涉及计算的部分,写成numba的jit函数
4、一些调试的技巧:
4.1 学会用logging,也可以自己定义debug版本的print或者display,设置一个debug开关,前期特别有用,可手工跟踪计算,不用时关闭,提高速度
4.2 资金计算部分,把dataframe换成numpy,用jit进行提速