HDH ALPHA 项目用于构建一个简单的策略批量测试与排序系统。
Latest Version:0.1.
借助 rqalpha 3.x 的回测平台完成下列目标:
- 进行多策略的批量回测
- 完成策略比较,并形成报告
- 将报告通过邮件形式自动发送到指定邮箱
借助tushare获取公开数据。
主要模块:
- 策略模块
- 调参模块
- 结果分析模块
- 调度模块
- 自备数据获取与存储模块
每一个策略模块对应于一个独立、完整的投资策略。编写方法参考rqalpha的策略编写要求。
策略模块位于 hdhalpha/strategies 目录下。系统逐一读取该文件夹下所有文件,进行策略回测,结果保存于hdhalpha/results 目录下。
策略文件名任意,但最好言简意赅。
调参模块与1或多个策略模块对应,用于对策略模块中不能确定的参数进行穷举调优。
调优模块中包含策略运行的配置信息,其格式参照rqalpha config格式。
TODO: 该模块可能会与rqalpha mod的功能有部分重叠,目前不明。
调参的基本思路:
- 对未定超参进行合理穷举
- 超参个数原则上不要超过3个
- 注意使用交叉验证,防止过拟合
由于调度事务繁杂,单一模块实现过于臃肿,故学习django等项目的设置延迟加载,并借助Click命令行管理工具实现了一个简单的命令行调度方式。命令行管理工具位于 manage 目录下。
命令执行方法:
1.拷贝或克隆,进入项目目录hdh_alpha;
2.执行命令pip install -e .,安装hdh_alpha命令到系统路径;
3.执行命令hdhalpha,可以看到若干子命令提示。
有三种子命令:
命令形式:hdhalpha alpha。
命令功能:执行回测,保持结果。
命令形式:hdhalpha analyze。
命令功能:用于对策略回测结果进行排序,并将排序结果详情发送到指定邮箱。
命令形式:hdhalpha updatetsdata。
命令功能:可自动获取经tushare爬取的多种基本面数据。
由于rqalpha目前版本不提供宏观数据、股票基础数据等查询,所以考虑构建一个可用于综合选股的数据获取和存储模块。
数据获取来源为 tushare(爬虫):
- 基本面数据获取,集成于
hdh_alpha/data.py模块,数据存储在data目录下。
初步考虑数据存储方案有以下几个:
- 以 csv 文件形式存放;
- [TODO]以 postgresql 数据库形式存放;
- [TODO]以 bcolz 数据库形式存放;
下列功能可以使用hdhalpha updatetsdata批量执行。
- 获取最新沪深上市公司基本情况
- 获取某股票的历史所有时期资产负债表
- 获取某股票的历史所有时期现金流表
- 获取某股票的历史所有时期现金流表
- 获取现金流量数据
- 获取偿债能力数据
- 获取成长能力数据
- 获取营运能力数据
- 获取盈利能力数据
- 获取某股票的历史所有时期利润表
- 获取业绩报表数据
参考requirements.txt文件