概念笔记
把机器学习用到股票预测(落地流程与坑)
把分类器用到「预测次日涨跌」的标准流程:技术指标当特征 → 连续特征离散化成 ±1 → 以「次日收盘是否更高」为标签训练 SVM/朴素贝叶斯/随机森林 → 每个交易日把今天数据并入训练集、重训新模型。量化课堂的 ML 应用篇(43 篇)强调两件事:股市噪声大,特征必须离散化防过拟合;这套流程只演示「怎么用算法」,不担保预测准确与收益。
一句话
「先用 talib 算 13 个指标、再全砍成 ±1、每天重训一个分类器去猜明天涨跌。」流程本身能跑;但能不能赚钱是另一回事——ML 批次里所有篇都只演示用法,低频量化的可交易性要靠回测方法论来审。
当前理解
- 特征(43 篇):
get_price取前 35 个交易日 OHLCV(frequency='daily',fields=close/high/low/volume),talib 算 13 个技术指标:SMA/WMA/MOM/STCK/STCD/MACD/RSI/WILLR/CCI/MFI/OBV/ROC/CMO。 - 标签:下一交易日收盘价 > 当日收盘价 → True;否则 False。
- 特征离散化(防过拟合核心):talib 输出连续值;股市噪声多 → 连续值直接进模型易过拟合(回测好、实盘差)。把每个特征离散成 ±1:如 SMA<当日收盘 → 1,否则 −1(按各指标含义选比较基准)。把「幅度噪声」砍成「相对高低方向」,留更稳的定性关系。
- 滚动重训:每个交易日把今天样本加进训练集、重训新模型——市场分布非平稳,跟上新分布才不过时;代价是每天训练。
- 应用:
svm.SVC()→ fit(x_train,y_train) → predict(x_test);朴素贝叶斯、随机森林同套路。原理篇:朴素贝叶斯 = 37 篇(postId 1727,已收录);SVM(1510)、随机森林(1571)未收录本库。 - 同类把戏的谱系:37/42 篇用 SMA/WMA/MOM 三指标演示朴素贝叶斯/神经网络——43 篇是这套演示的「13 特征 + 多算法 + 每天重训」工程化升级,机器学习八篇的收官。
- 诚实的基调(贯穿 36–43):41 篇说 toy 数据的 97% 在真实涨跌达不到;42 篇说「人脑也未必准」;43 篇只到「预测对错」为止。ML 在低频量号的作用是「给策略配学习器」,不是印钞机。
来源
- 手把手教你如何应用机器学习 — 核心(量化课堂第 43 篇,postId=1900)
- 关联概念:朴素贝叶斯(贝叶斯定理 + 条件独立 + 后验最大化的分类器)(三算法之一的原理)、熵与信息增益(衡量特征/因子带来多少信息)(特征有效性/特征选择的 ML 理论起点)、kNN(k 最近邻分类)(另一个分类器家族,同为「分类器预测涨跌」)、聚宽行情与财务数据获取 API(get_price/get_all_trade_days 等平台 API)
- 相关素材:朴素贝叶斯入门、神经网络入门
常见混淆
- 「防过拟合的离散化」≠「随便丢信息」:砍的是噪声幅度,留的是「相对价格高低」的方向——不是任意二值化,比较基准要按各指标含义定。
- 「每天重训」≠「策略自动赚钱」:原文没有回测/胜率/收益数字;预测对错到真金白银之间还差股票池、仓位、调仓、成本、容量整套东西。
- 技术指标当特征 ≠ 截面因子选股:43 篇是「单只股票、时序、次日方向分类」;因子选股(排名 / 打分 / 阈值筛选) 是「全市场横截面排序」。两者都叫「特征/因子」,机制完全不同,别混。
- 单日测试样本(37/42 篇的 2016-6-3)只是跑通代码,不是验证;正确率要在长样本、样本外测。
- 算法能算 ≠ 低频有效:本库 ML 批次全是「算法原理 + 用法演示」;能不能稳定赚钱,要交给回测方法论(W9 QuantStart)去审——这正是本库把「策略库」和「验证方法论」分开收的原因。
开放问题
- 13 个指标离散化的比较基准逐指标怎么设(43 篇只示范了 SMA)[需要验证]。
- 特征高度相关(技术指标同源)时的去冗余没处理;信息增益(36 篇)也没有多特征联合框架。
- 滚动重训的频率/窗口长度对性能的影响、与「简单规则基线」的对照,都没讨论。
- 预测正确率即便 >50%,扣完交易成本是否仍有超额——低频语境里这是开放问题;43 篇的代码也只到预测层。
来源
更新 2026-09-06