把单个市场的分组映射到5个市场,你会发现同一件事在不同市场长得完全不一样。
全行业引擎上线后,我很快发现一个问题:每个分组只在单一市场有数据。
比如「算力芯片」分组,A股有几组样本,HK有美股也有。但如果只盯着A股,你看到的只是拼图的一角——而且这一角可能是全球市场的领先指标,也可能是滞后指标。你不知道。
解决方案:给每个分组加一张「跨市场映射表」,明确标注它在5个市场的对标样本。
分组: 算力芯片
映射:
A股: [样本A, 样本B]
港股: [样本C]
美股: [样本D, 样本E, 样本F]
日股: [样本G]
韩股: [样本H, 样本I]
当一个分组的特征评分达到阈值,引擎自动提取跨市场映射表里所有对标样本的数据,生成5市场的特征对比视图。
不同市场的最佳算法参数差异很大。我跑了一个全排列对比:
[RSI12/阈值20/窗口3] → 评分 8
[RSI14/阈值25/窗口5] → 评分 6
[RSI6/阈值30/窗口10] → 评分 4
短周期最优,长周期掉分。
[RSI12/阈值20/窗口3] → 评分 3
[RSI14/阈值25/窗口5] → 评分 7
[RSI6/阈值30/窗口10] → 评分 4
中周期最优,和A股完全不同。
[RSI12/阈值20/窗口3] → 评分 2
[RSI14/阈值25/窗口5] → 评分 4
[RSI6/阈值30/窗口10] → 评分 12
长周期最优,评分是A股最优的1.5倍。
硬套同一个参数会损失至少30%的准确率。所以我给引擎加了「市场自适应」逻辑:
PARAM_MAP = {
'A股': {'rsi_window': 12, 'threshold': 20, 'hold_days': 3},
'港股': {'rsi_window': 14, 'threshold': 25, 'hold_days': 5},
'美股': {'rsi_window': 6, 'threshold': 30, 'hold_days': 10},
'日股': {'rsi_window': 14, 'threshold': 25, 'hold_days': 5},
'韩股': {'rsi_window': 6, 'threshold': 30, 'hold_days': 10},
}
def get_params(sample, market):
return PARAM_MAP.get(market, PARAM_MAP['A股'])
扩容后形成了两条分析线:
35路数据采集
↓
特征提取 (多语种NLP)
↓
┌── 分组引擎线 ──┬── 全行业引擎线 ──┐
│ 10分组×100样本 │ 16分组×264样本 │
│ 传统分类视角 │ AI产业链视角 │
└───────┬────────┴────────┬────────┘
↓ ↓
分组评分 全行业评分
└────────┬────────┘
↓
交叉验证报告
双线合一的最大价值是交叉验证。当两条线对同一分组的评分一致时,置信度大幅提升。
引擎支持三种运行模式:
# 原始模式 - 分组引擎视角
python3 app.py --run
# 全行业模式 - 全行业引擎视角
python3 app.py --silicon-mode
# 双引擎模式 - 27分组 × 351样本 × 5市场
python3 app.py --dual-engine
每天跑一次双引擎模式,输出分组评级报表。
$ python3 run_app.py --dual-engine
━━━ 双引擎报告 ━━━
分组引擎: 10分组 | 活跃: 3
全行业引擎: 16分组 | 活跃: 5
交集: 2 | 并集: 6 | 差异: 1
─────────────────────
🏆 交叉验证最高分:
算力芯片: 分组 78 / 全行业 82 (一致🟢)
半导体材料: 分组 45 / 全行业 38 (一致🟢)
光通信: 分组 22 / 全行业 55 (分歧⚠️)
─────────────────────
API运行时间: 137秒
系统说明:本文记录跨市场数据分类系统的架构搭建,不构成任何决策参考。
💬 留言