ARTICLE DETAIL

资讯详情

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

PyBroker算法交易实战:3步跑通第一个机器学习回测策略

PyBroker算法交易实战:3步跑通第一个机器学习回测策略 PyBroker算法交易实战3步跑通第一个机器学习回测策略【免费下载链接】pybrokerAlgorithmic Trading in Python with Machine Learning项目地址: https://gitcode.com/gh_mirrors/py/pybroker当你熬夜写出一套交易规则想在历史行情上验证它到底能不能赚钱时却发现要么手工回测慢到怀疑人生要么自己写的回测代码bug一堆、结果根本不敢信。PyBroker这个Python算法交易框架就是为这套写规则→拉数据→跑回测→评估结果的流程而生的而且它把机器学习建模也直接整合进了回测链路。一句话说清PyBroker 是个把数据源→策略→模型→回测→评估串成一条流水线的算法交易工具箱重点支持把机器学习模型塞进策略里做买卖预测。适合想快速验证交易想法、又不想从零造回测引擎的 Python 开发者——新手和有一定经验的交易者都能直接上手。上手三步从安装到跑出第一张订单表第一步装好环境准备好数据源PyBroker 支持 Python 3.11一条命令即可安装pip install -U lib-pybroker想边看源码边学的话也可以把仓库克隆到本地慢慢啃git clone https://gitcode.com/gh_mirrors/py/pybroker数据源方面它内置了 Yahoo Finance、Alpaca、AKShare 等接入方式也可以挂上你自己的数据。对新手最友好的就是YFinance无需注册 API Key拿来就能用。第二步写下第一个策略并触发回测下面这段代码是一个经典的创10日新高买入规则策略价格突破过去10天的最高价就买入持有5根K线同时挂一个2%的止损。from pybroker import Strategy, YFinance, highest def exec_fn(ctx): high_10d ctx.indicator(high_10d) if not ctx.long_pos() and high_10d[-1] high_10d[-2]: ctx.buy_shares 100 ctx.hold_bars 5 ctx.stop_loss_pct 2 strategy Strategy(YFinance(), start_date1/1/2025, end_date8/1/2026) strategy.add_execution( exec_fn, [AAPL, MSFT], indicatorshighest(high_10d, close, period10)) result strategy.backtest(warmup20)注意warmup20指标需要至少20根K线才能算出有效值这个参数先记在心里后面避坑环节还会提到。第三步看懂回测结果别只盯一个收益率数字回测跑完后result里装着几样东西orders_df是逐笔订单明细metrics是收益率、夏普比率、最大回撤等汇总指标positions_df则是每天持仓的变化。上图就是orders_df的样子。每一行是一笔真实生成的订单你能看到开仓/平仓方向、成交标的、成交价、成交股数甚至能追溯到这笔单是由哪个信号触发的。养成先翻订单明细、再下结论的习惯比只看一个总收益率靠谱得多。实战进阶三个最值得先玩的功能进阶一把机器学习模型接进策略用 Walkforward 防马后炮PyBroker 最大的卖点就是模型训练和回测是长在一起的。你只需要注册一个模型在策略里读取它的预测值import pybroker from pybroker import Strategy def train_fn(symbol, train_data, test_data): # 用指标特征训练模型 return trained_model my_model pybroker.model(my_model, train_fn, indicators[...]) def exec_fn(ctx): preds ctx.preds(my_model) if not ctx.long_pos() and preds[-1] 0.6: ctx.buy_shares 100 elif ctx.long_pos() and preds[-1] 0.4: ctx.sell_all_shares() strategy.add_execution(exec_fn, [AAPL], modelsmy_model) result strategy.walkforward(windows5, train_size0.5)这里walkforward是重点它会像实盘一样把数据切成多个窗口始终用过去的数据训练、未来的数据验证避免你用整段历史训练完再去回测同一段历史得出一个漂亮但虚假的收益。想判断策略是否真的能打这一步绕不开。进阶二自定义指标几行代码注册进策略内置指标不够用PyBroker 支持用纯 Python 写自己的指标函数注册后就能在策略里通过ctx.indicator(...)取到用法和内置指标完全一致。写指标时可以访问完整的价格序列自由度很高适合把你独特的交易逻辑沉淀成可复用代码。进阶三缓存 参数优化别让等待拖垮开发节奏下载的数据、计算过的指标、训练好的模型都可以被缓存。你会发现调参时数据不用反复下载、指标不用反复重算开发节奏明显变快。再配合参数优化工具把策略参数范围丢进去自动搜索最优组合相当于给策略开发加了个自动寻优外挂。避坑提醒新手最容易踩的三个坑忘设warmup导致结果全是 NaN。指标前几根K线算不出值如果你在ctx.indicator(...)里拿到空值还去做比较轻则报错、重则回测结果悄悄出错。我一开始就吃过这个亏后来养成习惯凡是加了指标先想清楚需要多少根K线的预热期。日期格式和时区没对齐。YFinance 的start_date用的是1/1/2025这种格式写错成2025-01-01某些数据源也能解析但不同数据源行为不一致最稳妥的办法是统一按官方示例的格式写并留意数据是否真的有覆盖到起止日期。把零成本理想回测当成实盘收益。默认回测里手续费、滑点都是零模型在盘中跑和盘后回测的表现也有差异。PyBroker 提供了滑点建模等工具记得在回测里把这些成本加上评估结果才接近真实。下一步从跑通一个 Notebook 开始看完这篇文章你已经知道了 PyBroker 解决什么问题、怎么装、怎么跑第一个回测、以及有哪些坑。剩下的就是动手克隆仓库从Getting Started with Data Sources这个 notebook 开始把数据源跑通再依次体验规则策略、模型策略和 Walkforward 回测。别想着一口气全部学会先让第一个策略在屏幕上跑出订单表格你就已经跨过算法交易入门最大的那道坎了。现在就去试试吧。【免费下载链接】pybrokerAlgorithmic Trading in Python with Machine Learning项目地址: https://gitcode.com/gh_mirrors/py/pybroker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表