2.0.0

2.0.0 详细修改内容请访问:RQAlpha 2.0.0

Portfolio/Account/Position 相关

  • 重新定义了 Portfolio, AccountPosition 的角色和关系
  • 删除大部分累计计算的属性,重新实现股票和期货的计算逻辑
  • 现在只有在 Portfolio 层级进行净值/份额的计算,Account级别不再进行净值/份额/收益/相关的计算
  • 账户的恢复和初始化现在只需要 total_cash, positionsbackward_trade_set 即可完成
  • 精简 Position 的初始化,可以从 real_broker 直接进行恢复
  • Account 提供 fast_forward 函数,账户现在可以从任意时刻通过 orderstrades 快速前进至最新状态
  • 如果存在 Benchmark, 则创建一个 benchmark_portfolio, 其包含一个 benchmark_account
  • 策略在调用 context.portfolio.positions[some_security] 时候,如果 position 不存在,不再每次都创建临时仓位,而是会缓存,从而提高回测速度和性能
  • 不再使用 clone 方法
  • 不再使用 PortfolioProxyPositionProxyEvent 相关

  • 规范 Event 的生成和相应逻辑, 使用 Event object 来替换原来的 Enum

  • 抽离事件执行相关逻辑为 Executor 模块Mod 相关

  • 规范化 Mod 命名规则,需要以 rqalpha_mod_xxx 作为 Mod 依赖库命名

  • 抽离 slippage 相关业务逻辑至 simulation mod
  • 抽离 commission 相关业务逻辑至 simulation mod
  • 抽离 tax 相关业务逻辑至 simulation mod
  • rqalpha mod list 命令现在可以格式化显示 Mod 当前的状态了Environment 和 ExecutionContext 相关

  • 现在 ExecutionContext 只负责上下文相关的内容,不再可以通过 ExecutionContext 访问其他成员变量。

  • 扩展了 Environment 的功能,RQAlpha 及 Mod 均可以直接通过 Environment.get_instance() 来获取到环境中核心模块的引用
  • Environment 还提供了很多常用的方法,具体请直接参考代码配置及参数相关

  • 重构了配置相关的内容,~/.rqalpha/config.yml 现在类似于 Sublime/Atom 的用户配置文件,用于覆盖默认配置信息,因此只需要增加自定义配置项即可,不需要全部的配置内容都存在

  • 将Mod自己的默认配置从配置文件中删除,放在Mod中自行管理和维护
  • 独立存在 ~/.rqalpha/.mod_conifg.yml, 提供 rqalpha mod install/uninstall/enable/disable/list 命令,RQAlpha 会通过该配置文件来对Mod进行管理。
  • 抽离 rqalpha run 的参数,将其中属于 Mod 的参数全部删除,取代之为Mod提供了参数注入机制,所以现在 Mod 可以自行决定是否要注入参数或者命令来扩展 RQAlpha 的功能
  • 提供了 rqalpha-cmd 命令,Mod 推荐在该命令下注入自己的命令来实现功能扩展
  • 不再使用 –strategy-type, 改为使用 –security 选项
  • –output-file | –report | –plot | –plot-save参数 转移至sys_analyser Mod 中
  • plot | report 命令,转移至 sys_analyser Mod 中
  • –signal | –slippage | –commission-multiplier | –matching-type | –rid 转移至 sys_simulation Mod 中Risk 计算

  • 修复 tracking error 计算错误

  • 修改 sharpe , sortino , information ratio , alpha 计算逻辑。参考 晨星 的方法, 先计算单日级别指标, 再进行年化。与原本直接基于年化值计算相比, 在分析时间较短的情况下, 新的指标计算结果会系统性低于原指标结果。
  • 引入单日无风险利率作为中间变量计算上述指标。单日无风险利率为通过 中国债券信息网 获取得到对应期限的年化国债到期收益率除以244得到
  • 修改指标说明若干其他

  • 修改了 OrderTrade 的字段和函数,使其更通用

  • RqAttrDict 类增加 update 方法,现在支持动态更新了
  • arg_checker 增加 is_greater_or_equal_thanis_less_or_equal_than 函数
  • 删除 DEFAULT_FUTURE_INFO 变量,现在可以直接通过 data_proxy 获取相关数据
  • 通过 better_exceptions 提供更好的错误堆栈提示体验
  • 对字符串的处理进行了优化,现在可以正确在 Python2.x/3.x 下显示中文了
  • 修复 update_bundle 直接在代码中调用会报错的问题
  • 增加对于下单量为0的订单过滤,不再会创建订单,也不再会输出警报日志
  • 增加 is_suspendedis_st_stock API 的支持