本地撸了一个回测框架


(fingertap) #1

把bigquant的主题抄了过来,还真像


(user4310) #2

zipline?


(fingertap) #3

自己写的事件驱动回测框架。结果展示这里用的highcharts,然后配色是直接拿的bigquant的


(focus777) #4

很厉害啊,分享下学习学习呀嘻嘻,不方便就算了


(wintersp) #5

可以试试pyecharts


(domodo) #6

我也正在本地写事件驱动的框架,两个问题想请教:
1、你是先建一个queue,然后把各种event放进去,之后再针对不同的event作处理的吗,类似qstrader ?
2、股票组合的收益率大概是如何计算的?如果用除权数据,那要每天都考虑除权除息对股票价格和数量的影响,如果用复权的,那交易信号是没法直接使用的。


(fingertap) #7
  1. 事件驱动就是这样用一个queue做的。但是我发现只是回测的话,其实有没有queue没啥太大区别,反而将多个股票的事件分开回测效率不够高,我就合并了,删除了queue。用事件驱动的好处就是不太容易产生未来信息泄露。
  2. 每日统计现金和持仓股票价值。用复权数据。交易信号也用复权数据产生。

(fingertap) #8

可以直接用pycharts,也可以自己包一个,无所谓的。pycharts有不少bug,作者没维护了。


(wintersp) #9

回测框架全部自己搭的还是改的?


(wintersp) #10

highcharts的python版本是用的哪个包?


(fingertap) #11

全自己写的,包括画图。


(fingertap) #12

复权你如果担心和实际下单的金额有出入,也可以在事件驱动中添加一种事件,触发本地持仓的股票做数目调整。一般来说这些细节不会太影响回测的结果。


(domodo) #13

这倒是一个思路,把复权看成一个事件,回调虚拟账户的股票数目调整函数。


(user4310) #14

split和dividend的数据怎么取是个问题