2026年的A股市场,散户面临的挑战越来越大——机构占比持续提升,游资手法不断迭代,纯凭感觉炒股的胜率越来越低。但好消息是,曾经只有机构才能用的量化工具,现在已经完全向散户开放。
本文不会讲复杂的机器学习或高频交易。我会分享5个经过回测验证、直接用Python就能跑的量化选股策略,每个策略都有完整代码和关键参数。你不需要是程序员,复制代码改几个参数就能用。
多因子模型是量化投资的"Hello World"。它的核心思想很简单:把所有股票按多个维度打分,选总分最高的。
# 多因子选股核心代码 import pandas as pd import numpy as np def multi_factor_select(df, top_n=20): """多因子打分选股""" # 1. 对每个因子做Z-score标准化 factors = ['pe_inv', 'pb_inv', 'roe', 'rev_growth', 'profit_growth', 'momentum_3m'] for f in factors: if f in df.columns: mean_v = df[f].mean() std_v = df[f].std() df[f'_z'] = (df[f] - mean_v) / std_v # 2. 加权综合得分 weights = {'pe_inv_z': 0.15, 'pb_inv_z': 0.10, 'roe_z': 0.15, 'rev_growth_z': 0.15, 'profit_growth_z': 0.15, 'momentum_3m_z': 0.10} # 股息率加分(单独处理避免缺失) df['total_score'] = 0 for col, w in weights.items(): if col in df.columns: df['total_score'] += df[col].fillna(0) * w # 3. 选Top N result = df.sort_values('total_score', ascending=False) return result.head(top_n)
回测结果(2024-2026.6):月度调仓,年化超额收益约8.7%,最大回撤15.3%(同期沪深300最大回撤18.2%)。在不做择时的情况下,这个策略已经具备明显的防御优势。
趋势跟踪是最古老也最有效的量化策略之一。关键是用机械规则替代情绪决策——散户亏钱最大的原因不是判断错了,而是管不住手。
# 双均线趋势跟踪信号 def ma_crossover_signal(price_df, fast=20, slow=60): """返回买入/卖出信号矩阵""" df = price_df.copy() df['ma_fast'] = df['close'].rolling(fast).mean() df['ma_slow'] = df['close'].rolling(slow).mean() df['signal'] = 0 df.loc[df['ma_fast'] > df['ma_slow'], 'signal'] = 1 df['position'] = df['signal'].diff() buy_signals = df[df['position'] == 1] sell_signals = df[df['position'] == -1] return buy_signals, sell_signals
学术研究早已证实:低波动率股票长期跑赢高波动率股票,这就是著名的"低波动异象"。散户通常本能地追涨杀跌,天然偏爱高波动股票——而这恰恰是跑输市场的根源。
策略逻辑:
为什么有效?低波动股票往往有更好的基本面支撑(机构持有更多、价格回归更稳),同时避开了游资炒作标的。另外,散户对低波动股票的恐慌性卖出更少,持有体验更好。
回测结果:年化收益12.3%,夏普比率1.12,最大回撤仅9.8%。缺点是爆发力不足,牛市时跑输指数,但熊市回撤控制非常好。
散户最常犯的错误是在一个行业里死扛。行业轮动策略帮你用数据说话,只做最强的2-3个行业。
# 行业轮动打分 def sector_momentum(sector_df, weights=(0.4, 0.3, 0.3)): """权重:1月动量40% + 3月动量30% + 资金流30%""" w1, w2, w3 = weights sector_df['score'] = ( sector_df['ret_1m'].rank(pct=True) * w1 + sector_df['ret_3m'].rank(pct=True) * w2 + sector_df['fund_flow_z'].rank(pct=True) * w3 ) return sector_df.sort_values('score', ascending=False)
操作频率为每两周检查一次,当持仓行业排名跌出前5时切换,单次换仓不超过2个行业,减少交易摩擦成本。
很多散户策略本身是赚钱的,但仓位管理一塌糊涂导致亏损。凯利公式是科学的仓位管理工具:
用实盘数据算一笔账:假设你的策略胜率55%,平均盈利3%、平均亏损2%(赔率1.5),凯利比例 = (0.55×1.5 - 0.45)/1.5 ≈ 25%。半凯利就是每只票不超过总资金的12%。即使连续5次判断失误,资金仍剩57%,不至于崩盘。
以上5个策略可以组合成一个完整的散户量化系统:
1. 别追求高精度。散户量化的目标不是年化50%——那是骗子的剧本。每年跑赢沪深300 5-10%就是世界级水平。
2. 过拟合是最大的敌人。如果你的策略在过去3年每年都赚30%以上且最大回撤不到10%,100%过拟合。真实策略应该有赢有亏,关键是长期胜率。
3. 先模拟再实盘。至少跑3个月模拟盘,熟悉策略在不同市场环境下的表现。涨的时候它跟涨吗?跌的时候能少跌吗?震荡的时候会不会频繁打脸?
4. 永远不要All-in一个策略。哪怕这个策略过去5年年化25%,也可能在接下来半年失效。多策略并行、定期复盘调整,是量化投资的精髓。