No project description provided
Project description
tenvs
基于OpenAI Gym的程序化交易环境模拟器, 旨在为沪深A股基于增强学习的交易算法提供方便使用, 接近真实市场的交易环境
基于tenvs的RL算法baselines repo: tbase
Features
-
自动从tushare下载数据,已经下载的数据不会重复下载(默认目录"/tmp/tenvs")
-
撮合规则:
- 基于最高,最低价成交
- 对交易量不作限制
-
下单按照A股的规则,买卖按照1手100股为基本交易单位
-
有拆分时,会根据复权因子对持仓进行相应的倍增, 以保持与真实市场一致
-
step() 比OpenAI gym多返回一个名为rewards的list, 包含每支股票的reward, 以方便Multi-Agent算法实现
安装指南
支持: MacOS/Linux/Windows, python 3.5+, 推荐使用 python3.7
安装方式一(直接使用): pip install tenvs
安装方式二(开发者模式)
git clone https://github.com/tradingAI/tenvs
cd tenvs
pip install -e .
使用
设置 tushare token(Tushare token注册申请):
export TUSHARE_TOKEN=YOUR_TOKEN
| 场景 | 实现 | action | observation | reward | 使用例子 |
|---|---|---|---|---|---|
| 单支股票, 全仓操作, 每日先卖再买 | simple.py | [scaled_sell_price, scaled_buy_price | 市场信息+部分账户信息 | 可参数选择 | simple_test.py |
| 多支股票平均分仓, 每日先卖再买 | average.py | [scaled_sell_price, scaled_buy_price] * n | 市场信息+部分账户信息 | 可参数选择 | average_test.py |
| 多支股票, 支持仓位控制, 每日先卖再买 | multi_vol.py | [scaled_sell_price, scaled_sell_volume, scaled_buy_price, scaled_buy_volume] * n | 市场信息+部分账户信息 | 可参数选择 | multi_vol_test.py |
场景:
- 单支股票, 全仓操作
- 多支股票, 均匀分仓操作
- 多支股票,支持仓位控制
- simple: 盈利=1,否则=-1
- daily_return: 每日的收益率
- daily_return_add_count_rate: 收益率 + 成交统计信息
- daily_return_add_price_bound: 收益率 - 最高最低价与买卖价差MSE
- daily_return_with_chl_penalty: 收益率 - [close,high,low]与买卖价格相应惩罚
Contribution
- Fork this repo
- Add or change code && Please add tests for changes
- Test
- step1. 设置docker-compose需要的环境变量: BAZEL_USER_ROOT, OUTPUT_DIR, TUSHARE_TOKEN
- 默认使用docker hub 镜像
- 阿里云镜像:
registry.cn-hangzhou.aliyuncs.com/tradingai/tenvs:latest
- step2.
docker-compose up
- step1. 设置docker-compose需要的环境变量: BAZEL_USER_ROOT, OUTPUT_DIR, TUSHARE_TOKEN
- Send pull request
扩展Scenario
可以参考average.py的写法
- 定义action
- 定义observation
- 定义reward
TODO List(欢迎一起完善)
-
测试: 提升 unit test 覆盖率(coveralls.io)
-
场景增加
- 增加的reward函数(Blog post在不同的算法上的表现性能比较)
- 增加observation中信息(因子挖掘)
线上交流方式
- QQ群: 477860214
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tenvs-1.0.9.tar.gz.
File metadata
- Download URL: tenvs-1.0.9.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0cb385be032f82479e7ebb80320e2bb73e53e917a144509de496b2e7dc127ae
|
|
| MD5 |
d6d47be3747b1ed56db7293033e5a83c
|
|
| BLAKE2b-256 |
b068dbe5a8213dd37fac6ce6ba814cec5e40fc74b5e2e889170b8469e768e27a
|
File details
Details for the file tenvs-1.0.9-py3-none-any.whl.
File metadata
- Download URL: tenvs-1.0.9-py3-none-any.whl
- Upload date:
- Size: 30.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc294c17a661152cae8636a6131579abe3083e85359910c4fd755e8167952aca
|
|
| MD5 |
92b35c8f5ba81d08c7abec15cd2737fc
|
|
| BLAKE2b-256 |
bb39e7591db74e16f67c676f7766d1281f153554aa945490589375516eaeeb7e
|