Concordal
The Decision Dialectic · Concord
All posts
A股方法论

为什么 A 股决策需要东方财富股吧而不是 Twitter

做 A 股不能照搬美股的 Reddit/Twitter 套路。东方财富股吧才是中国散户真实情绪的水源地。这里把数据源、抓取限制、隐性偏差都讲清楚。

2026-05-068 min readzh

我们做 Concordal 的时候,最早的版本是直接把美股的那套 sentiment pipeline 拷过来给 A 股用——Twitter API + Reddit。结果是: 茅台 (600519) 一周拉了 14 条相关 tweet,半数还是英文的,全部来自 境外卖方分析师转发。这不是中国散户的真实情绪,这是华尔街看 A 股的情绪。

美股套路为什么搬不动 A 股

美股散户的情绪信号 80% 集中在 Reddit (r/investing, r/wallstreetbets) + StockTwits + 财经 Twitter。这三个平台对 LLM pipeline 来说非常友好: 都有公开 API、都按时间戳排序、都不需要中文分词。

A 股散户根本不在这些平台上。中国大陆访问 Twitter / Reddit 本身就要 翻墙,发帖人主要是机构、媒体、海外华人。问 A 股散户"你在哪里看市场情绪", 答案永远是这四个:东方财富股吧、雪球、淘股吧、微博财经。前两个是主力。

简单一句话:做 A 股决策,东方财富股吧+雪球 的数据比 Twitter/Reddit 重要 5–10 倍。

东方财富股吧:A 股散户情绪的真实水源

股吧(guba.eastmoney.com)是东方财富自营的论坛。每只股票都有自己的 独立板块,散户在自己关心的票下面发帖、跟帖、骂街、晒持仓。这里的 信号特性和 Reddit 完全不同:

密度高。茅台股吧一天能有 400–800 条帖子,绝大部分 是真实持仓者写的——不像 Twitter 上多半是分析师转发新闻。

本土化。用语是地道的 A 股黑话——"主力"、 "洗盘"、"杀猪盘"、"割韭菜"、"割肉"。 我们的 sentiment analyst 专门维护了一个 50+ 词的 A 股黑话词典, 否则 LLM 把"主力" (main funds) 翻译成 "main force" 然后一脸懵逼。

有方向性。每个帖子都有"点赞数"和"阅读量", 我们用阅读量做加权,避免几条情绪极端但没人看的帖子主导结论。

抓取的实操难点

1. 反爬比 Reddit 强得多

东财股吧没有公开 API,必须爬网页。我们用 akshare 包提供 的封装接口(stock_guba_em),它已经处理了 cookie、 User-Agent、请求间隔。但只能取最近 N 页(默认 10 页)。要做长期回测, 必须自己定期持久化抓下来的数据,否则历史数据会被旧帖被删除。

2. 时间戳精度只到"分钟"

股吧帖子的 timestamp 是"05-10 14:32"格式,没有年份,没有 时区。我们的 adapter 在抓取时立刻补上当前 UTC+8 年份并转 UTC, 否则跨年的回测会出现大量"1970-01-01"的脏数据。

3. 帖子会被删

敏感词、政策风险、做空言论会被东方财富后台删掉——通常在发帖后 几个小时内。回测时你看到的"历史情绪"实际上是"没被删的那部分"。 这是一种 survivor bias,处理方法是:定期补抓,记录消失的帖子比例, 在 sentiment score 上加一个"censorship-adjusted"的修正项。

雪球:补充信号

雪球(xueqiu.com)是另一个量级——更偏机构和价值投资者,帖子更长、 更深度、互动更克制。东财股吧是"街头",雪球是"咖啡馆"。 我们用雪球做两个事:补充长文型分析(适合 news analyst 而不是 sentiment analyst)、提取"雪球热度" 排行作为关注度信号。

雪球有非官方的 API endpoint(xueqiu.com/v4/...),但 最近半年加了 token 验证,调用前要先 GET 主页拿 cookie。我们的 adapter 实现见 GitHub

东方财富关注度排行:"A 股 RobinHood top movers"

美股有 RobinHood top 100、有 r/wallstreetbets daily ticker mentions。 A 股的等价物是东方财富的"股吧关注度"排行——按当日新增帖子数 排序,每 30 分钟更新。这个排行的领头股,往往是当天散户最热的票, 是潜在的动量信号。

我们把这个排行直接接进 sentiment analyst,作为"现象观察" 而不是"预测信号"——领头股不一定涨,但 sentiment analyst 会被告知"这只票今天在散户圈非常热",避免它在 evaluation 阶段说出"这只票没什么关注度"这种事实错误。前端可以在 /hot 页直接看实时排行。

百度热搜:补漏

因为我们的后端在 Singapore,访问东方财富有时候会被 CDN 风控拦下 (非中国大陆 IP)。我们加了百度热搜作为 fallback:百度搜索量虽然 不是纯财经信号,但能反映"最近全民在搜什么概念",对题材股 特别有效。具体实现是搜索关键词 = "{股票名称}股票", 取过去 24 小时搜索量曲线。

A 股的"Twitter" 几乎不存在

微博财经板块是技术上 A 股相关的——但信噪比极低,财经 KOL 90% 是付费 发广告,剩下的多半是"荐股黑嘴"。我们没有把微博接进 pipeline。 如果你看到一个号称做 A 股的 AI 系统说自己用微博做 sentiment, 建议先看一下它的具体调用——大概率是个 marketing fluff。

总结:A 股决策的数据源 checklist

如果你在评估一个 A 股 AI 决策系统,问这四个问题:

(1) 有没有东方财富股吧?没有 = 看不到散户情绪。

(2) 有没有处理黑话词典?"主力" "洗盘"不在 prompt 里 = LLM 在乱猜。

(3) fundamentals 用的是 akshare 还是 Yahoo?Yahoo 的 A 股 fundamentals 数据严重过期,akshare 直接接交易所 + 巨潮, 是正规做法。

(4) 有没有点位时间戳?东方财富的"05-10 14:32" 被错误解析成 UTC 而非 UTC+8 是常见 bug,整张表都会偏 8 小时。

Concordal 这四项都达标。具体实现都在 GitHub 仓库——adapters/sentiment_*.py +adapters/cn_equity.py 两个文件。