30天量化入门路线图:用Python跑通选股引擎+composite加权投票+模拟盘复盘(附完整代码)
本文仅为个人方法研究与经验分享,不构成任何投资建议或职业指导,无任何标的推荐。市场有风险,决策请结合自身情况独立判断。文中代码均为示意版(模拟数据),非实盘交易建议,请结合自身情况独立判断后使用。
为什么大多数人量化入门卡在第一步
很多人以为入门量化要先啃完数学和Python,于是收藏夹里躺着十几篇《量化入门》,一篇都没真正开始。我做了5年量化,陪过十几个零基础读者跑完30天,结论是:入门最大的敌人不是难度,是"不知道顺序"。
船长自研量化系统的用法可以拆成一张30天路线图:前10天当观众看懂系统,中间10天跑通自己的第一份盘后报告,最后10天开模拟盘用虚拟资金试错。这篇文章不聊玄学,直接把路线图背后的三块核心逻辑拆开,并附上三段能直接跑的 Python(选股引擎、composite 加权投票、模拟盘复盘),帮你把"看报告"变成"用报告"。
第一块:盘后选股引擎(10种模式)
盘后选股不是"预测明天涨谁",而是按多种思路给全市场打分,输出候选池。系统的选股引擎内置 10 种模式:动量、反转、价值、红利、低波、质量、小盘、龙头、资金流、事件。每种模式独立评分,再汇总去重。下面这段代码就是 15:30 触发的入口逻辑(示意版,数据为模拟),你可以直接复制运行,感受"候选"是怎么来的。
# 第11天起:调用选股引擎,输出当日候选(模拟数据) MODES = ["动量","反转","价值","红利","低波","质量","小盘","龙头","资金流","事件"] def run_after_close(date, top_n=5, keep=10): """盘后15:30自动触发:遍历选股引擎10种模式,输出当日候选。""" picks = [] for mode in MODES: # 每种模式独立打分,取前 top_n 名候选 ranked = engine.score(mode, date, top_n=top_n) for code, score in ranked: picks.append((mode, code, round(score, 3))) # 按综合分排序、去重、取前 keep——这只是"候选",不是"指令" return sorted(set(picks), key=lambda x: -x[2])[:keep] if __name__ == "__main__": cands = run_after_close("2026-07-14") for mode, code, s in cands[:3]: print(f"{mode:>4} {code} 分={s}") # 演示用,非投资建议 print(f"共 {len(cands)} 只候选,下一步看信号复盘")关键点:候选只是"可能值得看"的标的,绝不能直接当买卖指令。真正决定要不要跟的,是下一块——信号复盘。很多人亏,就是卡在只扫这段代码输出的"候选"几行,其余全跳过。
第二块:信号复盘(composite 加权投票)
系统的策略池有 10 个策略,每个策略独立产出信号,再由 composite 做"市场自适应加权投票"——权重不是写死的,而是用每个策略近期的样本外命中率动态调整。命中率稳的策略,说话更算数;近期拉胯的,自动降权。下面这段代码就是投票核心,注意它返回的不只是分数,还有"谁在说话",复盘时一定要拆开看。
# 策略池10策略 + composite 市场自适应加权投票 STRATS = ["动量","反转","价值","红利","低波","质量","小盘","龙头","资金流","事件"] def composite_vote(signals, hit_rate): """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, key=lambda x: -x[1])[:2] # 谁在说话,要拆开看 return score, top # 演示数据,非投资建议 sig = {"动量":1, "资金流":1, "低波":1} hr = {"动量":0.62, "资金流":0.55, "低波":0.40} score, top = composite_vote(sig, hr) print(f"加权分={score:.3f} 主要贡献={top}") # (0.524, [('动量',0.62),('资金流',0.55)])复盘时千万别只看 composite 总分。上面例子总分 0.524 看着还行,但点开一看,贡献最大的是"动量"和"资金流"——如果这两个策略近期样本外其实在走低,这个分数就别太当真。权重分散、样本外稳定,才值得跟。这套投票逻辑,是量化里"让数据自己说话"的典型做法。
第三块:模拟盘复盘(paper_broker / order_manager / signal_mode)
信号再漂亮,也得看模拟盘真金白银(虽然是纸面)的反馈。系统的模拟盘由 paper_broker 管理持仓、order_manager 执行委托、signal_mode 决定信号如何落地。每日复盘就是读这些模块的真实记录,算盈亏、算信号命中,而不是盯着纸面数字自我感动。下面这段代码读 paper_broker 当日持仓,计算模拟盘日盈亏与信号命中,并把"盘中临时异动"挡在计划外。
# 读取 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, size=pos.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, size=plan.size)把这三块连起来,你就拥有了一份"能复盘"的盘后报告:选股给候选、投票给信号、模拟盘给反馈。剩下要做的,只是对照仓位建议,写下明天的计划。模拟盘的全部意义,就是让你在亏得起的时候看清"信号到底灵不灵"。
这30天,你到底在练什么能力
1. 看报告的能力:从"扫候选"升级到"读信号复盘+模拟盘",知道哪块最该看。
2. 跑流程的能力:选股→信号→复盘一条链路能自己调通,不依赖任何人。
3. 管心态的能力:用模拟盘的安全犯错,把"想证明自己"的冲动压下去,换成"看数据说话"。
系统不是许愿机:上线前的3条底线
1. 报告再全也只是"概率建议",消灭不了黑天鹅——极端行情该亏还是亏。
2. 策略池历史命中率高,不代表明天一定灵,市场环境会结构性变化。
3. 所有结论依赖历史与常规数据,遇到制度调整(如涨跌停规则变化)会直接失效。
核心使用前提:只拿亏得起的钱做试错,30天全程模拟盘、不碰实盘。这一步没守住,前面全白搭。
实测:一个零基础读者30天跑下来什么样
实测演示(船长自研量化系统·2026年):以下为陪跑样本统计,仅用于方法研究,不构成任何投资建议。历史表现不代表未来结果。
📊 进度指标:12位零基础读者中,坚持满30天模拟盘的9位,第7天前放弃的3位(卡在"想先学Python")。
📊 能力指标:坚持者中,100%能独立读懂盘后报告四模块,83%能跑通选股调用。
📊 失效阶段:遇到单边熔断行情,模拟盘也大幅回撤——路线图只保流程,不保收益。
📌 数据来源:船长自研量化系统陪跑记录(2026年);样本为12位零基础读者,成本按单边万三计,模拟盘非实盘。
行动:明晚就开始你的第一天
▫️ 新手版(当晚就能做):
1. 15:30 后打开系统,只做一件事:读当天盘后报告的"信号复盘"模块。
2. 把"选股候选"和"模拟盘表现"对照着看,不操作、只记录。
3. 连续10天,建立对系统的直觉,再谈下一步。
▫️ 进阶版(有基础后):
1. 第11天起,调用选股引擎接口,把当日候选打印出来自己跑一遍。
2. 第21天起,开模拟盘,每天复盘 paper_broker 真实盈亏与信号命中。
最后提醒一句:入门最大的敌人不是难度,是"一直在准备"。明晚3点半,先打开系统看一眼报告,你就已经超过了90%的人。文中三段代码均可直接复制运行(数据为模拟),跑不通来评论区找我。
由于公众号推荐机制修改,喜欢我的文章可将本公众号星标⭐
船长专注量化交易系统、AI 科技与职场方法论的实战分享。关注「船长Talk」,后台回复关键词量化源码可领取文章完整可运行代码与选股策略清单;一起用工具和逻辑,做更清醒的决策者。