Skip to content

Commit 58786d7

Browse files
authored
Merge pull request #952 from ricequant/develop
release v6.0.0
2 parents 80b6c05 + f96623a commit 58786d7

File tree

155 files changed

+31082
-2999
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+31082
-2999
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ jobs:
4545
pip install "numpy>=2.0.0"
4646
pip install "TA-Lib>=0.6.5" -i https://rquser:[email protected]/simple/
4747
fi
48+
pip install pytest
4849
pip install coveralls
4950
pip install -U setuptools
5051
pip install ipython==5.3.0
@@ -54,7 +55,7 @@ jobs:
5455
rqalpha download-bundle
5556
- name: run test
5657
run: |
57-
coverage run --source=rqalpha test.py
58+
python -m pytest
5859
ls -al $HOME/.rqalpha/
5960
ls -al $HOME/.rqalpha/bundle/
6061
- name: Upload coverage data to coveralls.io

CHANGELOG.rst

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,102 @@
22
CHANGELOG
33
==================
44

5+
6.0.0
6+
==================
7+
8+
**[新增功能]**
9+
10+
- `mod_sys_accounts`新增 `dividend_tax_rate` 配置项,支持固定股息税率配置,默认为 0
11+
- 新增 `order_target_portfolio_smart` API,相比 `order_target_portfolio` 更加智能和精确
12+
13+
**[问题修复]**
14+
15+
- 修复分红情况下 `position_pnl` 的计算
16+
- 修复 `order_value` 及关联 API 在算法单撮合场景下对可买股数估计不准的问题
17+
18+
**[重构和改善]**
19+
20+
- 重构测试框架,从自定义框架迁移到 pytest,提升测试灵活性和功能性,更好地与 IDE 集成
21+
- 重构 `BaseDataSource`,改善代码质量和性能;废弃 `InstrumentStore` 和 `AbstractInstrumentStore`
22+
- 重构更新 bundle 的部分代码,提升扩展性
23+
- 修改 `DataProxy` 的部分接口,改进代码质量和类型安全性
24+
- 重构 `StockPosition` 类,增强分红拆分计算的鲁棒性
25+
- 重构 `AnalyserMod`,增加对部分非 A 股交易日历的 benchmark 的支持
26+
- 重构 `StockTransactionCostDecider` 和 `FutureTransactionCostDecider`,适配新的接口、简化代码
27+
- 改善 `Instrument`、`Order` 和 `Trade` 类,简化使用、提升性能
28+
- 改善 `Portfolio` 和 `Account` 类,提升针对不同合约及多市场场景下的扩展性
29+
- 改善类型提示
30+
- 大幅改善进程内多次运行回测会出现的内存泄漏问题
31+
32+
**[其他改进]**
33+
34+
- 策略抛出异常时,RQAlpha 主函数或进程最终也会抛出异常(而不是仅打印错误日志)
35+
- 更新翻译文件
36+
37+
38+
**[For Mod 开发者] 接口变更指引**
39+
40+
本版本对接口进行了重大重构,主要目的是简化代码、提升类型安全性及提升针对多市场交易的扩展性
41+
42+
**1. `interface.py` 变更**
43+
44+
- `AbstractTransactionCostDecider` 接口发生重大变更,多个方法合并为单一 `calc` 方法
45+
- `DataSource` 新增 `get_exchange_rate` 方法,对于单一货币的场景,简单返回全 1 的汇率结构即可(参考 `BaseDataSource` 的实现)
46+
47+
**2. `BaseDataSource` 接口变更**
48+
49+
- `register_xxx_store` 增加 `market` 参数,`register_instrument_store` 替换为 `register_instruments`
50+
- `InstrumentStore` 和 `AbstractInstrumentStore` 已标记为废弃
51+
52+
**3. `DataProxy` 接口变更**
53+
54+
- 删除 `get_dividend_by_book_date` 和 `get_split_by_ex_date` 方法
55+
- `get_prev_close` 方法新增 `adjust_type` 参数
56+
- 新增 `instrument_not_none` 和 `multi_instruments` 方法,提高类型安全性
57+
- 新增 `get_exchange_rate` 方法,用于获取汇率数据
58+
- 交易日历相关方法 `trading_calendar_type` 参数的默认值改为 `TRADING_CALENDAR_TYPE.CN_STOCK`
59+
60+
**4. `Environment` 接口变更**
61+
62+
- 简化税费计算相关接口,将功能重叠的多个接口合并精简为 `calc_transaction_cost`
63+
- 变更多个组件属性的行为以提升类型安全,以下属性在未设置之前尝试访问会抛出 `AttributeError`(而不是返回 `None`):
64+
- `data_proxy`
65+
- `data_source`
66+
- `price_board`
67+
- `event_source`
68+
- `broker`
69+
- `strategy_loader`
70+
- `portfolio`
71+
- `mod_dict`
72+
- `user_strategy`
73+
74+
**4. 各 model 和业务类**
75+
76+
- `Instrument`
77+
- 构造函数新增 `market` 参数,非中国市场标的需要传入该参数
78+
- 新增 `min_order_quantity` 和 `order_step_size` 属性,改善原 `round_lot` 含义模糊的问题
79+
80+
- `Order`
81+
- 新增 `estimated_transaction_cost` 属性,用于估算订单交易成本
82+
83+
- `Trade`
84+
- 构造后不再需要显式设置 `commission` 和 `tax`,这一过程已集成至 `__from_create__` 内部
85+
86+
- `Account`
87+
- 增加 `available_cash_for` 方法,用于在多市场场景下获取指定标的的可用资金,风控场景应使用该方法而不是 `cash` 属性
88+
89+
**5. 枚举类型变化**
90+
91+
- `TRADING_CALENDAR_TYPE` 新增 `HK_STOCK` 和 `SOUTHBOUND` 类型,原 `EXCHANGE` 类型重命名为 `CN_STOCK`
92+
- 新增 `MARKET` 枚举 (`MARKET.CN`, `MARKET.HK`) 用于多市场支持
93+
94+
**6. 重构测试框架**
95+
96+
- 新的回测结果断言工具
97+
- `rqalpha.utils.testing` 下新增 `assert_result` 工具函数,用于断言回测结果与文件中持久化的结果相一致
98+
- 增加了专门用来持久化回测结果的自定义文件格式,兼顾了可读性和序列化能力
99+
100+
5101
5.3.3
6102
==================
7103
- 修复平今数量的计算异常

0 commit comments

Comments
 (0)