该系统使用天勤量化提供的tqsdk包作为后台交易工具。交易策略为我公司在多年中期交易策略的基础上自主研发。适用于各种品种的期货品种。
-
python 使用
3.9版 -
tqsdk==3.4.1,计划升级至3.4.6 -
mongoDB的支持
MONGO_CONF_FILE:mongo数据库相关信息配置文件位置TQ_CONF_FILE: 天勤账户相关信息配置文件位置ROHON_CONF_FILE: 融航账户相关信息配置文件位置
在Mac_OS或Linux系统中,可以使用命令配置以上环境变量:
export MONGO_CONF_FILE=secrets/mongo_conf_file
export TQ_CONF_FILE=secrets/tq_conf_file
export ROHON_CONF_FILE=secrets/rohon_conf_filedocker在compse文件中配置环境变量,具体方法参考相关docker-compse文件。
交易相关初始化信息在conf/trade_config*.yaml文件中存储。包括:交易品种,交易参数。
其中:
-
defaults中是所有品种一致的参数,包括:-
switch_days: 换月周期,第一项为当前合约有成交距离交割日的期限。第二项为当前合约没有成交距离交割日的期限。 -
long: 做多需要用到的参数。包括:-
base_scale: 止盈/损的基本百分比。 -
stop_loss_scale: 止损价格在基本百分比上浮动的倍数。 -
profit_start_scale_1:开始需要监控止盈条件1的价格在基本百分比上浮动的倍数。 -
profit_start_scale_2: 开始需要监控止盈条件2的价格在基本百分比上浮动的倍数。 -
promote_scale_1: 提高止损条件1的价格在基本百分比上浮动的倍数。 -
promote_scale_2: 提高止损条件2的价格在基本百分比上浮动的倍数。 -
promote_target_1: 达到提高止损条件1的价格后,需要将止损价格提高到的价格在基本百分比上浮动的倍数。 -
promote_target_2: 达到提高止损条件2的价格后,需要将止损价格提高到的价格在基本百分比上浮动的倍数。
-
-
short: 做空需要用到的参数。包括:-
base_scale: 止盈/损的基本百分比。 -
stop_loss_scale: 止损价格在基本百分比上浮动的倍数。 -
profit_start_scale: 开始需要监控止盈的价格在基本百分比上浮动的倍数。 -
promote_scale: 提高止损的价格在基本百分比上浮动的倍数。 -
promote_target: 达到提高止损的价格后,需要将止损价格提高到的价格在基本百分比上浮动的倍数。
-
-
-
open_pos_scale: 单个品种开仓使用的保证金,占资金总量的比例。 -
futures: 需要监控和交易的具体期货品种及相关参数:symbol: 期货品种的天勤主连合约代码name: 期货品种名称is_active: 是否交易该品种contract_m: 合约乘数switch_days: 换月距离交割日的期限long: 做多相关参数short: 做空相关参数
该系统可以运行在两种模式下:
-
回测:根据过去某段时间的数据测试某些品种的收益率。
python main.py -t -s 2018 -m 1 -tt 0其中:
-t指定系统运行在回测模式中。必填-y指定回测开始的年份。必填-m指定回测开始的月份。默认值为1-tt指定回测类型:- 0: 做空
- 1: 做多
- 2: 多空
-
实时监测:在交易时段运行,监测实时数据,根据策略进行开仓操作。
python main.py-
导入配置数据: 将期货交易初始配置数据导入数据库中:
python init_db.py -p 26018 -l localhost -u root -s example -n bottom_future_trade -c trade_config_young.yaml其中:
-p, --port: 默认值:27017, 指定数据库端口号-l, --host: 默认值:localhost, 指定数据库地址-u, --user: 默认值:root, 指定数据库用户名-s, --password: 默认值:example, 指定数据库密码-n, --name: 默认值:future_trade, 指定数据库集合名称-c, --configfile: 默认值:trade_config.yaml, 要导入数据库的配置文件名
-
将回测数据导出到Excel表中
python generate_excel.py -p 26016 -n fa9bd35c-d99f-4296-b884-3322c0defb46-p, --port: 默认值:27017, 指定数据库端口号-l, --host: 默认值:localhost, 指定数据库地址-u, --user: 默认值:root, 指定数据库用户名-s, --password: 默认值:example, 指定数据库密码-n, --name: 默认值:future_trade, 指定数据库集合名称
系统使用Docker stack进行部署。详细命令见README_CMD