1 Star 0 Fork 27

李长民 / backtesting

forked from 孙连城 / backtesting 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

backtesting

介绍

基于VNPY优化修改的回测框架: 功能: 1、支持单个参数回测:可输出交易明细和图形 2、支持暴力穷举参数优化 3、支持遗传算法参数优化 4、支持BITMEX和BINANCE的历史数据下载 5、支持刑大课程里的策略直接拿过来用,放在strategies目录下即可(参考BollingStrategy的写法)

使用说明

  1. run_backtesting.py:单个策略、单个参数的回测。 会输出详细的回测结果、回测交易明细、图形和K线 回测步骤: (1)初始化回测引擎 (2)engine.set_parameters设置回测的基本参数: 包括交易对、交易所、数据文件的时间周期(下载的是1M)、开始时间、结束时间、 手续费、每次下单数量、初始金额、回测的时间周期 (3)load_data()载入historical_data下的原始数据文件,并且根据设置的回测周期自动转换 (4)init_backtesting() 初始化回测引擎 (5)add_strategy()添加回测策略类和参数。 策略类的写法可以参考刑大课程中的xxxSignal的写法,可以直接拿来用。 也支持仓位管理课程里分仓位的写法 (6)run_backtesting()开始回测 (7)calculate_result()按日计算策略的盈亏和收益 (8)calculate_statistics()统计策略的各项指标: 包括最终金额、最终收益、年化收益、最大回撤、胜率、夏普比率等 (9)show_chart()绘制收益率曲线等图形 (10)output_trades()输出每笔交易明细 (11)show_bar_chart()输出K线图并标记每笔交易(还未完成,图形不是太好看还在调整)

注:所有的输出内容包括交易明细和图形都会保存在details目录下

  1. run_optimization.py:用暴力穷举法进行参数优化选择 根据设置的参数范围和时间范围进行优化,选出最优的一些参数,并在后续的时间段进行验证。 回测步骤: (1)初始化回测引擎 (2) 设置回测交易对列表(可批量添加多个交易对逐个回测) (3)设置需要回测的周期列表,比如15T,30T,60T (4)设置回测时间段和验证时间段,start_date-end_date之间的为回测时间段。 回测结束后,选取回测结果最好的N个参数(N=check_num) 再验证end_date-check_date之间的结果
    (5)初始化OptimizationSetting参数组合 设置回测周期和优化目标set_target(一般优化目标为total_return总收益率,也可以设置别的) 设置各优化参数的范围和步长,这个设置的范围越大优化组合越多时间越长 (6)新建进程池,用多进程进行回测提升效率(进程池数量为CPU核心数-2),如果用满容易把机器跑死 (7)初始化回测引擎,开始逐个回测(类似run_backtesting) (8)每个交易对回测结束会输出两个文件,一个是回测结果,一个是验证结果,都输出在results文件夹下

  2. run_ga_optimization.py:用遗传算法进行参数优化选择 利用GAFT遗传算法库,根据设定的参数范围和遗传的代数,进行不断的遗传优化,最终选出最优参数组合 相比暴力穷举法节省了大量时间(有些参数组合结果很差的就舍去了,不会重复回测) 回测步骤: (1)设置遗传多少代,越多越好,所需时间也越长 (2) 设置回测交易对列表(可批量添加多个交易对逐个回测) (3)设置需要回测的周期列表,比如15T,30T,60T (4)设置回测时间段 (5)初始化OptimizationSetting参数组合 设置回测周期和优化目标set_target(一般优化目标为total_return总收益率,也可以设置别的) 设置各优化参数的范围和步长 (7)初始化回测引擎,开始逐代回测,最终选出最优参数

空文件

简介

基于VNPY优化修改的回测框架 支持暴力穷举和遗传算法的参数优化 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/sz982005/backtesting.git
git@gitee.com:sz982005/backtesting.git
sz982005
backtesting
backtesting
master

搜索帮助