数据源与特征工程(上):行情数据、财务数据、公告数据、社交媒体舆情数据

各位同学,咱们今天聊聊内幕交易检测里最基础、也最磨人的一环——数据源与特征工程。说实话,我见过太多模型死在数据上,不是数据质量差,就是特征构造得不对路。你想想看,模型再牛,喂进去的是垃圾,吐出来的只能是更精致的垃圾。

我个人习惯把数据源分成四大块:行情数据、财务数据、公告数据、社交媒体舆情数据。每一块都有它的脾气,咱们一个一个来盘。

1. 行情数据:日频与高频的博弈

行情数据是内幕交易检测的“心电图”。日频数据好拿,但信息量有限;高频数据信息量大,但噪声也多。我曾在项目中遇到过用日频数据做检测,结果漏掉了一个关键信号——某只股票在公告前三天,每分钟的成交量突然放大,但日线图上根本看不出来。

日频数据,说白了就是每天的开盘价、收盘价、最高价、最低价、成交量、成交额。这些数据适合做长期趋势分析,比如计算过去20天的平均换手率、波动率。但你要用它抓内幕交易?嗯,有点钝。

高频数据(比如分钟级、Tick级)才是真正的利器。我建议至少拿到分钟级数据,如果能拿到Tick级(每笔交易)更好。高频数据能帮你捕捉到:

  • 异常成交量:某只股票在公告前突然放量,但大盘没动
  • 价格跳跃:没有明显利空/利好的情况下,价格突然跳空
  • 订单簿失衡:买单突然增多,但卖单没跟上

核心特征构造思路:

  • 日频:过去N日的收益率、波动率、换手率、成交量变异系数
  • 高频:每分钟的成交量Z-score、价格跳跃次数、买卖价差、订单簿斜率

这里有个坑,我曾经踩过——高频数据的时间对齐。不同交易所的数据时间戳格式不一样,有的用毫秒,有的用微秒。你如果不做对齐,特征计算会全乱套。我的做法是统一转成UTC时间,然后按整秒对齐。

2. 财务数据:基本面里的“暗流”

财务数据是内幕交易检测的“照妖镜”。内幕交易者往往提前知道财报里的关键数字,所以会在财报发布前偷偷建仓。财务数据的特点是:更新频率低(季度/年度),但信息含量极高。

我常用的财务数据包括:

  • 利润表:营业收入、净利润、毛利率、营业利润率
  • 资产负债表:总资产、总负债、净资产、资产负债率
  • 现金流量表:经营活动现金流、投资活动现金流、筹资活动现金流

但光有原始数据不够,你得构造特征。我个人习惯做三件事:

  1. 同比/环比变化率:比如净利润同比增长超过50%,但股价没反应,这就有问题了
  2. 财务异常指数:用M-Score或F-Score来评估财务造假的可能性
  3. 预期差:实际财报数字 vs 分析师一致预期,差值越大,内幕交易动机越强

避坑指南:我曾经用未经调整的财务数据做特征,结果发现很多公司因为并购重组导致财务数据剧烈波动,模型误判率飙升。后来我加了“剔除重大资产重组影响”的预处理步骤,效果好了很多。

3. 公告数据:文本里的“暗号”

公告数据是内幕交易检测的“信号源”。内幕交易者往往通过公告来释放或掩盖信息。公告数据包括:定期报告(季报、年报)、临时公告(重大合同、股权变动、诉讼)、业绩预告、分红方案等。

公告数据的处理难点在于:它是非结构化的文本。你得把它转成结构化特征。我常用的方法有:

  • 情感分析:用预训练模型(比如BERT)对公告正文做情感打分,看是正面、负面还是中性
  • 关键词提取:提取“重大利好”、“业绩预增”、“资产重组”等关键词,统计出现频率
  • 公告频率异常:某公司在短时间内密集发布公告,这本身就是一个信号

我记得有一次做项目,发现某公司在停牌前三天,连续发布了三条“澄清公告”,内容都是“公司经营正常”。但情感分析显示,这三条公告的措辞越来越模糊,负面情绪指数在上升。后来果然爆出了内幕交易案。

注意:公告数据的时间戳一定要精确到分钟。很多内幕交易者会在公告发布前几分钟完成交易,如果你用日频数据,根本抓不到这个窗口。

4. 社交媒体舆情数据:散户的“集体无意识”

社交媒体舆情数据是内幕交易检测的“温度计”。散户的集体行为往往能提前反映内幕信息。数据源包括:股吧帖子、微博评论、雪球讨论、微信公众号文章等。

舆情数据的特征构造,我一般分三步走:

  1. 量级特征:某只股票的讨论量突然暴增,比如过去7天平均每天100条帖子,今天突然变成1000条
  2. 情感特征:用情感分析模型计算每条帖子的情感得分,然后统计正面/负面/中性的比例
  3. 异常模式:比如大量账号在短时间内发布内容相似的帖子,这可能是水军行为,也可能是内幕信息泄露

这里有个经验之谈——舆情数据要结合行情数据一起看。比如某只股票在公告前三天,舆情情感突然从负面转为正面,同时成交量放大,这基本就是内幕交易的典型信号。

特征工程的核心原则:

  • 每个特征都要有明确的业务含义,不要为了堆特征而堆特征
  • 特征之间要尽量正交,避免多重共线性
  • 时间窗口的选择很关键,我一般用公告前5天、前10天、前30天三个窗口

知识体系总览

下面这张图是我自己总结的,把四大数据源和对应的特征工程串起来了。你仔细看看,应该能对整体框架有个直观理解。

内幕交易检测 - 数据源与特征工程框架 行情数据 财务数据 公告数据 社交媒体舆情 特征工程核心操作 日频:收益率、波动率 高频:Z-score、跳跃次数 同比/环比变化率 M-Score、预期差 情感分析、关键词提取 公告频率异常检测 讨论量暴增检测 情感极性统计 多源特征融合(时间对齐 + 归一化) 内幕交易检测模型输入

这张图的核心逻辑是:四大数据源各自提取特征,然后在时间轴上对齐,最后融合成统一的特征向量喂给模型。你想想看,如果某个特征在四个数据源里都发出了异常信号,那内幕交易的概率就非常高了。

一个小技巧:特征融合时,我习惯用“时间窗口滑动”的方式。比如以公告发布时间为T,往前推5天、10天、30天,分别计算每个数据源的特征,然后拼接成一个长向量。这样模型既能捕捉短期异常,也能看到长期趋势。

好了,这一章的内容就到这儿。数据源和特征工程是内幕交易检测的基石,你花再多时间打磨都不为过。下一章咱们会聊特征工程的下半部分——特征选择与降维,到时候见。

专注资料整理