pybroker
Python 算法交易框架,内置 Numba 加速回测引擎 + Walkforward 分析,专注机
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Python 算法交易框架,内置 Numba 加速回测引擎 + Walkforward 分析,专注机
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一个对股票市场感兴趣的程序员,花了三个月研究各种技术指标,写出了一套自以为精妙的交易策略。你满怀信心地把钱投进去,结果第一周就亏了 20%。问题出在哪里?大概率是——你根本没有在真实历史数据上验证过策略的可靠性。
PyBroker 正是为解决这个问题而生。它是一个专门用于算法交易策略研发的 Python 框架,核心卖点是将机器学习能力深度融入策略的回测(Backtesting)和验证流程。与传统量化框架不同,PyBroker 不只是帮你模拟买卖,它更关注策略在真实历史数据上的可重复性和过拟合风险的控制。
量化交易的本质是用数学模型替代人为情绪决策。但真正做过策略研究的人都知道,从一个「灵光一现」的交易想法,到一个稳定盈利的策略,中间隔着无数个坑:数据偏差、幸存者偏差、过拟合、交易成本遗漏、滑点模拟失真……任何一个环节处理不当,都会让回测结果看起来漂亮,实盘却一败涂地。
PyBroker 由独立开发者 edtechre 创建,主打「机器学习 + 量化回测」的结合点。它支持从 Yahoo Finance、Alpaca、AKShare 等多个数据源获取历史行情数据,并内置了行走前向分析(Walkforward Analysis)等高级回测方法,专门用来对抗模型过拟合。
PyBroker 的回测引擎底层基于 NumPy + Numba 加速。这在 Python 量化框架中属于较高配置。实测中,对于日线级别的多标的策略,回测速度通常比纯 pandas 实现快 5-10 倍。对于需要反复迭代参数的场景,这一优势直接决定了你能在有限时间内完成多少轮策略优化。
框架原生支持四大数据源:
这种多源设计让策略研究可以方便地做跨市场对比。例如,你可以用 Yahoo Finance 获取美股数据训练模型,再用 AKShare 验证模型在 A 股的适用性。
这是 PyBroker 最具特色的功能之一。传统的回测是用一段历史数据「验证」策略——但这会产生严重的过拟合问题:你用同一段数据反复调参,策略自然在这段数据上表现完美。
行走前向分析则采用滑动窗口的方式:用前 N 天的数据训练模型,在接下来 M 天上验证;然后窗口向前滑动,重复这个过程。这种方法模拟了「用历史数据做决策,在未来接受检验」的真实交易场景,能更真实地反映策略的预期表现。
# 使用行走前向分析,5个窗口,50%训练/50%测试
result = strategy.walkforward(timeframe='1m', windows=5, train_size=0.5)
传统回测报告通常给出夏普比率、最大回撤等点估计值。PyBroker 额外提供了基于**随机引导法(Bootstrap)**的评估指标,能给出收益分布的置信区间,帮助你更清晰地理解策略的波动范围和尾部风险,而不仅仅是一个「看起来不错」的平均值。
框架内置了常用的技术指标(移动平均、RSI、MACD 等),同时也支持用户自定义指标,与策略执行函数无缝对接。指标结果会自动缓存(基于 diskcache),重复运行时直接复用,大幅加快迭代速度。
PyBroker 提供了 pybroker.model() 装饰器,允许用户以函数形式注册任意机器学习模型和对应的训练函数。配合 walkforward 使用,可以实现完整的「训练→预测→回测」闭环。scikit-learn、PyTorch、XGBoost 等主流 ML 框架均可无缝接入。
my_model = pybroker.model('my_model', train_fn, indicators=[...])
strategy.add_execution(exec_fn, ['AAPL', 'MSFT'], models=my_model)
PyBroker 采用模块化分层架构,核心模块分层清晰:
pybroker.scope:全局配置与数据源管理pybroker.strategy:策略定义、信号生成、持仓管理pybroker.model:机器学习模型注册与执行pybroker.indicator:技术指标系统(含缓存)pybroker.portfolio:资金管理、仓位分配、平仓逻辑pybroker.cache:基于 diskcache 的数据持久化源码位于 src/pybroker/,结构规范,使用 Ruff 进行代码质量检查和格式化,pytest 覆盖了回测、数据、指标、模型等核心模块,代码规范度较好。
适合谁用:
门槛在哪里:
安装极简: pip install -U lib-pybroker,3 分钟搞定。依赖中包含 pandas、numpy、scikit-learn、numba 等主流科学计算库,一次安装全部搞定。
PyBroker 代表着「AI 民主化」在量化领域的延伸。它让没有量化团队的个人投资者,也能用上机构级别的策略验证工具。随着 AKShare 等开源数据源的成熟,以及 Numba 等加速技术的普及,个人量化研究的门槛正在快速下降。PyBroker 站在这个趋势的前沿,为 Python 开发者打开了一扇通往算法交易世界的大门。
对于想系统学习量化策略开发的 AI 开发者而言,PyBroker 是一个难得的实战平台——它不只是一个工具,更是一套完整的量化研究方法论的代码实现。