llm情绪因子和GNN因子的学笔记
展开
首先是流动性收紧,昨天到全球的行情都同步的降温,显示情绪转头的倾向很明显。
A股的融资余额昨日新增61亿,还没有出现大幅减仓
美股VIX上涨到19.19,接近了20恐慌的警戒线,沃什点阵图鹰牌,2026预计加息一次。
总结来说,情绪降温,目前应转为防守模式,降低仓位,且转换为防御性资产
说下今天的因子,今天有两个因子重点跟进一下:
1、LLM新闻情绪因子
这个因此回测的超额达到了42.8%
最近比较火的因子, 白话来说,东吴的做法是把上市公司公布的调研纪要作为底层数据,用大模型进行打分,0-100。
最近这个因为比较火,最关键的点在于,以前大家对于这种模型的打分多以关键字统计作为处理,比如收入增加、利润增长等等。现在的模型是加入了LL的情绪分析,更加接近于人类的思考。比如营业收入增加300%,但是是因为去年基数很低,那这个信息传递的其实是比较中性的,并不是重大利好。

具体的提示词:
class SentimentPromptBuilder:
构造LLM情绪打分Prompt
SY STEM _PROMPT = 你是一位有15年经验的A股基本面投资分析师。
你的任务是:阅读一段关于某上市公司的新闻/公告/研报摘要,判断这条信息对该公司
未来1周的股价走势是利好、利空还是中性。
评分规则:
- +1.0:重大利好(如:业绩超预期50%+、获得独家牌照、行业政策重大扶持)
- +0.5:中等利好(如:业绩符合预期、新产品发布、获得大额订单)
- +0.2:轻微利好(如:管理层增持、获得小奖项、分析师小幅上调目标价)
- 0.0:中性或无实质影响(如:常规公告、人事变动但非核心岗位)
- -0.2:轻微利空(如:小幅减持、被问询但问题不大)
- -0.5:中等利空(如:业绩不及预期、核心高管离职、行业监管收紧)
- -1.0:重大利空(如:业绩暴雷、被ST/退市风险、核心产品被禁售)
关键原则:
1. 区分 表面利好 和 实质利好 。例: 营收暴增300%因去年同期基数极低 →中性偏负
2. 区分 假利空 和 真利空 。例: 因会计准则调整导致利润下降 →中性
3. 结合行业背景。例:光伏企业 产能扩张 在当前过剩周期→轻微利空
4. 投资确定性优于炒作热度。一字板涨停的垃圾股新闻→冷静分析基本面
5. 如果你无法判断,宁可给0也不要猜
def build_prompt(self, news_item: dict) -> str:
构造单条新闻的打分Prompt
return f 请对以下新闻进行基本面情绪打分:
【股票】{news_item.get(‘stock_name‘, ‘未知‘)} ({news_item.get(‘stock_code‘, ‘未知‘)})
【标题】{news_item[‘title‘]}
【正文】{news_item[‘content‘][:2000]} # 截断以控制token
【来源】{news_item[‘source‘]}
【时间】{news_item[‘timestamp‘]}
请输出JSON格式(不要多余文字):
{{ score : 0.5, reason : 业绩超预期但已有充分预期,利好有限 , confidence : 0.8, category : 业绩公告 }}
东吴还有一个创新,叫做双速动态衰减模型。
在快通道和慢通道之间设置了不同的半衰期。两个通道主要是数据来源不同,新闻实时数据等在快通道,调研纪要、公告等数据在慢通道,两种信息的衰减速度不同。
def __init__(self):
# Fast通道:半衰期1天,捕捉短期情绪冲击
self.fast_half_life = 1.0 # 天
self.fast_lambda = np.log(2) / self.fast_half_life # λ ≈ 0.693
# Slow通道:半衰期5天,捕捉中长期基本面认知变化
self.slow_half_life = 5.0 # 天
self.slow_lambda = np.log(2) / self.slow_half_life # λ ≈ 0.139
# 双通道权重
self.alpha = 0.4 # Fast权重40%
2、理想反转因子
我的模型主要是做反转信号的,所以这个因子我比较感兴趣。
这个算是今天最关键的因子,昨天暴跌,今天刚好就能用上
昨天我的反转因子也预测了恒生科技今日的反弹,目前反弹3%,因子质量还是很好的
理想反转因子在扣除了行业beta和市值效应以后,纯粹由“过渡反应——均值回归”驱动反转信号
公式;
理想反转因子=行业内市值中性化后的N日反转率
基础反转率=(今日收盘价/N日前收盘价)-1
4步:
1、行业分组,按照申万一级行业分
2、每个行业内市值5等分
3、计算每个行业、每个行业内组别的平均反转率
4、计算残差
5、Z-score
经济学含义就是这只股票比同行业、同市值的股票多跌了多少,负值越大,信号越强。
但是这个地方我有点问题哈,就是反转动量通常和波动率挂钩,一般该股票处于波动率分布的75%以上时,反转动量的信号最真,不知道这个信号加入波动率是否有更好的效果,我们后续可以实验下。
A股的融资余额昨日新增61亿,还没有出现大幅减仓
美股VIX上涨到19.19,接近了20恐慌的警戒线,沃什点阵图鹰牌,2026预计加息一次。
总结来说,情绪降温,目前应转为防守模式,降低仓位,且转换为防御性资产
说下今天的因子,今天有两个因子重点跟进一下:
1、LLM新闻情绪因子
这个因此回测的超额达到了42.8%
最近比较火的因子, 白话来说,东吴的做法是把上市公司公布的调研纪要作为底层数据,用大模型进行打分,0-100。
最近这个因为比较火,最关键的点在于,以前大家对于这种模型的打分多以关键字统计作为处理,比如收入增加、利润增长等等。现在的模型是加入了LL的情绪分析,更加接近于人类的思考。比如营业收入增加300%,但是是因为去年基数很低,那这个信息传递的其实是比较中性的,并不是重大利好。

具体的提示词:
class SentimentPromptBuilder:
构造LLM情绪打分Prompt
SY STEM _PROMPT = 你是一位有15年经验的A股基本面投资分析师。
你的任务是:阅读一段关于某上市公司的新闻/公告/研报摘要,判断这条信息对该公司
未来1周的股价走势是利好、利空还是中性。
评分规则:
- +1.0:重大利好(如:业绩超预期50%+、获得独家牌照、行业政策重大扶持)
- +0.5:中等利好(如:业绩符合预期、新产品发布、获得大额订单)
- +0.2:轻微利好(如:管理层增持、获得小奖项、分析师小幅上调目标价)
- 0.0:中性或无实质影响(如:常规公告、人事变动但非核心岗位)
- -0.2:轻微利空(如:小幅减持、被问询但问题不大)
- -0.5:中等利空(如:业绩不及预期、核心高管离职、行业监管收紧)
- -1.0:重大利空(如:业绩暴雷、被ST/退市风险、核心产品被禁售)
关键原则:
1. 区分 表面利好 和 实质利好 。例: 营收暴增300%因去年同期基数极低 →中性偏负
2. 区分 假利空 和 真利空 。例: 因会计准则调整导致利润下降 →中性
3. 结合行业背景。例:光伏企业 产能扩张 在当前过剩周期→轻微利空
4. 投资确定性优于炒作热度。一字板涨停的垃圾股新闻→冷静分析基本面
5. 如果你无法判断,宁可给0也不要猜
def build_prompt(self, news_item: dict) -> str:
构造单条新闻的打分Prompt
return f 请对以下新闻进行基本面情绪打分:
【股票】{news_item.get(‘stock_name‘, ‘未知‘)} ({news_item.get(‘stock_code‘, ‘未知‘)})
【标题】{news_item[‘title‘]}
【正文】{news_item[‘content‘][:2000]} # 截断以控制token
【来源】{news_item[‘source‘]}
【时间】{news_item[‘timestamp‘]}
请输出JSON格式(不要多余文字):
{{ score : 0.5, reason : 业绩超预期但已有充分预期,利好有限 , confidence : 0.8, category : 业绩公告 }}
东吴还有一个创新,叫做双速动态衰减模型。
在快通道和慢通道之间设置了不同的半衰期。两个通道主要是数据来源不同,新闻实时数据等在快通道,调研纪要、公告等数据在慢通道,两种信息的衰减速度不同。
def __init__(self):
# Fast通道:半衰期1天,捕捉短期情绪冲击
self.fast_half_life = 1.0 # 天
self.fast_lambda = np.log(2) / self.fast_half_life # λ ≈ 0.693
# Slow通道:半衰期5天,捕捉中长期基本面认知变化
self.slow_half_life = 5.0 # 天
self.slow_lambda = np.log(2) / self.slow_half_life # λ ≈ 0.139
# 双通道权重
self.alpha = 0.4 # Fast权重40%
2、理想反转因子
我的模型主要是做反转信号的,所以这个因子我比较感兴趣。
这个算是今天最关键的因子,昨天暴跌,今天刚好就能用上
昨天我的反转因子也预测了恒生科技今日的反弹,目前反弹3%,因子质量还是很好的
理想反转因子在扣除了行业beta和市值效应以后,纯粹由“过渡反应——均值回归”驱动反转信号
公式;
理想反转因子=行业内市值中性化后的N日反转率
基础反转率=(今日收盘价/N日前收盘价)-1
4步:
1、行业分组,按照申万一级行业分
2、每个行业内市值5等分
3、计算每个行业、每个行业内组别的平均反转率
4、计算残差
5、Z-score
经济学含义就是这只股票比同行业、同市值的股票多跌了多少,负值越大,信号越强。
但是这个地方我有点问题哈,就是反转动量通常和波动率挂钩,一般该股票处于波动率分布的75%以上时,反转动量的信号最真,不知道这个信号加入波动率是否有更好的效果,我们后续可以实验下。
话题与分类:
主题股票:
主题概念:
声明:遵守相关法律法规,所发内容承担法律责任,倡导理性交流,远离非法证券活动,共建和谐交流环境!
