ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RQAlpha 概览:可扩展、可替换的多品种 Python 量化回测与交易框架

RQAlpha 概览:可扩展、可替换的多品种 Python 量化回测与交易框架 金融科技【免费下载链接】rqalphaA extendable, replaceable Python algorithmic backtest trading framework supporting multiple securities项目地址https://gitcode.com/gh_mirrors/rq/rqalpha点击查看免费下载本文基于 docs/source/index.rstRQAlpha 官方文档首页整理成文并结合作者所在的 rqalpha 仓库源码rqalpha/目录对其中涉及的架构定位、配置体系与 Mod 扩展机制进行源码级展开帮助读者全面理解 RQAlpha 的能力边界、配置方式与扩展入口。导读RQAlpha 是一套从数据获取、算法交易、回测引擎、实盘模拟、实盘交易到数据分析的全流程程序化交易解决方案。本文先介绍 RQAlpha 的整体定位与核心特点再重点剖析其灵活的配置方式与强大的 Mod 扩展性两大支柱读者可以借此掌握rqalpha mod list/enable/disable的 Mod 管理命令、七大系统 Mod 的职责与全部配置项并能结合仓库源码理解撮合、风控、税费等底层实现从而定制专属于自己的量化交易系统。RQAlpha 是什么覆盖交易全链条的量化框架RQAlpha 的定位可以从其项目描述中直接读出一个可扩展extendable、可替换replaceable的 Python 算法回测与交易框架支持多种证券品种。在官方文档首页中这一理念被进一步概括为RQAlpha 从数据获取、算法交易、回测引擎、实盘模拟实盘交易到数据分析为程序化交易者提供了全套解决方案。也就是说RQAlpha 并不只是一个回测引擎而是一条完整的链路数据获取通过数据源data bundle提供行情数据仓库中对应 rqalpha/data 目录其中base_data_source实现了数据存储与读取层data_proxy.py向策略层提供统一的数据访问接口算法交易策略编写与执行层对应 rqalpha/core/strategy.py 与 rqalpha/apis 提供下单、查询等 API回测引擎由sys_simulationMod 提供模拟撮合引擎与回测事件源rqalpha/mod/rqalpha_mod_sys_simulation/simulation_broker.py实盘模拟与实盘交易通过运行类型run_type切换b回测/p模拟/r实盘并支持 persist 持久化功能见 rqalpha/config.yml数据分析由sys_analyserMod 记录每日下单、成交、组合、持仓信息计算风险指标并输出 csv、plot 等分析结果。整个框架采用核心 Mod的架构核心负责环境rqalpha/environment.py、事件总线rqalpha/core/events.py与执行流程业务能力全部通过 Mod 插拔式挂载从而保证框架本身轻量、可替换。六大核心特点官方文档将 RQAlpha 的特点归纳为下表其背后在仓库中均有对应实现特点说明仓库依据易于使用让您集中于策略的开发一行简单的命令就可以执行您的策略rqalpha run -f strategy.py即可回测见 rqalpha/cmds/run.py完善的文档提供完整的 RQAlpha 使用文档本仓库 docs 目录包含安装、教程、API、Mod 开发等全套文档活跃的社区官方社区可获取和询问有关 RQAlpha 的一切问题官方维护的交流渠道见获取帮助一节稳定的环境大量算法交易在官方平台稳定运行框架本身对事件、数据、异常有完善处理灵活的配置支持多种方式配置和运行策略只需简单配置即可构建适合自己的交易系统分层配置体系见下文灵活的配置方式强大的扩展性开发者可以基于 Mod Hook 接口进行扩展Mod 机制见下文Mod 扩展机制其中易于使用可以直接体验仓库 rqalpha/examples 提供了buy_and_hold.py、golden_cross.py、macd.py、turtle.py等可直接运行的示例策略配合一行命令即可完成一次完整回测。灵活的配置方式三层配置体系RQAlpha 的配置分为三个层次从底层到上层优先级递增默认配置仓库中的 rqalpha/config.yml 定义了全部基础配置项的默认值用户配置文件用户通过--config参数或用户目录下的配置文件覆盖默认值策略内配置通过from rqalpha import run传入 Python 字典形式的config或在策略代码中通过白名单机制直接指定配置项。基础配置项详解rqalpha/config.yml 是理解 RQAlpha 行为的钥匙核心配置项如下配置项默认值说明base.data_bundle_path~数据源所存储的文件路径base.strategy_filestrategy.py启动的策略文件路径base.start_date2015-06-01回测起始日期base.end_date2050-01-01回测结束日期实盘时忽略base.margin_multiplier1保证金乘数取值(0, ∞]非法取值会在启动时被 rqalpha/mod/rqalpha_mod_sys_simulation/mod.py 拦截并报错base.run_typeb运行类型b回测、p模拟交易、r实盘交易base.frequency1d回测频率支持1d日线、1m分钟线、tick逐笔分钟线与 tick 级别回测依赖对应数据源base.accountsstock: ~设置可交易品种及初始资金支持stock股票、future期货也可自行扩展账户类型base.persistfalse模拟/实盘交易中开启 persist在每个 bar 结束时持久化持仓、账户与用户代码上下文base.round_pricefalse是否根据价格最小变动单位调整发单价格base.forced_liquidationtrue是否开启强平extra.log_levelinfo日志输出等级verbose/info/warning/errorextra.context_vars~将预定义变量传入context内extra.enable_profilerfalse是否启动性能分析配置文件中还定义了白名单机制whitelist: [base, extra, validator, mod]即只有在白名单内的配置段才允许在策略代码中直接指定这保证了配置的边界安全。代码内配置示例对于需要精细控制回测行为的场景官方文档推荐在代码中通过run(config)传入完整配置。例如设置滑点from rqalpha import run config { base: { strategy_file: strategy.py, start_date: 2015-01-09, end_date: 2015-03-09, frequency: 1d, accounts: { stock: 100000 } }, mod: { sys_simulation: { enabled: True, slippage: 0.01 } } } run(config)这是文档中最典型的配置用法base段负责策略与回测周期mod段负责各 Mod 的开关与参数覆写。强大的扩展性Mod Hook 机制Mod 管理命令RQAlpha 最具特色的能力是Mod Hook 接口——开发者可以通过实现统一的 Mod 接口对接第三方库、替换默认实现。官方文档给出了三个最常用的 Mod 管理命令# 查看当前安装的 Mod 列表及状态 $ rqalpha mod list # 启用 Mod $ rqalpha mod enable xxx # 禁用 Mod $ rqalpha mod disable xxx这三个命令的底层实现在 rqalpha/cmds/mod.pymod list读取 Mod 配置通过tabulate以表格形式输出每个 Mod 的name与enabled/disabled状态mod enable/disable会先尝试import_module(rqalpha_mod_ mod_name)校验 Mod 是否已安装系统 Mod 会被解析为rqalpha.mod.rqalpha_mod_sys_xxx再将修改写入用户级 Mod 配置文件。若 Mod 未安装会提示can not find mod [...]并跳过不会中断其他 Mod 的批量操作。系统 Mod 默认配置仓库中的 rqalpha/mod_config.yml 是系统 Mod 的默认开关配置默认全部启用mod: sys_accounts: { enabled: true } # 载入 Account 和 Position Model sys_simulation: { enabled: true } # 回测 / 模拟交易支持 Mod sys_progress: { enabled: true } # 命令行查看回测进度 sys_risk: { enabled: true } # 风控 Mod sys_analyser: { enabled: true } # 策略分析 Mod sys_scheduler: { enabled: true } # 定时任务 Mod sys_transaction_cost:{ enabled: true } # 交易税费 Mod可见 RQAlpha 开箱即用安装后不做任何 Mod 配置也能获得回测、风控、分析、税费、定时器、进度显示等完整能力。您也可以按需禁用某些 Mod例如rqalpha mod disable sys_analyser来精简回测流程、提升性能。自定义 Mod 的入口从源码结构看自定义 Mod 需继承 rqalpha/interface.py 中定义的AbstractMod接口实现start_up(env, mod_config)与tear_down(code, exception)生命周期方法并在start_up中通过env环境对象挂载 Broker、EventSource、Validator 或订阅事件总线rqalpha/core/events.py——系统 Mod 均是这一接口的实现范例。官方文档也提示如果您基于 RQAlpha 进行了 Mod 扩展可以提交给官方审核审核通过后会补充进 Mod 列表。七大系统 Mod 详解以下逐一展开官方文档列出的七个系统 Mod内容结合各 Mod 的 README位于rqalpha/mod/目录与源码实现。1. sys_accounts账户与持仓模型职责提供股票、期货的下单 API 实现及持仓模型的实现是扩展账户 Mod。配置项见 rqalpha/mod/rqalpha_mod_sys_accounts/README.rst配置项默认值说明stock_t1True是否开启股票 T1 限制dividend_reinvestmentFalse是否开启自动分红再投资cash_return_by_stock_delistedTrue持仓股票退市时是否按退市价格返还现金auto_switch_order_valueFalse股票下单因资金不足被拒时是否改为使用全部剩余资金下单validate_stock_positionTrue开启对股票仓位能否满足平仓需求的检查validate_future_positionTrue开启对期货仓位能否满足平仓需求的检查financing_rate0.00融资利率年化financing_stocks_restriction_enabledFalse是否开启融资可买入股票的限制futures_settlement_price_typeclose期货逐日盯市结算价settlement/close其账户模型实现在 rqalpha/mod/rqalpha_mod_sys_accounts/position_model.py 与api/子目录下的api_stock.py、api_future.py分别对应股票与期货的下单语义含order_target_portfolio等组合调整接口。2. sys_analyser策略分析与报告输出职责记录每天的下单、成交、投资组合、持仓等信息计算风险度指标并以 csv、plot 图表等形式输出分析结果。系统模块不可删除。配置项见 rqalpha/mod/rqalpha_mod_sys_analyser/README.rst配置项默认值说明benchmarkNone策略基准用于风险指标计算与收益曲线图绘制。单指数/股票直接填order_book_id如000300.XSHG复合指数传order_book_id与权重的字典如{000300.XSHG: 0.2, 000905.XSHG: 0.8}recordTrue不输出 csv/pickle/plot 等结果时可关闭该项以跳过部分数据收集逻辑提升性能output_fileNone回测结果输出路径pickle 格式含每日净值、头寸、流水及风险指标不设置则不输出report_save_pathNone回测报告数据目录csv 格式不设置则不输出plotFalse回测结束后是否绘制收益曲线图True使用默认模板或设置模板名称当前模板default、ricequantplot_save_fileNone收益曲线图保存路径设置后输出为 png 文件plot_config.open_close_pointsFalse是否在收益图中展示买卖点plot_config.weekly_indicatorsFalse是否在收益图中展示周度指标和收益曲线扩展命令启用该 Mod 后新增两条命令# 根据回测结果 pickle 文件绘制收益曲线图--hide 隐藏显示窗口--plot-save 指定 png 输出路径 $ rqalpha plot result_pickle_file_path --hide --plot-save target_plot_img_path # 根据回测结果 pickle 文件生成 csv 报告 $ rqalpha report result_pickle_file_path target_report_csv_path从源码结构看报告生成逻辑位于 rqalpha/mod/rqalpha_mod_sys_analyser/report 目录绘图逻辑位于 rqalpha/mod/rqalpha_mod_sys_analyser/plot 目录支持将分析结果沉淀为 excel 模板report/templates/summary.xlsx。3. sys_progress回测进度显示职责在控制台输出当前策略的回测进度。系统模块不可删除。配置项见 rqalpha/mod/rqalpha_mod_sys_progress/README.rst配置项默认值说明showFalse是否在命令行/终端绘制进度条扩展命令启用该 Mod 后可直接通过rqalpha run --progress开启进度条显示$ rqalpha run -f strategy.py --progress4. sys_risk事前风控校验职责对订单进行事前风控校验。系统模块不可删除。配置项见 rqalpha/mod/rqalpha_mod_sys_risk/README.rst配置项默认值说明validate_priceTrue开启对限价单价格合法性的检查validate_is_tradingTrue开启对标的可交易情况的检查validate_cashTrue开启对可用资金是否足够满足下单要求的检查validate_self_tradeFalse开启对存在自成交风险的检查各校验器独立成文件位于 rqalpha/mod/rqalpha_mod_sys_risk/validators 目录cash_validator.py、is_trading_validator.py、price_validator.py、self_trade_validator.py作为前端校验器frontend validator挂入订单处理链路。5. sys_scheduler定时任务职责提供定时器即按照特定周期执行指定逻辑的功能。系统模块不可删除。其核心实现在 rqalpha/mod/rqalpha_mod_sys_scheduler/scheduler.py策略侧配合scheduler.run_daily/run_weekly/run_monthly等 API 使用可将策略逻辑按日、周、月周期挂载执行。仓库测试 tests/integration_tests/test_api/mod/sys_scheduler/test_scheduler.py 覆盖了定时任务的触发行为。6. sys_simulation模拟撮合引擎与回测事件源职责提供模拟撮合引擎及回测事件源等模块为回测和模拟交易提供支持。系统模块不可删除。配置项见 rqalpha/mod/rqalpha_mod_sys_simulation/README.rst配置项默认值说明signalFalse信号模式开启后所有通过风控的订单不进行撮合直接按信号价格产生交易matching_typecurrent_bar撮合方式随回测频率不同而不同详见下文price_limitTrue开启对处于涨跌停状态的证券的撮合限制liquidity_limitFalse开启对对手盘无流动性的证券的撮合限制仅在 tick 回测下生效volume_limitTrue成交量限制每个 bar 累计成交量不超过该时间段市场总成交量的一定比值volume_percenttick 级别则为当前 tick 与上一 tick 市场总成交量之差的一定比值volume_percent0.25每个 bar/tick 可成交数量占市场总成交量的比值在volume_limit开启时生效slippage_modelPriceRatioSlippage滑点模型PriceRatioSlippage按价格比例或TickSizeSlippage按跳也可传包含包和模块的完整类路径自定义需继承rqalpha.mod.rqalpha_mod_sys_simulation.slippage.BaseSlippageslippage0滑点值对PriceRatioSlippage表示价格比例对TickSizeSlippage表示跳的数量inactive_limitTrue开启对当前 bar 无成交量的标的的撮合限制仅在日和分钟回测下生效management_fee[]账户每日计提费用格式[(STOCK, 0.0001), (FUTURE, 0.0001)]撮合方式的频率适配这是回测真实性的关键日回测current_bar以当前 bar 收盘价撮合或vwap成交量加权平均价撮合分钟回测current_bar、next_bar下一个 bar 的开盘价撮合或vwaptick 回测last最新价、best_own己方最优价、best_counterparty对手方最优价以及counterparty_offer逐档撮合。这些值在 rqalpha/mod/rqalpha_mod_sys_simulation/mod.py 的parse_matching_type中被解析为MATCHING_TYPE常量并对频率做合法性校验。值得注意的是matching_type为空时会根据frequency自动选择日线/分钟线默认current_bartick 默认last。若日线回测中显式设置next_bar框架会警告该配置在日线频率下被弃用并自动回退为current_bar。扩展命令启用该 Mod 后rqalpha run命令新增以下选项# 使用信号方式直接按下单价格成交屏蔽订单细节 --signal # 指定成交滑点按当前价格的百分比计算 --slippage / -sp # 指定手续费乘数 --commission-multiplier / --cm # 指定撮合的锚定价格及对应方式 --matching-type / --mt注意事项在 tick 级别回测频率下开盘集合竞价期间的撮合无视matching_type设置一律用last撮合默认情况下tick 回测使用DefaultTickMatcher日频和分钟频率回测使用DefaultBarMatcher。7. sys_transaction_cost交易税费职责实现股票、期货的交易税费计算逻辑针对不同市场、不同交易标的差异化计算。配置项见 rqalpha/mod/rqalpha_mod_sys_transaction_cost/README.rst配置项默认值说明cn_stock_min_commission5股票最小手续费单位元commission_multiplierNone佣金倍率在默认手续费率基础上按该倍数调整股票默认佣金万八期货默认佣金因合约而异stock_commission_multiplier1股票佣金倍率futures_commission_multiplier1期货佣金倍率tax_multiplier1印花倍率在默认印花税千分之一单边收取基础上调整税费计算的具体逻辑在 rqalpha/mod/rqalpha_mod_sys_transaction_cost/deciders.py通过实现统一的费用决策器接口将佣金、印花税、过户费等成本折算进每笔成交。从文档到实践一个最小可运行的回测综合以上内容一次完整的 RQAlpha 回测只需要三件事准备策略文件如 rqalpha/examples/buy_and_hold.py定义init与handle_bar两个回调配置回测参数在run(config)的base段设置策略文件、起止日期、频率与账户初始资金运行并分析默认启用sys_simulation撮合、sys_risk风控、sys_analyser分析、sys_transaction_cost税费等系统 Mod回测结束后由sys_analyser输出净值、风险指标与收益曲线。如果想要精细控制撮合行为只需在mod.sys_simulation段覆写matching_type、slippage、volume_limit等参数如果想屏蔽订单细节快速验证策略逻辑可开启signal: True或使用--signal参数如果想观察回测进度开启sys_progress.show或加--progress参数。获取帮助官方文档为使用者提供了三条获取帮助的途径通过文档索引或搜索功能查找特定问题在Github Issue中提交 issue 反馈问题加入RQAlpha 交流群QQ 群号487188429与其他使用者交流。小结RQAlpha 的价值在于核心稳定、外围可换稳定的事件驱动核心 七个职责清晰的系统 Mod 公开的 Mod Hook 接口使其既能开箱即用地完成日线/分钟线/tick 级别的回测、模拟与实盘接入又能让开发者以较低成本替换撮合、数据源、税费等任一环节或扩展全新的账户、风控、分析能力。本文所涉及的 Mod 管理命令、配置体系与各 Mod 配置项均可在当前仓库的 docs/source/index.rst、rqalpha/config.yml、rqalpha/mod_config.yml 及各 Mod 的 README 中进一步查阅验证。赞分享金融科技【免费下载链接】rqalphaA extendable, replaceable Python algorithmic backtest trading framework supporting multiple securities项目地址https://gitcode.com/gh_mirrors/rq/rqalpha点击查看免费下载相关推荐RQAlpha 架构深度解析事件驱动、Mod 扩展与可替换组件的量化回测框架RQAlpha 架构深度解析事件驱动、Mod 扩展与可替换组件的量化回测框架 导读 本文以 docs/claude/architecture.md https金融科技RQAlpha多品种量化交易框架股票、期货、基金、债券全解析指南RQAlpha多品种量化交易框架股票、期货、基金、债券全解析指南 RQAlpha是一个可扩展、可替换的Python算法回测和交易框架支持多种证券品种的量化交金融科技RQAlpha量化交易框架策略运行的多种方式详解RQAlpha量化交易框架策略运行的多种方式详解 引言 RQAlpha作为一款功能强大的Python量化交易回测框架提供了多种灵活的策略运行方式满足不同场金融科技上一篇nuclear 的播放列表怎么从 JSON 文件和外部服务 URL 导入下一篇JLCPCB vs PCBWayThe Open Book驱动模块PCBA服务对比与选型建议创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表