未提供项目说明

tenvs的Python项目详细描述


TestDockerPyPI versionCoverage StatusJoin the chat at https://gitter.im/tradingAI/tenvs

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

场景实现actionobservationreward使用例子
单支股票, 全仓操作, 每日先卖再买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

场景:

  • [x] 单支股票, 全仓操作
  • [x] 多支股票, 均匀分仓操作
  • [x] 多支股票,支持仓位控制

reward functions:

  • [x] simple: 盈利=1,否则=-1
  • [x] daily_return: 每日的收益率
  • [x] daily_return_add_count_rate: 收益率 + 成交统计信息
  • [x] daily_return_add_price_bound: 收益率 - 最高最低价与买卖价差MSE
  • [x] 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(欢迎一起完善)

  • [x] Bazel build

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

  • [ ] 场景增加

    • [ ] 增加的reward函数(Blog post在不同的算法上的表现性能比较)
    • [ ] 增加observation中信息(因子挖掘)

线上交流方式

  • QQ群: 477860214

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我可以使用Hibernate连接不同的数据库并从表中导入数据吗?没有预定义的对象类   java为什么getBoundsInLocal获取错误的坐标?   java在处理并发哈希映射时必须使用锁   java将过滤的JTable数据导出到文本文件   从命令行编译java不使用库   Java使用方法和构造函数绘制图形   java理解优先级队列中的排序方法   尝试解密文件时,java CipherInputStream为空   在Java中将字符串解析为长字符串   java我想在raspberry pi重新启动时在crontabe中执行arecord命令   弹性搜索弹性搜索Lucene公式的Java计算   java使用apachepoi和docx4j读取doc文件   swing显示JavaGUI是否需要特殊处理?   java使用字符串进行数学运算   java在SpringMVC中用JSP初始化菜单项选择表单数据的最佳方法   无多线程的java多客户端程序   swing如何在Java中对BuffereImage进行去饱和?   java在安卓中创建自定义地图