第73章 情绪指标(2/2)
每个特征都要做标准化处理,与原有的技术指标在同一个量纲上。林晨修改了之前重构的特征工程模块,新增了SeFeatureExtractor类,实现了这些计算逻辑。
三天后,爬虫任务完成。服务器上积累了2800多万条评论数据,压缩后仍有40多GB。林晨在本地只下载了情绪特征的计算结果——每只股票每个交易日的几个数值,数据量骤降到几MB。
他将情绪特征加入模型,重新训练。
等待训练结果时,林晨有些忐忑。这可能是他失业以来最专注的一次技术探索——不是为了面试,不是为了证明自己,而是纯粹想解决一个真实的问题。这种状态让他想起大学时通宵写代码参加竞赛的日子,虽然累,但心里踏实。
下午四点,训练结束。
林晨屏住呼吸,点开回测报告。
策略表现对比(过去三年)
原策略(15个技术特征):年化收益19.5%,最大回撤7.1%,夏普比率2.3
新策略(技术特征+情绪特征):年化收益21.2%,最大回撤6.8%,夏普比率2.6
提升了。
虽然幅度不大,但关键是在那几个情绪化交易日,新策略的预测准确率显着提高。模型学会了识别“市场过热”和“恐慌过度”的信号,在情绪极端时给出了更保守或更激进的操作建议。
林晨靠向椅背,长长吐出一口气。
窗外的鹏城湾华灯初上,写字楼的玻璃幕墙反射着夕阳余晖。他忽然意识到,自己刚刚完成了一次有趣的“跨界”——把自然语言处理技术应用到了量化投资领域。这不是教科书上的案例,而是他为了解决实际问题自己摸索出来的路径。
这种成就感,比拿到一个高薪offer更让他兴奋。
他打开实盘监控界面,新策略已经自动部署。系统在下午收盘前给出了三个调仓信号,都是基于技术面稳健、但情绪面出现短期过度悲观的机会。林晨确认了风控参数,点击“执行”。
交易指令发出,7万多的资金开始流动。
做完这些,林晨才感觉到饥饿。他煮了碗面条,端着碗坐回电脑前,又点开了股吧页面——这次不是爬虫视角,而是作为一个普通用户。
他随机点开一只今天跌停的股票评论区。置顶的帖子标题是:“兄弟们,天台冷吗?我来了”。
“别慌,明天肯定反弹!”
“我已经躺平了,爱咋咋地。”
“主力洗盘而已,拿住了。”
“楼上的别害人了,这公司基本面早烂了。”
每条评论背后,都是一个真实的人,真实的情绪,真实的金钱得失。林晨的模型把这些情绪转化成了0到1之间的数字,转化成了特征向量,转化成了权重参数。但那些深夜无法入睡的焦虑,那些割肉离场时的不甘,那些意外盈利时的狂喜——这些温度,代码能捕捉吗?
“也许不能完全捕捉”,林晨想,“但至少,我在尝试理解”。
他吃完面条,把碗洗了。回到电脑前,又有了新想法:情绪数据源不应该只有股吧。微博、财经新闻、券商研报的语气……这些都可以爬取分析。甚至,可以尝试用深度学习模型做更细粒度的情绪分类——乐观、悲观、愤怒、恐惧、贪婪……
这个系统,还有太多可以进化的空间。
夜深了,林晨却没有睡意。他调出今天情绪特征最极端的几只股票,一只只查看它们的走势和评论。在“鹏城科技”这只股票上,他发现了有趣的现象:技术指标显示超卖,情绪得分极低(0.18,极度悲观),但模型给出的建议却是“观望”,而非“买入”。
林晨点开这家公司的基本面资料,眉头渐渐皱起。
原来,明天是它的限售股解禁日。