30天量化入门路线图:用Python跑通选股引擎+composite加权投票+模拟盘复盘(附完整代码)
本文仅为个人方法研究与经验分享,不构成任何投资建议或职业指导,无任何标的推荐。市场有风险,决策请结合自身情况独立判断。文中代码均为示意版(模拟数据),非实盘交易建议,请结合自身情况独立判断后使用。
为什么大多数人量化入门卡在第一步
很多人以为入门量化要先啃完数学和Python,于是收藏夹里躺着十几篇《量化入门》,一篇都没真正开始。我做了5年量化,陪过十几个零基础读者跑完30天,结论是:入门最大的敌人不是难度,是"不知道顺序"。
船长自研量化系统的用法可以拆成一张30天路线图:前10天当观众看懂系统,中间10天跑通自己的第一份盘后报告,最后10天开模拟盘用虚拟资金试错。这篇文章不聊玄学,直接把路线图背后的三块核心逻辑拆开,并附上三段能直接跑的 Python(选股引擎、composite 加权投票、模拟盘复盘),帮你把"看报告"变成"用报告"。
第一块:盘后选股引擎(10种模式)
盘后选股不是"预测明天涨谁",而是按多种思路给全市场打分,输出候选池。系统的选股引擎内置 10 种模式:动量、反转、价值、红利、低波、质量、小盘、龙头、资金流、事件。每种模式独立评分,再汇总去重。下面这段代码就是 15:30 触发的入口逻辑(示意版,数据为模拟),你可以直接复制运行,感受"候选"是怎么来的。
# 公重号:船长Talk
# 第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%的人。文中三段代码均可直接复制运行(数据为模拟),跑不通来评论区找我。
更多推荐



所有评论(0)