- 金融科技
【免费下载链接】rqalpha
A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities
本文以仓库 docs/source/history.rst 所包含的完整 CHANGELOG.rst 为骨架,系统梳理 RQAlpha 从 0.0.1 到 6.1.5 的版本演进史:合约时序化架构变革、多市场重构、撮合体系成型、Mod 机制确立等关键节点,并结合仓库源码与配置给出可验证的实现依据。读者读完后,既能按版本号快速定位历史功能与不兼容改动,也能理解这些演进的底层逻辑,为策略升级、Mod 开发与二次扩展提供可直接落地的迁移清单。
一、这份"历史档案"的构成:history.rst 与 CHANGELOG.rst
在 RQAlpha 的文档体系中,docs/source/history.rst 本身只是一个轻量入口,其正文只有三行:
.. _history: .. include:: ../../CHANGELOG.rst也就是说,文档站的"历史版本"页面通过 Sphinx 的include指令,直接引入仓库根目录下的 CHANGELOG.rst。因此,这份历史档案的绝对主体是 CHANGELOG.rst 本身——它按版本号倒序(最新版本在前)记录了从0.0.1(搭建基本框架)到6.1.5的全部变更。
CHANGELOG 的书写惯例有几个值得注意的规律:
- 版本分段:每个版本以
======分隔标题,版本号下直接列出变更条目; - 分类标签:自 6.0.0 起引入
[不兼容改动]、[新增功能]、[重构和改善]、[For Mod 开发者] 接口变更指引等结构化分组,其中"For Mod 开发者"分组专门面向二次开发人群,说明对应版本的接口级破坏性变更; - 代码块继承:早期版本(3.x、2.x、0.x)内嵌了完整的命令行与 Python 配置示例,这些示例是理解当时用法的一手材料,本文后续会完整保留。
二、6.x 系列:合约"时序化"架构变革与收尾
6.x 是当前仓库覆盖的最新主版本线,核心事件集中在 6.1.0 的架构基本假设变更。
6.1.0:从"一码一合约"到"合约时序化"
CHANGELOG 明确指出,6.1.0 包含"重大的架构基本假设变更":
- 旧版本隐含假设:每个
order_book_id只对应唯一的Instrument对象,这与实际业务逻辑不符(同一代码在不同时间段可能对应不同合约,例如换月、换代码的场景); - 新版本假设:instrument 是时序的,同一个
order_book_id在不同时间点可能对应不同的Instrument对象。
围绕这一假设,产生了一组不兼容改动:
| 变更对象 | 旧行为 | 新行为 |
|---|---|---|
order/order_toAPI | 参数名为order_book_id | 参数名改为id_or_ins |
get_position | 可传入未上市代码 | 传入未上市order_book_id会抛出异常 |
Instrument.listing_at | 判断是否上市 | 更名为active_at,旧方法移除 |
同时新增了两组"活跃合约"查询 API:
active_instrument/active_instruments:获取当前交易时点正在活跃(上市中、未退市)的合约对象;instrument_history/instruments_history:获取合约历史记录列表(包含未上市或已退市合约)。
这一设计的意图从仓库代码中可以印证:参数校验体系增加了assure_that支持参数自动转换(Instrument / symbol → order_book_id),并新增is_valid_order_book_id用于基础合法性校验/转换;同时移除了依赖"全局唯一 Instrument"假设的is_valid_stock/is_valid_future/is_valid_instrument等校验规则。风控、下单、分析等模块从此统一基于交易时点的合约对象进行判断。对于 Mod 开发者,DataProxy新增了get_active_instrument(s)、get_instrument_history、get_instruments_history等接口,而Environment.get_instrument及DataProxy旧合约接口被标记为废弃。
6.1.2 ~ 6.1.5:数据链路与细节收尾
- 6.1.2:修复更新 bundle 数据时因数据量过大导致与 rqdata 断开连接的问题;
- 6.1.3:修复
all_instruments获取数据缺失的问题; - 6.1.4:
order_target_portfolio_smart支持 ETF/LOF/REITs 品种,order_target_portfolio支持 REITs;涨跌停边界撮合改为按tick_size做容差处理,且涨跌停价为 NaN 时视为无涨跌停限制; - 6.1.5:回测结果图片和 Excel 报告新增年化双边换手倍数指标;
order_target_portfolio_smartAPI 性能优化;AbstractPosition类新增instrumentproperty;修复分红再投资未考虑交易费用的问题;获取结算价的品种范围由期货扩增为期货、期权、现货。
三、6.0.0:面向多市场的大规模重构
6.0.0 是一次面向多市场(A 股 + 港股等)与多品种的重构版本,CHANGELOG 用大篇幅记录了接口级变更。
新功能:dividend_tax_rate 与 order_target_portfolio_smart
mod_sys_accounts新增dividend_tax_rate配置项,支持固定股息税率配置,默认为 0;- 新增
order_target_portfolio_smartAPI,相比order_target_portfolio更加智能和精确。
在 rqalpha/mod/rqalpha_mod_sys_accounts/init.py 的__config__中可以看到该模块当前的完整配置族:stock_t1(股票 T+1 限制)、dividend_reinvestment(自动分红再投资)、dividend_tax_enabled(按持股期限差异化费率征收红利税)、dividend_tax_rate(红利税,暂只支持固定税率)、cash_return_by_stock_delisted(退市按退市价返还现金)、auto_switch_order_value(资金不足自动转为全部剩余资金下单)、validate_stock_position/validate_future_position(仓位风控开关)、financing_rate(融资利率/年)与futures_settlement_price_type(逐日盯市结算价,可选settlement/close)等。
值得一提的是,从源码看dividend_tax_rate在后续版本中已被标记为废弃:mod.py 中当其值非 0 时会打印警告 "Configuration sys_accounts.dividend_tax_rate is no longer available. Please use configuration sys_accounts.dividend_tax_enabled instead."。这说明 CHANGELOG 与当前代码之间存在版本漂移——查阅历史文档时,应以当前源码的实际行为为准。
测试框架迁移 pytest 与 assert_result
6.0.0 将测试框架从自定义框架迁移到 pytest,提升了测试灵活性与 IDE 集成度。仓库 rqalpha/utils/testing/init.py 下新增了assert_result工具函数,用于断言回测结果与文件中持久化的结果一致,并定义了兼顾可读性与序列化能力的自定义结果文件格式;tests/integration_tests/test_backtest_results/ 目录下的outs/*.txt就是这套断言体系的持久化样本。
接口层重大变更(For Mod 开发者)
interface.py:AbstractTransactionCostDecider多个方法合并为单一calc方法;DataSource新增get_exchange_rate(单一货币场景可参考BaseDataSource返回全 1 汇率结构);BaseDataSource:register_xxx_store增加market参数,register_instrument_store替换为register_instruments,InstrumentStore/AbstractInstrumentStore标记废弃;DataProxy:删除get_dividend_by_book_date与get_split_by_ex_date;get_prev_close新增adjust_type参数;新增instrument_not_none、multi_instruments、get_exchange_rate;交易日历相关方法默认值改为TRADING_CALENDAR_TYPE.CN_STOCK;Environment:税费计算接口合并精简为calc_transaction_cost;data_proxy、data_source、price_board、event_source、broker、strategy_loader、portfolio、mod_dict、user_strategy等属性在未设置前访问会抛出AttributeError(而非返回None),提升类型安全;- 枚举:
TRADING_CALENDAR_TYPE新增HK_STOCK、SOUTHBOUND,原EXCHANGE重命名为CN_STOCK;新增MARKET枚举(MARKET.CN、MARKET.HK)用于多市场支持。
业务模型类改进
Instrument:构造函数新增market参数;新增min_order_quantity与order_step_size,改善原round_lot含义模糊的问题;Order:新增estimated_transaction_cost属性,用于估算订单交易成本;Trade:构造后无需再显式设置commission和tax,已集成至__from_create__内部;Account:新增available_cash_for方法,多市场场景下获取指定标的可用资金,风控场景应使用该方法而非cash属性。
运行行为改进
策略抛出异常时,RQAlpha 主函数或进程最终也会抛出异常(而不是仅打印错误日志);同时"大幅改善进程内多次运行回测会出现的内存泄漏问题"。如果你在循环中多次调用 rqalpha/init.py 的run(),这一改进直接影响可用性。
四、5.x 系列:REITs、算法单与基准修复
5.x 主线以功能扩展和精度修复为主:
- 5.0.0:适配 pandas 2.0;新增算法单VWAPOrder 与 TWAPOrder;交易指数标的时不检查上市日期而依据行情数据有无决定;撮合时屏蔽已完成的订单;
- 5.5.0:修复复合基准收益率计算错误(如
399370.XSHE:0.5,399371.XSHE:0.5组合基准被错误放大,该 bug 于 5.4.0 引入);支持负权重指数作为基准、支持NULL作为基准标的;修复order_target_portfolio因交易费用导致资金不足的问题; - 5.6.x:回测支持场内交易 REITs(5.6.1),instrument 兼容 REITs 类型合约并兼容 Python 3.13(5.6.0);
- 5.3.x:期货回测支持使用 rqdatac 提供的时间序列费率与保证金费率数据、印花税费率新增 PIT(历史时点)模式、兼容 Python 3.12(5.3.5);兼容 rqdata 3.0(5.3.6);
- 5.2.0:report 年度指标新增超额夏普比率;默认印花税调整为万 5;
order_target_portfolio支持可转债; - 5.4.x:调整拆分送股逻辑(拆分产生不足 1 股时四舍五入);修复
order_target_portfolio资金不足问题; - 5.1.0:新增个股权重检测(summary 报告新增表格);新增
futures.get_dominant_price,支持动态复权。
五、4.x 系列:open_auction、扩展 API 与撮合体系成型
4.x 是 RQAlpha 从"单机回测"走向"可扩展多品种"的关键时期。
4.0.0:与 RQDatac 联动、bundle 命令拆分
- 新增集合竞价函数
open_auction,可在该函数内发单实现开盘成交; - 新增扩展 API 实现(
get_pit_financials_ex等),拥有 RQDatac license 的用户可在开源框架下直接调用; - 新增
order_target_portfolio股票批量下单 API; rqalpha update-bundle改为使用 RQDatac 更新已存在 bundle,新增rqalpha download-bundle与rqalpha create-bundle;- bundle 存储格式由 bcolz 替换为 hdf5;
- 不再支持 Python 2.7;
context.portfolio.positions标记为可能废弃,推荐使用get_position/get_positions; - Mod 相关:移除
rqalpha mod install/uninstall命令(用 pip 替代)、移除BenchmarkProvider接口、Instrument新增calc_cash_occupation供风控计算资金占用。
撮合体系:matching_type 的演进
撮合方式是 4.x 反复打磨的核心能力,CHANGELOG 记录了完整脉络:
- 4.3.3:
--matching-type支持vwap(成交量加权平均价撮合); - 4.5.0:新增逐档撮合
counterparty_offer,根据 tick 行情多档挂单信息逐步撮合; - 4.10.0:将
DefaultMatcher划分为DefaultBarMatcher与DefaultTickMatcher;Tick 回测支持成交量限制(两个 tick 成交量之差 ×volume_percent);Tick 回测不再支持open_auction,集合竞价时段一律用last撮合; - 4.11.1:
matching_type为None时根据回测频率自动选择——日/分钟回测下为current_bar,tick 回测下为last。
当前源码 rqalpha/mod/rqalpha_mod_sys_simulation/init.py 中的__config__给出了撮合相关配置的完整取值表:
| 配置项 | 可选值 / 默认值 | 说明 |
|---|---|---|
matching_type | 默认None | 日回测:current_bar/vwap;分钟回测:current_bar/next_bar/vwap;tick 回测:last/best_own/best_counterparty/counterparty_offer(逐档) |
price_limit | True | 是否开启涨跌停状态的撮合限制 |
liquidity_limit | False | 对手盘无流动性的撮合限制(仅 tick 回测生效) |
volume_limit | True | 每个 bar/tick 累计成交量不超过市场总成交量的一定比值 |
volume_percent | 0.25 | 可成交数量占市场总成交量的比值 |
slippage_model | PriceRatioSlippage | 可选TickSizeSlippage,或传入继承自slippage.BaseSlippage的自定义类完整路径 |
slippage | 0 | 对PriceRatioSlippage为价格比例,对TickSizeSlippage为跳数 |
inactive_limit | True | 当前 bar 无成交量时禁止成交(日/分钟回测生效) |
management_fee | [] | 账户每日计提费用,格式如[("STOCK", 0.0001)] |
撮合决策的实现位于 matcher.py,其中_create_deal_price_decider按matching_type选择对应的成交价决策器;_match_immediately(simulation_broker.py)则决定了current_bar_close/vwap等模式下订单的即时撮合行为。
账户与配置扩展
- 4.3.0:新增出入金 API
withdraw/deposit;新增资产收益加权基准(如--benchmark 000300.XSHG:0.5,510050.XSHG:-1);新增按日簿记账户管理费用(--management-fee stock 0.0002); - 4.11.0:针对股票和 ETF 新增融资功能,新增
finance/repayAPI;Account新增cash_liabilities(现金负债);sys_accounts新增financing_rate(融资利率/年)与financing_stocks_restriction_enabled(融资可买股票池限制,依赖 rqdatac); - 4.15.0:期货回测支持使用结算价进行结算;
- 4.16.2:
sys_accounts支持分别设置股票、期货佣金倍率; - 4.16.0:新增
check-bundle检查日线 bundle 命令。
报告与分析能力
- 4.6.0 / 4.7.0:收益图加入超额收益曲线、周度收益曲线与买卖点绘制选项,指标改为通过配置项激活;
- 4.8.0:
sys_analyser报表新增 Excel 格式(对应 rqalpha/mod/rqalpha_mod_sys_analyser/report/); - 4.14.0:新增 UlcerIndex(累计回撤深度)与 UlcerPerformanceIndex(累计回撤夏普率);
- 4.16.0:report 年度指标 sheet 新增指标。
六、3.x 系列:多账户与 Mod 体系确立
3.0.0:--account 取代多参数账户体系
3.0.0 是策略使用者必读的迁移版本:-sc/--stock-starting-cash、-fc/--future-starting-cash、-i/--init-cash、-s/--security、-k/--kind、--strategy-type等参数全部移除,统一改为--account:
# 策略通过命令行运行,设置可交易类型是股票,起始资金为 10000 $ rqalpha run --account stock 10000 # 策略通过命令行运行,设置可交易类型为期货,起始资金为 50000 $ rqalpha run --account future 50000 # 策略通过命令行运行,设置可交易类型为期货和股票,起始资金分别为 股票 10000, 期货 50000 $ rqalpha run --account stock 10000 --account future 50000 # 如果您通过 Mod 扩展,自定义了一种可交易类型(假设是huobi),您也可以增加对于火币的支持和起始资金设置 $ rqalpha run --account stock 10000 --account future 50000 --account huobi 20000通过run_file | run_code | run_func启动策略时,配置文件中的base.stock_starting_cash/base.future_starting_cash/base.securities也对应替换为base.accounts:
# 策略通过配置,设置可交易类型是股票,起始资金为 10000 config = { "base": { "start_date": "...", "end_date": "...", "frequency": "...", "matching_type": "...", "benchmark": "...", "accounts": { "stock": 10000 } } } # 策略通过配置,设置可交易类型为期货和股票,起始资金分别为 股票 10000, 期货 50000 config = { "base": { "start_date": "...", "end_date": "...", "frequency": "...", "matching_type": "...", "benchmark": "...", "accounts": { "stock": 10000, "future": 50000 } } } # 如果您通过 Mod 扩展,自定义了一种可交易类型(假设是huobi),您也可以增加对于火币的支持和起始资金设置 config = { "base": { "start_date": "...", "end_date": "...", "frequency": "...", "matching_type": "...", "benchmark": "...", "accounts": { "stock": 10000, "future": 50000, "huobi": 20000 } } }这一设计在今天的 rqalpha/config.yml 中依然可见:base.accounts下只需为想启用的账户设置初始资金(stock: ~表示默认不启用)。
对 Mod 开发者而言,3.0.0 引入了AbstractAccount与AbstractPosition抽象类、Environment.set_account_model / set_position_model / set_smart_order注入机制,并将账户、持仓模型与 API 抽离至rqalpha_mod_sys_accounts。当时的注入示例(在今日 rqalpha/mod/rqalpha_mod_sys_accounts/mod.py 中仍有对应实现形态):
from .account_model import * from .position_model import * from .api import api_future, api_stock class AccountMod(AbstractMod): def start_up(self, env, mod_config): # 注入 Account env.set_account_model(DEFAULT_ACCOUNT_TYPE.STOCK.name, StockAccount) env.set_account_model(DEFAULT_ACCOUNT_TYPE.FUTURE.name, FutureAccount) env.set_account_model(DEFAULT_ACCOUNT_TYPE.BENCHMARK.name, BenchmarkAccount) # 注入 Position env.set_position_model(DEFAULT_ACCOUNT_TYPE.STOCK.name, StockPosition) env.set_position_model(DEFAULT_ACCOUNT_TYPE.FUTURE.name, FuturePosition) env.set_position_model(DEFAULT_ACCOUNT_TYPE.BENCHMARK.name, StockPosition) # 注入 API if DEFAULT_ACCOUNT_TYPE.FUTURE.name in env.config.base.accounts: # 注入期货API for export_name in api_future.__all__: export_as_api(getattr(api_future, export_name)) # 注入 smart order env.set_smart_order(DEFAULT_ACCOUNT_TYPE.FUTURE.name, api_future.smart_order) if DEFAULT_ACCOUNT_TYPE.STOCK.name in env.config.base.accounts: # 注入股票API for export_name in api_stock.__all__: export_as_api(getattr(api_stock, export_name)) # 注入 smart order env.set_smart_order(DEFAULT_ACCOUNT_TYPE.STOCK.name, api_stock.smart_order) def tear_down(self, code, exception=None): pass3.2.0:sys_transaction_cost 与事件订阅
- 新增
AbstractTransactionCostDecider接口,在Environment中注册实现可自定义不同合约品种、不同市场的税费计算逻辑;新 Modsys_transaction_cost实现了该接口,抽离了原sys_simulation中的税费计算逻辑,并加入对港股税费计算的支持(对应今日 rqalpha/mod/rqalpha_mod_sys_transaction_cost/init.py 的stock_min_commission、stock_commission_multiplier、futures_commission_multiplier、tax_multiplier、pit_tax等配置); - 新增
subscribe_eventAPI 订阅框架内部事件;新增get_position/get_positions获取持仓对象;DEFAULT_ACCOUNT_TYPE增加债券BOND类型; --market参数标记策略交易标的市场(cn、hk 等);rqalpha update_bundle更名为rqalpha update-bundle;- 逻辑改进:下单冻结资金与前端风控验资均考虑税费;年化计算改为使用交易日而非自然日;基准收益率改为直接使用前复权价格序列计算;滑点计算增加涨跌停价判断。
3.1.0:滑点与价格规则精细化
- 新增
base.round_price参数(--round-price),开启后现价单价格调整为最小价格变动单位的整倍数; sys_simulation新增slippage_model参数,滑点不再限于价格比率,支持基于最小价格变动单位的模型乃至自定义滑点模型;- 新增股票最小手续费
stock_min_commission(--stock-min-commission 5); sys_accounts新增future_forced_liquidation,期货账户爆仓时强平;- 新增通用下单接口
submit_order(id_or_ins, amount, side, price=None, position_effect=None);TickObject替代原Tick与SnapshotObject。
七、2.x 与 0.x:框架诞生期
2.2.x:运行方式与下单 API 定型
- run_file / run_code / run_func:2.2.2 引入三种程序化运行策略的方式,今日 rqalpha/init.py 中仍保留这三个入口(
run()已被标记为 Deprecated,推荐使用run_file/run_code/run_func); - order / order_to:2.2.2 新增高阶调仓函数——
order的quantity > 0向 BUY 方向调仓、quantity < 0向 SELL 方向调仓;order_to的quantity表示调仓后的最终仓位;POSITION_EFFECT增加CLOSE_TODAY; - 2.2.4:所有下单函数支持多种等价写法(
order_shares("000001.XSHE", 100, 200)、order_shares("000001.XSHE", 100, LimitOrder(200))等均可);buy_close/sell_close增加close_today参数支持平今单,且期货平仓支持平昨/平今智能拆单(返回订单列表);Order.__from_create__/Trade.__from_create__不再接收calendar_dt与trading_dt; - 2.2.5:提供 IPython Magic,
%load_ext rqalpha后可用%%rqalpha -s 20160101 -e 20170101 -sc 100000直接在 notebook 中运行回测(对应 docs/source/notebooks/run-rqalpha-in-ipython.ipynb);新增--source-code参数直接传入策略源代码。
2.0.x:Mod 管理与配置体系
- 配置改为从当前路径读取
config.yml,rqalpha generate_config生成含全部默认系统配置的文件;Mod 默认配置从主配置中删除,独立维护.mod_config.yml,并提供rqalpha mod install/uninstall/enable/disable/list命令; RUN_TYPE增加LIVE_TRADING;context.config获取配置信息;base.extra_vars/extra.context_vars向策略预定义变量。
0.x:起点
CHANGELOG 的最底层记录展示了框架的诞生过程:0.0.1 搭建基本框架与 unittest;0.0.2 增加日线回测、分红处理、涨跌停检查,运行参数形如:
# 生成sample策略 rqalpha generate_examples -d ./ # 运行回测 rqalpha run -f examples/simple_macd.py -s 2013-01-01 -e 2015-01-04 -o /tmp/a.pkl0.3.0 支持多周期回测、期货策略、混合策略,并"抽离接口层,数据源、事件源、撮合引擎、下单模块全部可以替换或扩展",同时引入 Mod 机制与 pub/sub 事件模式——这正是 RQAlpha"可扩展、可替换"架构定位的源头。
八、升级与迁移要点速查
综合全文,按版本整理的迁移清单如下:
| 版本 | 不兼容 / 重大变更 | 应对动作 |
|---|---|---|
| 6.1.0 | Instrument 时序化;order/order_to参数改id_or_ins;listing_at→active_at;get_position拒绝未上市代码 | 下单与持仓查询改用id_or_ins;合约活跃判断改用active_at;需要历史合约时用instrument_history(s) |
| 6.0.0 | 接口重构(calc、get_exchange_rate、available_cash_for等);Environment 未初始化属性抛AttributeError;测试迁移 pytest | Mod 开发者按 rqalpha/interface.py 与 rqalpha/data/base_data_source/data_source.py 的现状核对接口;风控取可用资金改用available_cash_for |
| 5.0.0 | 适配 pandas 2.0;新增 VWAP/TWAP 算法单 | pandas 低版本策略需升级依赖 |
| 4.0.0 | 移除 Python 2.7;bundle 命令拆分;bcolz → hdf5;移除rqalpha mod install/uninstall | bundle 重新下载/创建;Mod 改用 pip 管理 |
| 3.0.0 | 账户参数全部收敛为--account/base.accounts | 命令行与配置文件按本文第三节示例改写 |
| 2.2.x | 下单 API 扩展等价写法;平今拆单;Order.__from_create__签名变更 | 对接第三方交易源的 Mod 需调整订单/成交构造 |
验证迁移是否成功的快捷路径:仓库 tests/integration_tests/test_backtest_results/ 下有从test_f_buy_and_hold到test_sf_buy_and_hold的端到端回测结果断言,配合 tests/unittest/ 的单元测试,可直接运行以确认当前环境与版本行为一致。
九、延伸阅读:在仓库中定位这些演进
CHANGELOG 的每个条目都能在源码中找到落点,以下是核心对照路径:
- 全局默认配置:rqalpha/config.yml,含
base.accounts、frequency、matching_type、margin_multiplier、capital_gain_tax_rate、auto_update_bundle等; - Mod 启停清单:rqalpha/mod_config.yml,默认启用
sys_accounts、sys_simulation、sys_progress、sys_risk、sys_analyser、sys_scheduler、sys_transaction_cost; - 账户与持仓配置:rqalpha/mod/rqalpha_mod_sys_accounts/init.py 与 rqalpha/mod/rqalpha_mod_sys_accounts/mod.py;
- 撮合与滑点配置:rqalpha/mod/rqalpha_mod_sys_simulation/init.py、matcher.py、slippage.py;
- 交易成本配置:rqalpha/mod/rqalpha_mod_sys_transaction_cost/init.py;
- 程序化运行入口:rqalpha/init.py 的
run_file/run_code/run_func; - 参数校验体系:rqalpha/utils/arg_checker.py(含
assure_that、is_valid_order_book_id等演进); - 数据分析与报告:rqalpha/mod/rqalpha_mod_sys_analyser/。
结语
从 0.0.1 的"日线回测 + 分红处理",到 6.1.5 的"合约时序化 + 多市场 + REITs/期权/现货结算价",RQAlpha 的 CHANGELOG 完整记录了它从一个简单回测脚本演进为可扩展、可替换的多品种回测与交易框架的全过程。对于策略开发者,它是升级路上的避坑手册;对于 Mod 开发者,它是接口演进的编年史;对于想要理解框架设计哲学的读者,它则是一条按版本号展开的架构时间线。查阅时请记住本文反复强调的一点:CHANGELOG 描述的是"当时",源码呈现的是"现在",两者结合阅读才能得到完整且准确的图景。
- 金融科技
【免费下载链接】rqalpha
A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities
相关推荐
RQAlpha 版本演进全解析:从 0.0.1 到 6.1.5 的架构变迁与升级指引
RQAlpha 版本演进全解析:从 0.0.1 到 6.1.5 的架构变迁与升级指引 本文以仓库根目录下 CHANGELOG.rst https://link.
金融科技google_sign_in 插件版本演进全解析:从 0.0.1 到 7.2.0 的架构变迁与升级指南
google_sign_in 插件版本演进全解析:从 0.0.1 到 7.2.0 的架构变迁与升级指南 导读 本文以 Flutter 官方团队维护的 googl
跨平台移动开发UI组件开发工具restify 版本演进全解:从 CHANGELOG 看 Node.js REST 框架的架构变迁与升级路径
restify 版本演进全解:从 CHANGELOG 看 Node.js REST 框架的架构变迁与升级路径 导读 CHANGELOG.md https://l
后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考