距离上次文章已经过去几个月了,我一直在与模拟交易挣扎。代码已经能运行了,但是想添加止盈止损的策略,总是调不对。具体可以看项目github库(https://github.com/zwdnet/etfdata)里的simulate分支里的simulater2.py。
后来,我想不能再这么挣扎下去了。于是就在网上找量化投资的python库。几番尝试找到一个叫bt的库,是建立在ffn基础上的。试了一下,pydroid3里能装的,就用它吧。
官方文档地址: http://pmorissette.github.io/bt/index.html
以下翻译自官方文档:
bt是一个灵活的用于测试量化投资策略的Python回测框架。回测(Backtesting)是用给定的数据集测试量化投资策略的过程。本框架能使您容易的建立混合和匹配不同算法的策略。
目标是节省量化投资者重新造轮子的时间,使他们专注于工作的重要部分——策略开发。
一个例子
import bt
# 首先下载数据
data = bt.get('spy,agg', start='2010-01-01')
"""这是通过yahoo下载的数据,要下载A股数据要用其它工具,例如tushare"""
# 接着,创建策略
s = bt.Strategy('s1', [bt.algos.RunMonthly(),
bt.algos.SelectAll(),
bt.algos.WeighEqually(),
bt.algos.Rebalance()])
"""第一个参数是策略名称,第二个策略是一个包含策略具体内容的list,包括操作间隔,选股策略,权重,和再平衡策略。这里都使用algos类里的函数,如果没满足需要也可以自定义。"""
"""最后,建立一个回测Backtest,在策略与数据之间建立逻辑联系。"""
test = bt