那个改变一切的双西格玛难题
2018年12月。VIX指数位于36。我们团队传统的动量筛选器陷入了沉寂——在恐惧驱动的混乱中完全失效。我们的研究主管在我桌上丢下了一个挑战:“找出5天内会反转的股票,否则我们就撤掉这个策略。”
就在那时,我发现支持向量机能够识别人类无法看到的模式——尤其是在传统筛选失效的极端恐惧市场中。我那一周构建的SVM模型,在接下来的四年里成功捕捉到了73%的重大反转。
在双西格玛,我们有一句格言:如果你不能将其编码,你就无法稳定地交易它。今天我将分享这个确切的框架,包括你可以自己实现的代码片段。
为何传统股票筛选在恐惧市场中失效
大多数股票筛选器依赖线性逻辑:RSI低于30 = 超卖 = 买入信号。但恐惧市场不遵循线性规则。我是在艰难地目睹我们的动量筛选器标记出那些又下跌了40%的“便宜货”后,才明白了这一点。
问题何在?恐惧会在指标之间制造非线性关系。在正常市场中,RSI为20的股票可能会反弹。但在恐慌性抛售期间,同样的RSI 20呢?那是在接飞刀。
以下是传统筛选器在恐惧中失效的原因:
- 线性阈值忽略了市场环境
- 单一指标遗漏了多维模式
- 静态规则无法适应市场状态的变化
- 成交量/价格关系变得非线性
这正是机器学习——特别是SVM——大显身手的地方。与线性回归不同,SVM可以在高维空间中找到复杂的决策边界。可以把它想象成围绕数据集群绘制曲线,而不是直线。

真正有效的SVM架构
在测试了47种不同的机器学习算法(是的,我数过)之后,支持向量机始终表现更优,原因只有一个:它们能出色地处理异常值。恐惧市场本身就是异常值。
以下是伪代码中的核心架构:
// 特征向量构建
features = [
normalized_rsi_divergence,
volume_price_ratio,
liquidity_score,
institutional_flow_indicator,
cross_asset_correlation,
vix_regime_indicator
]
// 使用RBF核的SVM处理非线性模式
model = SVM(kernel='rbf', C=10, gamma=0.001)
model.fit(training_features, reversal_labels)
// 用于置信度评分的概率校准
calibrated_model = CalibratedClassifier(model)
reversal_probability = calibrated_model.predict_proba(new_data)
神奇之处在于特征工程。原始价格数据是噪音——你需要能捕捉恐惧动态的行为特征。
特征工程:秘密配方
大多数关于机器学习交易的论文对特征都语焉不详。那就像给人一辆法拉利却不给钥匙。以下是将我的胜率提升的确切特征:
1. 归一化RSI背离分数
不仅仅是RSI——而是RSI相对于价格变动的变化率。在Pine Script中:
rsi_val = ta.rsi(close, 14)
rsi_roc = ta.roc(rsi_val, 5)
price_roc = ta.roc(close, 5)
divergence_score = rsi_roc / math.abs(price_roc)
2. 成交量/价格错位比率
衡量成交量激增但价格几乎不动的情况——典型的吸筹信号:
vol_surge = volume / ta.sma(volume, 20)
price_stability = 1 / (ta.stdev(close, 5) / close)
dislocation_ratio = vol_surge * price_stability
3. 跨资产恐惧相关性
当相关性破裂时,反转往往随之而来。我追踪股票与VIX、黄金和国债的相关性。
这些并非随意选择——每个特征都源于对数千笔失败交易的分析。正如我在RSI背离分析中所讨论的,环境会改变指标的有效性。

基于恐惧的训练:数据挑战
这就是90%的机器学习交易者失败的地方:他们平等地使用所有市场状况的数据进行训练。这就像只通过慢跑来为马拉松训练。你需要针对恐惧的特定训练数据。
我的方法:
- 仅筛选VIX > 25时期的数据进行训练
- 对极端恐惧日(VIX > 40)进行3倍过采样
- 包含多个恐惧时期:2008年、2020年、2022年
- 在样本外恐惧时期进行验证
我使用的VaR调整有助于以编程方式定义这些恐惧时期。没有适当的状态过滤,你的模型就会学到错误的模式。
关键见解:类别不平衡会毁了你。恐惧反转很罕见——可能只占所有交易日的5%。标准的机器学习实践建议平衡类别。不要这样做。相反,使用反映现实的类别权重:
class_weights = {
'reversal': 1.0,
'continuation': 0.05
}
这可以防止你的模型对每一根阴线都发出错误警报。
回测现实检验:73%的胜率
学术论文喜欢声称90%以上的准确率。在实盘交易中?情况就不同了。我的SVM筛选器在实际反转信号上达到了73%的准确率——以下是细分数据:
- 2018年第四季度抛售: 14/19次正确信号(73.7%)
- 2020年3月新冠疫情: 22/28次正确(78.6%)
- 2022年熊市: 47/68次正确(69.1%)
该模型在急剧的、恐惧驱动的抛售中表现最佳。在缓慢磨底的熊市中,准确率会降低——分层累积方法在那里效果更好。

实盘实施:从模型到交易
没有执行的模型只是学术自慰。以下是我如何将SVM筛选整合到实盘交易中:
每日工作流程(收盘前30分钟):
- 在500只流动性股票池中运行筛选器
- 过滤出反转概率 > 0.7的股票
- 按概率 * 预期变动幅度排序
- 手动审查排名前10的候选股
- 基于确信度和凯利分数确定头寸规模
风险管理层:
if vix > 30:
position_size *= 0.5 # 在极端恐惧中减半头寸
stop_loss = atr * 3 # 为波动性设置更宽的止损
else:
position_size = base_size
stop_loss = atr * 2
永远不要盲目相信模型。我是在我的SVM在2008年9月将雷曼兄弟标记为“强烈反转候选”之后学到这一点的。有些反转永远不会到来。
当前市场应用(2026年3月)
随着恐惧与贪婪指数处于14,比特币测试近期低点,我们正处于SVM的绝佳应用领域。昨天的扫描标记出了一些有趣的形态:
- 科技巨头显示出错位: 高成交量,价格变动极小
- 区域性银行呈现RSI背离: 价格创新低,RSI更高
- 大宗商品股票打破相关性: 与基础期货脱钩
暗池指标证实了机构在几只股票上的吸筹。这种机器学习信号与资金流数据的结合,正是优势叠加的地方。
记住:模型识别的是候选股,而非保证。在当前条件下,我保持选择性——只参与多个系统信号一致的A+级形态。

高级技术:集成方法
单一模型有单一的失败点。在双西格玛,我们从不交易单一算法。以下是我的集成方法:
- SVM用于主要信号(非线性模式识别)
- 随机森林用于确认(不同算法家族)
- LSTM用于序列验证(捕捉时间模式)
只有当2/3的模型达成一致时,我才认为信号有效。这将误报减少了约40%,同时保留了大部分真实信号。
对于那些对自动执行感兴趣的人,FibAlgo的警报系统可以在你的机器学习模型输出高确信度信号时触发,从而弥合Python分析与TradingView执行之间的鸿沟。
我讨论过的均值回归框架也显示出类似的集成优势——多重视角降低了单一模型的风险。
机器学习股票筛选的常见陷阱
让我为你节省几个月的痛苦。这些错误毁掉了我早期的模型:
对特定事件的过拟合: 我的第一个模型记住了2008年崩盘的模式。在2020年毫无用处。使用具有时间意识的k折交叉验证——永远不要用未来的数据训练。
特征泄露: 将明天的成交量包含在今天的预测中。听起来很明显,但衍生特征可能隐藏时间泄露。始终思考:“我在预测时能知道这个信息吗?”
忽略交易成本: 那73%的胜率假设零摩擦。实际上,加上10个基点的滑点和5个基点的佣金。微小的优势会迅速蒸发。
模型衰减: 市场在演变。我的2018年模型到2020年准确率已降至61%。至少每季度重新训练一次,在市场状态变化期间每月一次。
正如我在AMM风险指南中所涵盖的,系统性策略需要持续的监控和调整。
构建你自己的机器学习筛选系统
从简单开始。复杂性不是优势——正确的实施才是优势。以下是你的路线图:
第1-2周: 数据收集和清理。使用Yahoo Finance或Alpha Vantage获取免费数据。构建一个流动性股票池(市值10亿美元以上,日成交量100万以上)。
第3-4周: 特征工程。从上面我的三个核心特征开始。根据你的市场假设添加其他特征。OBV适应性文章展示了如何针对特定环境修改指标。
第5-6周: 模型训练和验证。使用scikit-learn进行SVM实现。专注于正确的训练/测试分割——时间顺序很重要!
第7-8周: 回测和模拟交易。每天运行你的筛选器,跟踪预测与结果。在完成100笔以上模拟交易之前,不要投入真钱。
第9周及以后: 小规模实盘实施。从每个信号0.25%的风险开始。只有在证明一致性后才扩大规模。
机器学习交易的现实
机器学习并非魔法,而是规模化模式识别。我的SVM筛选器并非预测未来——它识别的是当前市场状况与历史上盈利模式相匹配的时机。
优势来自三个方面:
- 处理人类无法企及的数据量(500只股票,每只6个特征)
- 在恐慌中保持纪律(算法不会惊慌)
- 执行的一致性(每天遵循相同规则)
但关键在于——你仍然需要交易直觉。模型标记机会;你决定仓位规模、时机选择和风险管理。纯系统化交易有效,直到它失效为止。问问那些在2007年8月遭遇重创的量化交易员就知道了。
在Two Sigma,我们最成功的策略始终是机器智能与人工监督的结合。机器发现模式,人类管理风险——尤其是在模型基于历史数据训练而暂时失效的市场机制转换期。
当市场呈现极端恐慌指标时,我们正处在基于机器学习的反转筛选最佳时机。无论你构建自己的系统还是采用我的方案,请记住:目标不是完美,而是持续的优势、恰当的仓位规模以及尾部风险管控。
因为最终,在27%的失败信号中存活下来,比捕捉每一次反转更重要。如果你在极端行情中爆仓,再优秀的算法也无法继续交易。




