叙事体制引擎
Read in English把央行措辞、财报表述和市场叙事,转化为结构化的体制信号
它是什么,不是什么
这不是一个凭主观判断喊单的聊天机器人。 这是一套把杂乱语言转换成稳定的、带版本号的标签的流程,这些标签可以喂给一个系统化的组合。只有当下游的映射、换手控制和验证框架都过硬时,标签引擎才有用。
核心思路
市场并不只对数据本身作出反应,它还对决策者如何 表述 这些数据作出反应。GPT 式模型之所以有用,是因为它能把不断变化的措辞规整成稳定的标签,比如 鹰派通缩, 增长恐慌, 利润率承压, 库存重建,或者 政策宽松脉冲.
为什么叙事很重要
经典的宏观模型要等硬数据发布。而市场往往动得更早,因为参与者会根据措辞更新自己的判断。当 Fed 从"视数据而定"转向"通胀风险仍然偏高",或者当大市值公司的管理层不再说"暂时性的回归正常"、开始说"客户趋于谨慎"时,价格反应往往在滞后的数据序列予以确认之前就已经开始了。
优势并不在于用语言模型去预测 GDP,而在于比人工记录更快、更一致地度量 定性上的变化量 。
- FOMC 声明: 措辞上的细微变化,就可能重塑对利率路径的预期
- 新闻发布会: 问答环节里往往藏着真正的政策漂移
- 财报电话会: 管理层的语气会在数字被修正之前,就透露出需求、定价能力、资本开支和库存的状况
- 行业表述: 半导体、运输、银行、工业和零售,往往比大盘指数更早转向
机构的视角
顶级的宏观交易台不会问"这份声明是鸽派的吗?",它问的是"相对上一次事件,有什么变了?变化有多大?哪些资产敞口最大?市场还有哪些地方理解错了?"你的叙事引擎也应该这样做。
文档范围
把输入范围收紧。大多数失败源自输入端的噪音,而不是建模能力不足。
宏观输入
- FOMC 声明、会议纪要和新闻发布会
- CPI、PPI、NFP、ISM、零售销售,以及主要数据发布的摘要
- 重要理事和地区联储主席的 Fed 讲话记录
- 财政部再融资声明和重要的政策演讲
公司层面的输入
- 行业风向标公司的财报电话会记录
- 8-K 指引公告
- 投资者开放日的会议记录
- 行业会议上的表态
为什么不该什么都往里塞
把每一条新闻标题都加进来,通常只会让信号变差。机构系统会把 核心叙事文档 与高噪音的评论流区分开来。先从那些措辞变化最要紧、且事件日历足够稳定可供回测的权威文档入手。
数据结构与标签
模型不该输出长篇大论。它应该输出一个固定的数据结构,让你能够重放、比较和汇总。
{
"macro_regime": "growth_scare | reflation | soft_landing | stagflation_risk",
"policy_bias": "hawkish | neutral | dovish",
"earnings_breadth": -2 to 2,
"margin_pressure": -2 to 2,
"consumer_health": -2 to 2,
"capex_intensity": -2 to 2,
"confidence": 0 to 1,
"evidence_spans": ["quoted phrase 1", "quoted phrase 2"]
}
好的打标签做法
- 使用 小而稳定的分类体系 而不是无休止地扩充标签
- 把 方向 与 置信度
- 分开要求提供证据片段,让输出可审计
- 尽可能使用数值型字段,以减少比较时的歧义
该度量什么
宏观层面,跟踪政策倾向、对通胀的信心、劳动力市场韧性和增长方面的担忧。财报层面,跟踪定价能力、利润率压缩、库存表述、客户的紧迫感和资本开支意愿。目标是在具有经济含义的类别上度量措辞的变化,而不是笼统的正面程度。
流程设计
- 接入某个事件窗口内最新的一批文档。
- 按发言人、章节和时间戳做分块。
- 运行强制固定输出结构的抽取提示词。
- 把分块层面的输出,汇总成文档层面的分数。
- 把本次事件的分数与上一次可比事件作对比。
- 把这个变化量转换成针对资产或篮子的体制向量。
- 用市场确认和流动性过滤器给信号加上门控。
为什么分块很重要
长文档提示中一个常见的失败模式,是模型过度看重开头几段、而轻视问答环节。对宏观类文档来说,问答环节往往包含最有操作价值的细节。对财报来说,准备好的发言可能被打磨得很光鲜,而分析师的提问才会暴露出管理层想要回避的东西。分块能避免这种坍缩。
分块汇总示例
文档分数 =
0.40 * prepared_remarks_score
+ 0.40 * Q&A_score
+ 0.20 * title_and_release_score
事件变化量 =
current_document_score - previous_document_score
模型输出的纪律
对于基础数据结构,你要的是确定性的、低温度的抽取。在这里,创造性的生成是负担。请把提示词写得明确,要求模型标记缺失数据,并拒绝不符合结构的输出。
从标签到交易
最干净的实现方式不是预测单只股票,而是 篮子交易。叙事类信号是宽泛的、概率性的,而篮子能吸收掉个股层面的噪音。
简单的映射层
若 policy_bias = hawkish 且 growth_scare 正在上升:
低配长久期成长股
超配防御性、优质和短久期资产
若 soft_landing 的置信度上升,且 earnings_breadth 改善:
超配周期股、半导体、小盘股、信用 beta
若 stagflation_risk 上升:
降低指数 beta
加入对大宗商品敏感的表达方式
收紧总敞口和净敞口上限
实用的交易表达方式
- 行业轮动: XLK 对 XLU、XLI 对 XLV、XLF 对 TLT
- 因子价差: 优质对垃圾、防御对周期、低波动对高 beta
- 指数敞口叠加: 以体制分数作为门控,调整在 SPY、QQQ 和 IWM 上的敞口大小
- 宏观对冲: 如果政策或通胀叙事急剧转向,请使用利率或大宗商品对冲,而不是硬要用纯股票的方式表达
一条好规则是:既要有叙事上的转向,也要有某种市场确认,比如相对强度、市场宽度扩张,或信用利差的表现。只看文本通常太早,只看价格往往太晚。两者结合,这套流程才真正可用。
验证框架
这套策略应当逐事件地测试,而不是孤立地逐根 K 线测试。
该回测什么
- 事件变化量,与随后 1 日、5 日和 20 日的行业/因子收益之间的关系
- 主要体制分类的命中率
- 换手率和实施中的滑点
- 同一批历史文档下,不同提示词版本的稳定性
最重要的两项测试
- 重放稳定性: 用同样的模型和提示词重跑旧文档,确认输出保持一致
- 提示词敏感度: 略微改动措辞,看看信号是否还站得住
如果只是换了个说法,你的体制分数就大幅翻转,那你手上的不是一个 alpha 模型,而是一个不稳定的界面演示。
失效模式
- 幻觉式的解读: 要求提供证据片段,并做人工抽查
- 提示词漂移: 为每一版提示词做版本管理,并保留重放日志
- 宏观来回打脸: 不要让单份文档凌驾于价格、市场宽度和波动率体制这些过滤器之上
- 反应过度: 使用篮子并限制换手率,而不是一把梭的方向性押注
- 叙事拥挤: 故事越是显而易见,你就越应该偏向相对价值的表达方式,而不是直接的 beta 敞口
量化视角的现实情况
"市场叙事"里没有免费的午餐。一个故事一旦在财经电视上变得人尽皆知,优势就消失了。这套流程真正有用的地方,在于早期、一致且成规模地度量叙事的转向。
散户的落地方案
- 先从一类文档入手,比如 FOMC 声明和新闻发布会。
- 只定义 6 到 10 个稳定的标签。
- 建立重放日志,并拒绝不符合结构的输出。
- 把信号映射到两三个流动性好的行业价差上。
- 用 5 到 10 年的事件窗口做回测。
- 等宏观标签稳定之后,再加入行业风向标公司的财报记录。
量化视角的看法
真正的优势不在于语言模型,而在于一个有纪律的闭环: 文本 → 数据结构 → 变化量 → 篮子 → 风险预算。如果这个闭环是有版本管理、可重放的,你手上就有了可测试的东西。如果不是,你手上就只有一个故事。