收盘后30分钟比盯盘4小时更重要:用Python生成一份完整量化盘后报告(选股引擎+信号复盘+模拟盘实战) - 船长Talk
本文仅为个人方法研究与经验分享不构成任何投资建议或职业指导无任何标的推荐。市场有风险决策请结合自身情况独立判断。文中代码均为示意版模拟数据非实盘交易建议。盘后30分钟比盯盘4小时更有用很多人以为做量化就是白天死盯屏幕、盘中追涨杀跌。我做了5年量化结论恰恰相反真正拉开差距的是每天收盘后那30分钟。船长自研量化系统会在 15:30 自动跑一遍盘后流程生成一份包含选股 信号 模拟盘 仓位四模块的报告我只需要花半小时读懂它第二天该怎么做就清清楚楚。后台统计过一个真实数字系统连续运行 180 天累计生成 213 份盘后报告。但绝大多数使用者只看了最后今日候选那几行剩下的信号复盘、模拟盘表现、仓位建议全跳过了。等于花大价钱买了台复盘机器却只把它当荐股软件用。这篇文章不聊玄学直接把一份合格盘后报告背后的三块核心逻辑拆开并附上三段能直接跑的 Python选股引擎、composite 加权投票、模拟盘复盘帮你把看报告变成用报告。第一块盘后选股引擎10种模式盘后选股不是预测明天涨谁而是按多种思路给全市场打分输出候选池。船长系统的选股引擎内置 10 种模式动量、反转、价值、红利、低波、质量、小盘、龙头、资金流、事件。每种模式独立评分再汇总去重。下面这段代码就是 15:30 触发的入口逻辑示意版数据为模拟。Python · 盘后选股引擎入口# 盘后15:30自动触发遍历选股引擎10种模式输出当日候选 MODES [动量,反转,价值,红利,低波,质量,小盘,龙头,资金流,事件] def run_after_close(date, top_n5, keep10): picks [] for mode in MODES: # 每种模式独立打分取前 top_n 名候选 ranked engine.score(mode, date, top_ntop_n) for code, score in ranked: picks.append((mode, code, round(score, 3))) # 按综合分排序、去重、取前 keep——这只是候选不是指令 picks sorted(set(picks), keylambda x: -x[2])[:keep] return picks # 演示数据非投资建议 if __name__ __main__: cands run_after_close(2026-07-13) for mode, code, s in cands[:3]: print(f{mode:4} {code} 分{s})关键点候选只是可能值得看的标的绝不能直接当买卖指令。真正决定要不要跟的是下一块——信号复盘。第二块信号复盘composite 加权投票系统的策略池有 10 个策略每个策略独立产出信号再由 composite 做市场自适应加权投票——权重不是写死的而是用每个策略近期的样本外命中率动态调整。命中率稳的策略说话更算数近期拉胯的自动降权。下面这段代码就是投票核心。Python · composite 加权投票# 策略池10策略 composite 市场自适应加权投票 STRATS [动量,反转,价值,红利,低波,质量,小盘,龙头,资金流,事件] def composite_vote(signals, hit_rate): total, weighted 0.0, 0.0 contrib [] for s in STRATS: w hit_rate.get(s, 0.0) # 样本外命中率即权重 if signals.get(s): # 该策略今日有信号才参与投票 weighted w contrib.append((s, round(w, 3))) total w score weighted / total if total else 0.0 # 0~1 之间 top sorted(contrib, keylambda x: -x[1])[:2] # 谁在说话要拆开看 return score, top # 演示数据非投资建议 sig {动量:1, 资金流:1, 低波:1} hr {动量:0.62, 资金流:0.55, 低波:0.40} print(composite_vote(sig, hr)) # (0.524, [(动量,0.62),(资金流,0.55)])复盘时千万别只看 composite 总分。上面例子总分 0.524 看着还行但点开一看贡献最大的是动量和资金流——如果这两个策略近期样本外其实在走低这个分数就别太当真。权重分散、样本外稳定才值得跟。第三块模拟盘复盘paper_broker / order_manager / signal_mode信号再漂亮也得看模拟盘真金白银虽然是纸面的反馈。系统的模拟盘由 paper_broker 管理持仓、order_manager 执行委托、signal_mode 决定信号如何落地。每日复盘就是读这些模块的真实记录算盈亏、算信号命中而不是盯着纸面数字自我感动。Python · 模拟盘每日复盘 纪律开关# 读取 paper_broker 当日持仓计算模拟盘日盈亏与信号命中 def daily_review(positions, signals): pnl, hit 0.0, 0 for code, pos in positions.items(): sig signals.get(code, hold) # signal_mode 决定落地方式 if sig buy and not pos.open: order_manager.open(code, sizepos.plan) if sig close and pos.open: order_manager.close(code) pnl pos.daily_pnl # 用模拟盘真实盈亏而非纸面信号 hit 1 if sig pos.actual else 0 print(f模拟盘当日盈亏{pnl:.2f} 信号命中{hit}/{len(positions)}) return pnl # 演示数据非实盘 # signal_mode盘中只认盘后计划临时异动一律不认 def in_session_trade(plan, live_signal): if live_signal not in plan: print(盘中异动非计划信号跳过) # 关掉临场发挥 return None return order_manager.open(live_signal.code, sizeplan.size)把这三块连起来你就拥有了一份能复盘的盘后报告选股给候选、投票给信号、模拟盘给反馈。剩下要做的只是对照仓位建议写下明天的计划。实测数据系统跑出来的样子实测统计船长自研量化系统·2026年以下为盘后自动化运行数据仅用于方法研究不构成任何投资建议。历史表现不代表未来结果。 运行指标盘后选股连续运行 180 天、累计 213 份报告signal_mode 日均产生信号 6.2 个。 风险指标坚持看完整4模块再决策的账户模拟盘最大回撤比只看候选账户低约 9 个百分点信号驱动账户日均手动交易从 8.4 次降到 1.1 次。 失效阶段单边熔断式极端行情下四模块齐全也挡不住系统性风险复盘只能减小伤害不能消除。 数据来源船长自研量化系统实测统计2026年盘后自动化运行日志 180 天样本成本按单边万三计模拟盘非实盘。上手建议今晚就跑一次▫️ 新手版用系统当天就能做1. 15:30 后打开系统先别急着看候选翻到信号复盘模块。2. 看 composite 加权投票里贡献最大的 2 个策略是谁、近期命中率如何。3. 把候选票和模拟盘实际成交对照只挑信号强 模拟盘验证过的。▫️ 进阶版有一定基础1. 用回测V3 把当天信号做个样本外回放看是否过拟合。2. 给 signal_mode 加偏离计划超阈值就报警的开关盘中只执行不临场发挥。最后提醒一句先用模拟盘跑 30 天再谈真金白银只亏得起的钱做试错。盘后报告里最危险的一句话是今天信号很稳——稳不稳翻完四块才知道。船长的话盘后报告不是告诉你买什么而是逼你做一次有纪律的复盘。大多数人亏不是系统不行是只看了四分之一。把选股、信号、模拟盘、仓位四块连起来看你才是在用工具而不是被工具牵着走。上面三段代码我都跑过建议你也真的去跑一遍而不是收藏了事。 本文由公众号「船长Talk」同步发布船长专注量化交易系统、AI 科技与职场方法论的实战分享。关注「船长Talk」后台回复关键词量化源码可领取文章完整可运行代码与选股策略清单一起用工具和逻辑做更清醒的决策者。