Skip to main content

No project description provided

Project description

Test Docker PyPI version

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

Examples

场景 实现 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

场景:

  • <input type="checkbox" checked="" disabled="" /> 单支股票, 全仓操作
  • <input type="checkbox" checked="" disabled="" /> 多支股票, 均匀分仓操作
  • <input type="checkbox" checked="" disabled="" /> 多支股票,支持仓位控制

reward functions:

  • <input type="checkbox" checked="" disabled="" /> simple: 盈利=1,否则=-1
  • <input type="checkbox" checked="" disabled="" /> daily_return: 每日的收益率
  • <input type="checkbox" checked="" disabled="" /> daily_return_add_count_rate: 收益率 + 成交统计信息
  • <input type="checkbox" checked="" disabled="" /> daily_return_add_price_bound: 收益率 - 最高最低价与买卖价差MSE
  • <input type="checkbox" checked="" disabled="" /> 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
  • Send pull request

扩展Scenario

可以参考average.py的写法

  • 定义action
  • 定义observation
  • 定义reward

TODO List(欢迎一起完善)

  • <input type="checkbox" disabled="" />

    测试: 提升 unit test 覆盖率(coveralls.io)

  • <input type="checkbox" disabled="" />

    场景增加

    • <input type="checkbox" disabled="" /> 增加的reward函数(Blog post在不同的算法上的表现性能比较)
    • <input type="checkbox" disabled="" /> 增加observation中信息(因子挖掘)

线上交流方式

  • QQ群: 477860214

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tenvs, version 1.0.9
Filename, size File type Python version Upload date Hashes
Filename, size tenvs-1.0.9-py3-none-any.whl (30.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size tenvs-1.0.9.tar.gz (21.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page