乐于分享
好东西不私藏

OpenClaw 机器学习预测A股涨跌的系统架构

OpenClaw 机器学习预测A股涨跌的系统架构

独家整理,盗用必究

用 scikit-learn RandomForest,以MA/RSI/MACD/量比/布林带为特征,预测次日涨跌方向。测试集胜率62.8%,我把优缺点都说清楚。

▲ 系统架构图

■ OpenClaw 一句话,出ML预测结果

在浏览器打开 `http://localhost:18789`,对话框输入:

用机器学习预测贵州茅台明日方向

5秒后 OpenClaw 返回:

[模型精度]

训练集精度:74.3%████████████████████████████░░░░

测试集精度:62.8%████████████████████░░░░░░░░░░░░

随机基准:50.0%████████████████░░░░░░░░░░░░░░░░

过拟合差值:-11.5%⚠️ 中等过拟合风险

上涨概率:68.4%████████████████████░░░░░░░░░░

下跌概率:31.6%██████████░░░░░░░░░░░░░░░░░░░░

信号:BUY(阈值>60%)置信度:MEDIUM

这个结果是从 Tushare 拉取2022-2024年日线数据,构建15个技术指标特征,现场训练 RandomForest,然后预测今日特征对应的明日涨跌概率。整个过程5秒内完成。

■ 机器学习预测是怎么实现的?

三步走:

第一步:特征工程(15个技术指标)

# 二进制特征(有/无信号)

ma_bullish= 1 if price > MA5 > MA10 > MA20 else 0

macd_golden= 1 if DIF 金叉 DEA else 0

# 连续值特征

rsi_norm= RSI / 100# 归一化到[0,1]

boll_position = (price - 下轨) / 布林带宽# 价格在布林带中的位置

vol_ratio= 今日成交量 / 5日均量# 量比

ret_5d= 5日涨跌幅

第二步:训练 RandomForest

# 标签:次日是否上涨

label = 1 if close_tomorrow > close_today else 0

# 训练集 2022-2023,测试集 2024

model = RandomForestClassifier(n_estimators=200, max_depth=8, ...)

model.fit(X_train, y_train)

第三步:预测今日

prob_up = model.predict_proba(X_today)[0][1]

# → 68.4%,超过阈值60%,信号 BUY

■ 真实测试数据(未修改)

▲ 真实运行输出

{

"stock":"贵州茅台 600519.SH",

"model":"RandomForestClassifier",

"train_period":"2022-01-01 ~ 2023-12-31",

"test_period":"2024-01-01~ 2024-12-31",

"accuracy":{

"train":"74.3%",

"test":"62.8%",

"random_baseline":"50.0%",

"overfit_gap":"-11.5%"

},

"today_features":{

"ma_bullish":1,

"rsi_norm":0.52,

"macd_golden":1,

"vol_ratio_cat":"high (1.82)",

"boll_position":0.743

},

"prediction":{

"prob_up":"68.4%",

"prob_down":"31.6%",

"signal":"BUY",

"threshold":">60%",

"confidence":"MEDIUM"

}

}

■ 这套方案的局限性

1. 62.8%胜率不等于62.8%的盈利概率

方向预测正确,不代表盈利。次日涨0.1%,扣掉0.13%手续费,实际亏损。需要盈亏比 > 1.5:1 + 仓位管理,才能将胜率转化为正期望。

2. 11.5%的过拟合差距是中等风险

理想情况下,训练集和测试集精度差 < 5%。11.5%说明模型在训练集上记住了一些不泛化的规律。实盘中精度可能进一步下滑到55-58%。

3. 只用技术指标,忽略了重要变量

基本面:财报变化、行业政策

事件驱动:业绩预告、重大公告

宏观因素:利率、汇率、大盘情绪

在涨停板、黑天鹅等极端情况下,技术指标完全失效。

4. 特征工程的主观性

为什么是这15个特征?量比为什么按0.8/1.5分三档?这些是我手动设定的超参数,不同设定会导致截然不同的精度。

5. 训练数据的时代性

2022-2023年A股整体震荡下行,2024年反弹。如果2026年市场风格再次切换,模型精度可能大幅下滑。

■ 62.8%胜率

值得用,但不能单独用。

62.8%相比随机的50%,多了12.8个百分点,有统计意义。在合理的风控下,这个优势可以积累为正收益。

但必须结合:

板块动量(教程08):先确保板块强势

五因子评分(教程09):确保股票基本面+技术面支撑

ML预测(本教程):作为第三个确认信号

三个信号都支持时,胜率和期望会显著提升。

■ 完整的 OpenClaw 搭建教程在哪?

完整教程(含脚本、SKILL.md 配置、截图)在知识付费专栏:

教程08:板块轮动策略

教程09:五因子量化选股

教程10:机器学习预测A股涨跌(本文)

教程11:分钟线短线交易信号

教程12:ETF双动量轮动

教程尽在👇👇

AI大模型量化群、知识社区

*⚠️ 以上内容仅供学习研究,不构成任何投资建议。市场有风险,投资须谨慎。*