最近 X 上有个人火了
如果你最近在刷 X(Twitter),可能已经见过这个账号:@aleabitoreddit,网名 Serenity。
TA 的简介只有一行:前 Reddit WallStreetBets 知名交易员,AI/半导体供应链分析师,前 RISC-V 基金会成员,前 AI 研究科学家,现在专门交易"那些被忽视的瓶颈公司"。
听起来像是标准的 X 牛皮吹手简介?但数据说话:TA 2025 年 7 月才注册 X,到今年 5 月粉丝就涨到了 35 万以上,订阅人数直逼马斯克。
更让人侧目的是TA 的战绩。TA 自称年化收益率最高峰达到 +501%,目前稳定在 +122% 左右,公开点名了超过 38 个股票标的。有人专门做了一个"Serenity Tracker"网站跟踪TA 的持仓,发现TA 宣称的 3840% 年化收益率主要来自于提前布局 AI 和半导体供应链里不知名的小公司。
有人核查过吗?有。TA 在 Reddit 时代曾因提前推荐 $AXTI(从 12 美元涨到 70 美元)被 WallStreetBets 版主封禁,理由据称是"散户赚太多让版主不舒服"。这个细节倒是蛮有意思的。
当然,社媒上的收益截图永远要打折看。但单从选股能力来说,围绕TA 推荐标的的独立核查结论基本都是——确实很准。于是我就在想:能不能把 TA 的推文信号实时接入交易系统?
这类信息的价值在哪里
先说一个背景。
在 A 股,我们习惯看研报、盯主力资金、蹲消息面。但在美股和加密市场,X 上的 KOL 影响力有时候不亚于机构研报——尤其是那些在垂直领域确实有积累的人。
Serenity 的核心方法论叫做 "Chokepoint 理论":从高确定性的终端需求(AI 算力爆发)出发,逐层逆向拆解供应链,找出那些技术壁垒极高、供需严重错配的上游小公司。这些公司往往市值很小,机构没覆盖,但一旦需求爆发,弹性会非常大。
这个逻辑清晰,而且TA 是实名(虽然匿名)持续跟踪的,不是那种喊完就跑的短线博主。
类似的逻辑可以延伸到很多地方:
-- 马斯克在 X 上的一条推文能让 Dogecoin 在几分钟内暴涨
-- 币圈的大 V 喊单一个山寨币,往往是散户接盘的开始(这个反向用也行)
-- 某些传统金融圈的分析师,在 X 上披露持仓往往领先于公开报告
社媒信息本身就是一种 alpha,只是大多数人没有系统性地接入它。
但有个现实问题:我们买不了美股现货
Serenity 推荐的标的大多是美股,比如 NVDA、MRVL、AVGO、SIVE 这些。普通用户没有美股账户,或者不想走那条路,怎么办?
这里有一个思路:币安(Binance)的 TradFi 股票永续合约。
币安上线了一批以美股股票为标的的永续合约,用 USDT 结算,支持做多做空,不需要美股账户,7×24 小时交易。目前覆盖了包括 NVDA、MRVL、AMD、AVGO、META、MSFT、AMZN、GOOGL 在内的几十个主流美股标的,而且还在持续扩充。
这意味着:Serenity 推荐了 MRVL,我不需要开美股账户,直接在币安上开 MRVL_USDT 永续合约的多单就行。
当然,这类合约和直接持有股票是有区别的——没有分红,只是价格跟踪,而且有资金费率成本。但对于短中期的方向性交易来说,足够用了。
系统的整体思路
想清楚这件事之后,我开始设计这个系统。
整体就三步:
① 实时获取 Serenity 的推文
↓
② 用 LLM 解析推文信号(看多哪个标的?置信度多高?)
↓
③ 匹配币安 TradFi 合约,执行交易 + 风控
第一步是最关键的——怎么实时获取推文?
Twitter 官方 API 现在要收费,而且价格不便宜。有没有免费方案?
有:RSSHub。这是一个开源工具,可以把各种网站转成 RSS 订阅源,包括 Twitter 推文。配上自己账号的 Cookie,就能把任何用户的推文实时转成 RSS——本质上是用自己的账号去抓取页面,完全免费。
RSSHub 的部署
我把 RSSHub 部署在一台境外服务器上,这样不需要额外处理网络问题,服务器上装的是 Podman(CentOS 系统常见的容器运行时),一条命令搞定:
bash
podman run -d \
--name rsshub \
-p 1200:1200 \
-e NODE_ENV=production \
-e CACHE_TYPE=memory \
-e TWITTER_AUTH_TOKEN="你的auth_token" \
-e TWITTER_COOKIE="auth_token=你的auth_token; ct0=你的ct0" \
diygod/rsshub:latest
其中 auth_token 和 ct0 是 Twitter 账号的 Cookie,在浏览器开发者工具里能找到(F12 → Application → Cookies → x.com 下面)。
这两个值相当于账号的登录凭证,请只用小号操作,不要泄露。
验证一下:
bash
curl "http://localhost:1200/twitter/user/aleabitoreddit" | head -3
看到 <?xml 开头的 RSS 内容就成功了。之后策略里直接 HTTP 请求这个地址,就能拿到最新推文列表。
动态获取合约表
币安的 TradFi 合约在持续上新,所以合约表不能写死,每次启动和定时刷新:
python
def refresh_equity_contracts():
ms = exchange.GetMarkets()
new_map = {}
for key, market in ms.items():
info = market.get("Info", {}) or {}
sub_type = info.get("underlyingSubType", [])
# 筛选 TradFi EQUITY 永续合约
if (
".swap" in key
and "TradFi" in sub_type
and info.get("underlyingType") == "EQUITY"
):
ticker = key.replace("_USDT.swap", "")
new_map[ticker] = key # {"NVDA": "NVDA_USDT.swap", ...}
return new_map
这样新上线的合约会自动纳入,LLM 解析推文时也会把最新的合约列表传给它作为参考范围。
让 LLM 读懂 Serenity 的语言
这一步是整个系统最有意思的地方,也是最需要打磨的地方。
直接让 LLM 判断"这条推文看多还是看空"太粗糙了——Serenity 的表达方式很有特点,不了解 TA 的人会误判很多。
比如 TA 经常发这样的推文:
"Wow… new extremely transformative news got released today. Making a certain photonics company the effective upstream laser chokepoint for $NVDA NVLink fusion CPO ecosystem. Can anyone guess the name?"
这条推文本质上是在卖关子引流,下一条才是真正点名的看多推文。如果 LLM 不知道这个习惯,可能会把它判断成对 NVDA 的强看多信号——完全跑偏了。
所以 system prompt 里要把TA 的表达习惯明确写出来:
python
system_prompt = (
"你是一个专门解读Twitter用户「Serenity」推文的交易信号提取器。"
"该用户是AI与半导体供应链分析师,你需要理解 TA 特有的表达习惯:\n"
"1. TA 很少直接说「买入」,而是通过描述公司供应链地位、壁垒来暗示看多\n"
"2. 强烈看多的关键词:「I personally think」「undervalued」「going much higher」"
"「chokepoint」「structural」「thesis validated」「go brrr」「bullish」\n"
"3. 看空关键词:「avoid」「overvalued」「nuking」「ban」「bearish」\n"
"4. 提问式推文(「Can anyone guess?」「Does anyone know?」)"
"是卖关子引流,本身不构成交易信号,direction 应为 neutral\n"
"5. 宏观趋势描述若未点名具体标的态度,不构成信号\n"
"只输出合法 JSON,不输出任何其他内容。"
)
返回统一的 JSON 格式:
python
{
"tickers": ["MRVL", "LITE"], # 只含作者明确表态的标的,必须在合约列表里
"direction": "long", # long / short / neutral
"confidence": 85, # 0-100,信号综合强度
"reason": "作者明确表示看多AI网络互联需求"
}
置信度的判断标准:
- 明确表态 + 有具体逻辑支撑:80-95
- 描述正面事实但未明确表态:55-75
- 提问/卖关子/互动类:10-40(此时 direction 强制 neutral)
- 宏观描述无具体标的:30-50(tickers 返回空)
实际跑下来,对"引流推文"的识别准确率挺高,这类推文基本都被正确过滤掉了。
风控设计
信号有了,下单逻辑其实没那么复杂,关键是风控要稳。
仓位管理:
-- 单笔仓位:账户权益的 5%
-- 最大同时持仓:5 个标的
-- 杠杆:1x,不加杠杆
止损:
-- 硬止损:入场价亏损 5% 直接平仓,没有商量余地
止盈:没有固定止盈,只有回撤止盈
这个设计来自于 Serenity 的持仓风格——TA 的逻辑是等供需错配兑现,持仓周期往往比较长,用固定止盈会切掉很多利润。所以改成移动回撤止盈:
python
# 浮盈达到 8% → 启动移动追踪
# 实际回撤阈值 = max(30%, 峰值 × 35%)
# 峰值越大,允许回撤越大
giveback_pct = max(30, peak * 0.35)
drawdown = peak - pnl_pct
if drawdown >= giveback_pct:
# 执行平仓
举个例子感受一下:
-- 峰值 +20%,阈值 = max(30%, 7%) = 7%,回撤到 +13% 离场
-- 峰值 +80%,阈值 = max(30%, 28%) = 28%,回撤到 +52% 才离场
大赢家可以充分奔跑,小亏损快速止损——这个结构和 Serenity 自己的持仓风格是匹配的。
一个安全阀:先通知,再交易
策略默认是**"仅通知"模式**:有信号只打日志,不实际下单。等观察一段时间,确认 LLM 的判断符合自己的预期之后,再手动切换到"实际交易"模式。
仪表板有四张表:
| 表 | 内容 |
|---|---|
| 系统总览 | 账户权益、模式、持仓数、操作按钮 |
| 推文统计 | 强信号数(≥80%)/ 普通信号 / 跳过数 / 信号率 |
| 持仓明细 | 入场价、浮盈、峰值、止盈状态、持仓时长 |
| 推文历史 | 每条推文的标的、方向、置信度、信号类型 |
推文历史里有个"信号类型"列,会自动标注每条推文是"💎 强信号"还是"🎭 引流/提问",方便回头校对 LLM 的判断质量。
一点延伸思考
这套框架本质上是把特定信息源实时结构化并接入交易系统,Serenity 只是其中一个例子。只要有 RSS 或者可以抓取的数据源,理论上都可以接进来。RSSHub 支持的信息源已经超过几千个,不只是 Twitter。
当然,信号源的质量决定了整个系统的天花板。选一个乱喊单的人,系统再精妙也没用。Serenity 能用,是因为TA 有完整的分析框架,不是那种喊完就跑的短线博主。
最后说几句
整个系统搭下来,真正花时间的地方是两块:一是 RSSHub 的部署(境外服务器 + Cookie 配置),二是 LLM prompt 的调优(让它准确理解特定 KOL 的表达习惯)。
代码部分其实不算复杂,发明者平台的框架把很多底层的东西都封装好了,重点是想清楚业务逻辑。
建议新上手的朋友先跑一段时间通知模式,对着日志看 LLM 的判断有没有明显跑偏,确认稳定之后再切实盘。毕竟跟着社媒信号交易这件事本身就是在押注 KOL 的判断能力——仓位不要太重,分散一点,把止损守好。
策略代码和完整实现在评论区,欢迎交流。
策略代码: 社媒KOL信号跟踪_币安TradFi股票合约
- 1




