Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
Cuizi7 committed Apr 7, 2021
2 parents cf2b154 + d5f3d67 commit f940a1b
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 30 deletions.
79 changes: 51 additions & 28 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,40 @@
CHANGELOG
==================

4.3.3
==================

- 回测和模拟交易的 :code:`--matching-type` 参数支持传入 :code:`vwap` 以启用成交量加权平均价撮合
- 股票下单 API 中限制散股交易的逻辑针对科创板股票进行了适配


4.3.2
==================

- **新增**

- :code:`history_bars` 的 frequency 参数支持传入 :code`'1w'` 以获取周线

- **修复**

- 修复 :code:`Order` 对象从持久化中恢复出错的问题
- 修复通过策略内配置项配置股票分红再投资参数无效的问题
- 修复合约在某些日期无行情导致基准收益曲线计算有误的问题
- 修复 :code:`Order` 对象 :code:`avg_price` 字段计算有误的问题
- 修复通过 :code:`order_target_portfolio` API 发出的订单验资风控异常的问题


4.3.0
==================

- 新增
- **新增**

- 新增出入金 API :code:`withdraw` 和 :code:`deposit`,用于为指定账户出金/入金
- 新增使用资产收益加权作为基准的功能,参数形如 :code:`--benchmark 000300.XSHG:0.5,510050.XSHG:-1`
- 新增按日簿记账户管理费用的功能,参数形如 :code:`--management-fee stock 0.0002`
- :code:`Trade` 类的构造函数增加了关键字参数

- 重构
- **重构**

- 重构了 :code:`BaseDataSource` 所使用的 :code:`InstrumentStore`,使得通过 mod 扩展支持的资产品种变得更加容易
- 重构了 :code:`AbstractDataSource` 中的 instruments 的相关接口
Expand Down Expand Up @@ -99,20 +122,20 @@ CHANGELOG
对于开发/运行策略的用户,RQAlpha 4.x 版本改动的核心是加强与 `RQDatac`_ 之间的联动,拥有 RQDatac license 的用户可以更及时地更新 bundle,
亦可以在开源的 RQAlpha 框架下直接调用从前在 Ricequant 网站或终端产品中才能使用的扩展 API。

- 新增
- **新增**

- 新增集合竞价函数 :code:`open_auction` ,您可以在该函数内发单以实现开盘成交,详见 :ref:`api-base-api`
- 新增扩展 API 的实现,现在您可以在开源的 rqalpha 框架下直接调用扩展 API,详见 :ref:`api-extend-api`
- 新增股票下单 API,``order_target_portfolio``,使用该 API 可以根据给定的目标组合仓位批量下单,详见 :ref:`api-base-api-order-api`

- 变更
- **变更**

- ``rqalpha update-bundle`` 命令的功能改为使用 RQDatac 更新已存在的数据 bundle,新增 ``rqalpha download-bundle`` 和 ``rqalpha create-bundle`` 命令用于下载和创建 bundle,详见 :ref:`intro-install-get-data`
- ``line-profiler`` 库不再是 RQAlpha 的硬性依赖,如果您需要性能分析功能,则需要手动安装 ``line-profiler``,详见 :ref:`intro-faq`
- 配置项中股票和期货验券风控的开关 ``validate_stock_position`` 和 ``validate_future_position`` 移动到了 :code:`rqalpha_mod_sys_accounts`,详见 `rqalpha_mod_sys_accounts`_
- 传入 ``--report`` 参数后输出的策略报告文件将直接生成于 ``--report`` 参数值给定的目录下,不再在该目录下新建以策略名为名称的文件夹

- 废弃
- **废弃**

- 不再支持 Python2.7
- ``context.portfolio.positions`` 可能会在未来版本中废弃,推荐使用 ``get_position`` 和 ``get_positions`` API 获取仓位信息,详见 :ref:`api-position-api`
Expand Down Expand Up @@ -141,42 +164,42 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
3.4.4
==================

- 修复
- **修复**

- 修复 ``rqalpha mod install/uninstall`` 命令与 pip 19.3.1 的兼容性问题

- 变更
- **变更**

- :code:`history_bars` 取不到行情时返回空 ndarray 而非 None


3.4.2
==================

- 变更
- **变更**

- 移除代码中硬编码的期货交易时间、佣金费率等信息,期货新品种上市不再需要更新 RQAlpha 版本,只需更新 bundle 数据(:ref:`intro-install-get-data`)
- 变更 :code:`rqalpha.data` 的目录结构
- :code:`rqalpha.utils.get_trading_period` 和 :code:`rqalpha.utils.is_night_trading` 函数变更为 :code:`DataProxy` 的方法
- 调整下载 bundle 的 URL

- 新增
- **新增**

- :code:`Instrument` 对象新增交易时间相关的 :code:`trading_hours` 和 :code:`trade_at_night` property


3.4.1
==================

- 新增
- **新增**

- 对期货 SS, EB 的支持

- 变更
- **变更**

- 调整下载 bundle 的 URL,提高 bundle 下载速度

- 修复
- **修复**

- 股票/期货上市首日调用 pnl 相关属性抛出异常的问题
- 股票股权登记日和分红到账日间隔多个交易日时分红计算错误的问题
Expand All @@ -185,11 +208,11 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
3.4.0
==================

- 新增
- **新增**

- 股票下单 API 加入资金不足时自动转为使用所有剩余资金下单的功能,见 `rqalpha_mod_sys_accounts <https://github.com/ricequant/rqalpha/tree/master/rqalpha/mod/rqalpha_mod_sys_accounts>`_

- 变更
- **变更**

- 重构 :code:`rqalpha_mod_sys_accounts` 中的账户、持仓类,主要变化如下:

Expand All @@ -206,11 +229,11 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
3.3.3
==================

- 新增
- **新增**

- 对期货 NR、UR、RR 的支持

- 修复
- **修复**

- Python2.7 环境下依赖的 numpy 版本不正确的问题
- 进程启动后初次触发 settlement 事件时框架内部时间可能不正确的问题
Expand All @@ -220,20 +243,20 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
3.3.2
==================

- 新增
- **新增**

- :code:`SelfTradeValidator` 模块,用于拦截策略可能产生自成交的订单
- :code:`buy_close`、:code:`sell_close` API 将订单拆分成多个时给出 WARNING 提示
- 对股票更换代码这一行为的支持
- 对期货 CJ 品种的支持


- 变更
- **变更**

- 不再支持 Python3.4


- 修复
- **修复**

- :code:`Booking` 持久化逻辑错误的问题
- 指数的 :code:`Bar` 对象获取 :code:`limit_up`、:code:`limit_down` 字段报错的问题
Expand All @@ -246,7 +269,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
3.3.1
==================

- 新增
- **新增**

- 对期货 SP, EG 品种的支持。
- 加入 python3.7 环境下的自动化测试。
Expand All @@ -255,7 +278,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
- 增加 :code:`MinuteBarObject` 对象,当分钟线数据不包含涨跌停价时该对象的涨跌停字段改为从日线获取。


- 变更
- **变更**

- 年化(如收益率)的计算改为使用交易日而非是自然日。
- 基准收益率不再使用全仓买入基准合约模拟,改为直接使用前复权价格序列计算。
Expand All @@ -265,7 +288,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
- :code:`order_value` 等使用价值计算股数的下单 API 计算股数时增加对税费的考虑(即计算包含税费的情况下花费一定数量的现金可以交易多少合约)。


- 修复
- **修复**

- 净值为负的情况下 :code:`Portfolio` 年化收益率计算有误的问题。
- :code:`Portfolio` 对象不存在的情况下某些 API 的报错信息不明确的问题。
Expand All @@ -280,12 +303,12 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
3.2.0
==================

- 配置和命令
- **配置和命令**

- :code:`rqalpha run` 命令增加参数 :code:`-mk/--market`,用来标识策略交易标的所在的市场,如 cn、hk 等。
- :code:`rqalpha update_bundle` 更改为 :code:`rqalpha update-bundle`。

- 接口和 Mod
- **接口和 Mod**

- 增加新接口 :code:`AbstractTransactionCostDecider`,在 :code:`Environment` 中注册该接口的实现可以自定义不同合约品种、不同市场的税费计算逻辑。
- 增加新 Mod :code:`sys_transaction_cost` 实现上述接口,抽离了原 :code:`sys_simulation` Mod 中的税费计算逻辑,并加入了对港股税费计算的支持。
Expand All @@ -294,7 +317,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
- 移除 :code:`sys_stock_incremental` Mod,该 Mod 被移到了单独的仓库 `rqalpha-mod-incremental <https://github.com/ricequant/rqalpha-mod-incremental>`_ ,不再与框架一同维护。


- 类型和 Api
- **类型和 Api**

- 增加 :code:`SimulationBooking` 类,实现了 :code:`Booking` 类相同的方法,用于在回测和模拟交易中兼容实盘 :code:`Booking` 相关的 Api。
- 增加 Api :code:`get_position` 和 :code:`get_positions`,用来获取策略持仓的 :code:`BookingPosition` 对象。
Expand All @@ -305,7 +328,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
- :code:`Instrument` 类型新增字段 :code:`market_tplus`,用来标识合约对平仓时间的限制,例如有 T+1 限制的 A 股该字段值为1,港股为 0。


- 逻辑
- **逻辑**

- 更改 Benchmark 的买入逻辑,不再对买入数量进行取整,避免初始资金较小时 Benchmark 空仓的问题。
- 修正画图时最大回撤的计算逻辑。
Expand All @@ -319,7 +342,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
- 修复在取不到行情时下单可能会抛出 RuntimeError 的 Bug。


- 依赖
- **依赖**

- 在 Python2.7 和 Python3.4 环境中限制 Matplotlib 的版本。
- 移除了测试用例对 Pandas 的版本依赖。
Expand All @@ -328,7 +351,7 @@ RQAlpha 4.x 相对于 3.x 版本进行了部分重构,重构的核心目标是
- 限制 click 库的版本下限为 7.0。


- 其他
- **其他**

- 加入对期货 TS 品种的支持。
- 模拟交易和实盘中支持持久化自定义类型(可被 pickle 的自定义类型)。
Expand Down
2 changes: 1 addition & 1 deletion rqalpha/apis/api_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ def history_bars(
:param order_book_id: 合约代码
:param bar_count: 获取的历史数据数量,必填项
:param frequency: 获取数据什么样的频率进行。'1d''1m'分别表示每日和每分钟,必填项
:param frequency: 获取数据什么样的频率进行。'1d''1m' 和 '1w' 分别表示每日、每分钟和每周,必填项
:param fields: 返回数据字段。必填项。见下方列表。
:param skip_suspended: 是否跳过停牌数据
:param include_now: 是否包含当前数据
Expand Down
2 changes: 1 addition & 1 deletion rqalpha/mod/rqalpha_mod_sys_analyser/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def generate_report(result_dict, output_path):
df = df.set_index("date")

csv_txt = StringIO()
csv_txt.write(df.to_csv(encoding='utf-8'))
csv_txt.write(df.to_csv(encoding='utf-8', line_terminator='\n'))

with open(os.path.join(output_path, "{}.csv".format(name)), 'w') as csvfile:
csvfile.write(csv_txt.getvalue())

0 comments on commit f940a1b

Please sign in to comment.