一般量化回测框架,有这么几种
第一种:在存储着trade_date和net_return,selected_stock的矩阵里计算累计收益率和净值。
去掉了停牌等不能交易的股票交易日,没有因子信息的股票交易日。
这种矩阵计算会很省时间,但是也会忽略很多东西。
第二种:核心:在trade_date 的循环判断买卖条件,里更新仓位,净值。
逻辑:
class memory():#定义一个存储仓位变化的全局类,当然你也可以用其他数据结构或者文件记录
pass
For(all_date):
if today==trade_date:
today_data=get_data(trade_date,high,close,open,low)
position_change=your_strategy(today_data)
memory.position=Update_position(position_change)
memory.netvalue=Update_netvalue(position,close)
注意:框架要注意封装性,代码要干净,可读性要强,便于帮你写策略的同事理解。(废话,啥给别人看的代码都得可读性强。。)
功能上尽量齐全,留好接口,日后研究方便(废话,肯定功能越多越好)
金融上要考虑停牌,复权,ST股票,涨跌停无法交易等实际性问题。(废话,当然会考虑,但是考虑这么多写代码多麻烦!)
学习方法:多阅读git上开源的回测框架比如zipline