新闻详情

新闻详情

首页 / 资讯中心 / 详情

从信号到净值曲线:PanWatch 轻量事件式回测是如何实现的

发布时间:2026/10/1 16:07:13来源:尧图网络
从信号到净值曲线:PanWatch 轻量事件式回测是如何实现的
从信号到净值曲线PanWatch 轻量事件式回测是如何实现的【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK US markets, powered by TradingAgents. Portfolio insights, real-time alerts automated reports.盯盘侠覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatchPanWatch 是一款覆盖 A股、港股与美股的 AI 盯盘工具除了实时监控与提醒它还内置了一套轻量事件式回测引擎纯 Python、零第三方依赖把策略信号和历史 K 线输入后模拟真实买卖流程最终产出每笔交易明细、净值曲线与夏普比率、最大回撤等绩效指标帮助新手判断这个信号到底值不值得跟。为什么选事件式而不是向量化回测回测框架通常有两条路线向量化如 vectorbt速度快但抽象复杂和事件式逐 bar 模拟真实交易流程贴近实盘逻辑。PanWatch 选择了一条极简的事件式路线——整个内核只依赖标准库核心动机有三点无未来函数信号日之后才能入场杜绝偷看未来数据的回测陷阱可离线测试数据适配层延迟导入网络库单元测试全程用合成数据跑通不触发任何网络请求成本口径可复用回测Phase 0与模拟盘Phase 1共用同一套 A 股交易成本模型保证回测赚的钱和模拟盘赚的钱口径一致。模块入口见 src/modules/strategy/backtest/init.py。回测主流程一个信号如何变成一条净值曲线整条链路在 engine.py 中实现流程可以概括为四步1️⃣ 定义信号每条回测信号由 Signal 描述字段直接对齐生产环境的策略信号运行记录字段含义signal_date信号产生日YYYY-MM-DDstop_loss/target_price止损位 / 止盈位holding_days最大持有交易日默认 10 天2️⃣ 下一交易日开盘入场引擎通过 first_index_after 找到信号日之后第一根 K 线用它的开盘价成交——这就是防 look-ahead的关键一步。仓位默认每笔固定名义资金且买入股数必须是 100 股的整数倍符合 A 股一手规则见 fixed_cash_sizer。3️⃣ 逐日检查四类出场事件入场次日起遵守 T1买入当日不可卖每天按顺序检查stop_loss止损当日最低价 ≤ 止损位按止损价成交target止盈当日最高价 ≥ 止盈位按止盈价成交expire到期持有满holding_days个交易日的收盘价平仓eod数据结束K 线用完仍未触发按最后一根收盘强平。两个细节很实盘跳空处理开盘价已越过止损/止盈位时直接按开盘价成交而不是理想价格同日双触保守判定止损与止盈同一天都触及时保守判为先止损避免高估收益。4️⃣ 聚合净值曲线Backtester.run 对批量信号逐笔回测后按平仓日排序把每笔已实现盈亏累加到期初资金上生成equity_curve与equity_dates——这就是你看到的净值曲线。Phase 0 采用按平仓日累积已实现盈亏的简化口径并发持仓的逐日浮动标记留作后续扩展。模拟盘页面上的净值曲线正是同一套口径的直观呈现A 股交易成本模型回测不裸奔很多人回测好看、实盘亏钱根源在于忽略了交易摩擦。cost_model.py 把 A 股散户的真实成本完整建模成本项默认参数印花税卖出单边 0.05%佣金双边万 2.5单笔最低 5 元过户费双边 0.001%滑点5 个基点买入价上滑、卖出价下滑CostModel.round_trip_pnl会把买卖两腿的现金流加总得到净盈亏。单元测试里有一条很直观的断言同价买入卖出结果必然是净亏损——因为成本与滑点会吃掉所有利润这正说明了成本建模的价值见 tests/test_backtest.py。绩效指标从净值曲线读出策略质量metrics.py 用纯函数把净值曲线和每笔盈亏翻译成一套完整指标总收益率 / 年化收益率按 252 个交易日年化最大回撤峰值到谷底的最大跌幅夏普比率年化后的风险调整后收益胜率 / 盈亏比正收益笔数占比、总盈利与总亏损之比平均盈利 / 平均亏损 / 总盈亏。summarize一次汇总成 dict方便直接落到报告或页面上展示。交叉验证回测口径与线上评估对齐PanWatch 线上还有一个独立的信号结果评估流程evaluate_strategy_outcomes按 1/3/5/10 天 horizon 复盘每条信号的真实表现。回测内核特意提供了 horizon_return复刻同一口径用于交叉验证——两套数据互相印证避免回测系统自己骗自己。小结PanWatch 的回测模块用不到 1000 行纯 Python 代码搭起了一条从信号 → 逐日事件模拟 → 扣费成交 → 净值曲线 → 绩效指标的完整链路事件式内核src/modules/strategy/backtest/engine.py交易成本模型src/modules/strategy/backtest/cost_model.py绩效指标src/modules/strategy/backtest/metrics.py数据适配与日历对齐src/modules/strategy/backtest/data_adapter.py单元测试tests/test_backtest.py对新手来说这套设计传递了一个务实的理念回测的价值不在框架多华丽而在规则是否贴近真实交易——次日开盘入场、T1 限制、跳空成交、手续费与滑点一个都不少。理解了这套轻量回测再看 PanWatch 的信号与模拟盘数据就能明白那些数字是怎么来的了。【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK US markets, powered by TradingAgents. Portfolio insights, real-time alerts automated reports.盯盘侠覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

HTML5论文参考文献检索指南:按场景分类的实用文献地图 2026/10/1 16:54:33

HTML5论文参考文献检索指南:按场景分类的实用文献地图

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
软件测试缺陷管理全流程:从缺陷报告到生命周期与质量分析 2026/10/1 16:54:33

软件测试缺陷管理全流程:从缺陷报告到生命周期与质量分析

软件测试做到一定阶段,你会发现一个特别有意思的现象:用例设计得再漂亮、执行得再勤快,如果缺陷管理一塌糊涂,整个项目的质量数据就是一笔糊涂账。测试人员提了一堆bug,开发改了一堆bug,但版本到底稳不稳定…

阅读更多 →
海光1000系列CPU选型与迁移实战:从x86兼容到性能验证 2026/10/1 16:54:33

海光1000系列CPU选型与迁移实战:从x86兼容到性能验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Selenium Web自动化测试实战:从环境搭建到框架落地 2026/10/1 16:54:33

Selenium Web自动化测试实战:从环境搭建到框架落地

很长一段时间里,我面试测试开发岗位时,总会抛出一个问题:“你写自动化脚本,第一个用例是跑通就收工,还是会继续想页面元素为什么这样定位、等待为什么这样写?”十个人里有八个倒在第二问上。这其实也是很多…

阅读更多 →
SpringBoot核心原理与生产实践:自动装配、配置体系与Docker部署详解 2026/10/1 16:54:33

SpringBoot核心原理与生产实践:自动装配、配置体系与Docker部署详解

SpringBoot这块在国内的讨论热度一直没降过。不管是刚入行的新人,还是从SSM转过来的老工程师,都绕不开它。但要真正讲清楚SpringBoot,不能只停留在“它简化了配置”这个层面,那样太泛了。我结合这些年在项目里的实际使用经历&…

阅读更多 →
Unity3D双人联网跑酷:状态同步与UDP实战 2026/10/1 16:54:26

Unity3D双人联网跑酷:状态同步与UDP实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉