简单交易回溯测试仪
stbt的Python项目详细描述
概述
交易的定量方法是通过应用数学模型 各种金融工具。为了给你赚钱的策略, 下面的数学模型应该是合理的。证明这个模型 值得花钱的人应该做适当的回溯测试。 本项目的目的是提供一个简单、快捷的回溯测试解决方案。
相关性
有许多python项目用于回溯测试:backtrader, pyalgotrade,zipline, rqalpha等。我试的时候, 我对以下一项或多项不满:事件驱动, 不必要的复杂架构,不支持交易多种工具 以方便的方式,没有适当的绩效评估等。 这个项目以不太广泛的功能为代价来解决这些问题 与上面提到的相比。 该项目的设计是很容易建立在它之上。
功能
- 数据操作是用熊猫做的。
- 回溯测试操作是向量(没有循环,不是事件驱动的)。
- 广泛的战略统计评估。
- 嵌入的可视化效果数。
- 策略稳健性测试。
- 使用OHLC数据的API(下载、准备)。
- 清洁和严格的项目结构。
- 符合PEP8规范。
安装
- 通过setup.py安装:
git clone git@github.com:bluella/stbt.git
cd stbt
python setup.py install
- 通过PIP安装:
pip install stbt
- 运行测试:
pip install pytest pytest
用法
importdatetimeasdtimportpandasaspdimportmatplotlib.pyplotaspltfromstbt.simulatorimportStrategyfromstbt.download_ohlc.cryptocurrencyimportget_ohlc_cryptocomparefromstbt.indicators.technicalimportskewness# get trading data from cryptocompareBTC_TICKER='BTC'ETH_TICKER='ETH'USD_TICKER='USD'END_DATE=dt.datetime(2018,7,1,0,0,0)START_DATE=dt.datetime(2018,3,1,0,0,0)OHLC_BTC=get_ohlc_cryptocompare(BTC_TICKER,USD_TICKER,START_DATE,end_date=END_DATE,interval_key='day')OHLC_ETH=get_ohlc_cryptocompare(ETH_TICKER,USD_TICKER,START_DATE,end_date=END_DATE,interval_key='day')# create dfs in format that Strategy requirescloses_df=pd.concat([OHLC_BTC['Close'],OHLC_ETH['Close']],axis=1,keys=['BTC','ETH'])# use imported indicator to create weightsweights_df=skewness(closes_df)# create strategys=Strategy(closes_df,weights_df,cash=100)# run backtest, robust tests, calculate statss.run_all(delay=2,verify_data_integrity=True,instruments_drop=None,commissions_const=0,capitalization=False)# check strategy statsprint(s.stats_dict)# save strategy to futher comparisons.add_to_pnls_pool()# plot pool correlation heatmapheatmap_fig,corr_matrix=s.get_pool_heatmap()plt.show()
进一步发展
- Improve test coverage.
- More API for data download.
- More technical indicators.
- Portfolio optimization tools.
释放量
许可证
这个项目是由麻省理工学院授权的- 有关详细信息,请参见LICENSE。