基金交易量预测比赛_1_数据分析
1 简介
比赛
AFAC2025挑战组-赛题一:基金产品的长周期申购和赎回预测
提供了自 2024-04-08 以来 20
支基金的申购和赎回数据,以及对应几个界面的曝光量,比赛的目标是预测未来七天的交易量。
- 比赛地址:https://tianchi.aliyun.com/competition/entrance/532352/
- 官方数据下载地址:https://github.com/AFAC-2025/AFAC2025_train_data
本文将探讨面对未知领域数据的分析方法及对该领域的理解过程,力求结合常识与数据进行解读。
下面,先来看一下基金类型的分布情况,然后分析两个典型数据,一个偏股型基金和一个偏债型基金,为每支基金画个像。
(以下基金相关信息来源于大模型,可能不完全准确)
2 基金类型分布
比赛提供的数据虽然只有 20 支基金,但包含了 10 种不同类型,如下图所示。这些类型包括长债、短债、DQII、军工、科技、煤炭和新能源汽车等,每种类型的数据量并不多,时间跨度也较短,知识迁移可能受限。
从行业逻辑上来看,可以简单地分为偏股和偏债两种类型。偏债类型类似银行存款,波动小,上涨空间也有限;偏股类型则类似于股票投资,与具体股指或行业相关,一些灵活配置的基金与基金经理人的操作能力密切相关。
3 偏债类基金分析
000192 是一支典型的债券基金。图的上半部分,蓝色表示基金的申购量,绿色表示赎回量。下半部分的蓝色线表示该基金的净值,灰色则显示了大盘指数在同一时间段内的收盘价变化。可以看到,该基金表现一直比较平稳,盈利在前半段优于大盘,后半段逊于大盘。
1 | 基金代码: 000192 |
4 偏股类基金分析
再来看 164906,这是一支比较典型的偏股基金,DQII,重仓科技,涵盖互联网平台、云计算、人工智能等领域。其 90% 以上的资产投资于指数成分股(如腾讯、阿里、美团等),各个股票的权重与指数保持一致。
可以看到,该基金从始至终都跑赢大盘。在最后阶段,当大盘盈利 20% 时,它的盈利已接近 40%。
1 | 基金代码: 164906 |
5 申购和赎回的差异
从上图中可以看到,时序交易数据的典型特征表现为:周末和工作日的交易量存在差异,以及偏股型基金在 24.9 月的位置出现异动。可以看到,短期内的剧烈变化难以事先准确预测。
同时,上图中绿色线和蓝色线展现了不同的规律。通过对图的观察以及后续建模中特征重要性的分析,蓝色线代表申购量与时间的相关性较强,例如与某天是星期几或是处于月份中的哪个阶段等因素相关。这可能源于购买基金时常采用定投方式。从模型结果也可以看到申购量的误差更小。
相对来说,赎回量波动更大,更容易受到股市的影响。尤其是偏股基金在大幅上涨后,通常伴随着大量赎回,这可能是投资者用脚投票的一种选择。
以下纯属个人观点:我们注意到的大量赎回往往先于股市下跌,那么这是否可以视作上涨过程中的预警信号呢?例如,在 164906 基金中,可以观察到变盘发生在 2024 年 10 月 8 日(港股也差不多),而在图中 9 月底就已经出现了两次“迅速增高”的赎回峰值(后来我查看了所有 20 只基金,图中无论是偏股还是偏债,大多数在 9 月底都显示了这两次尖峰)。
6 大盘的影响
并不是每一只偏股型基金都都与 164906 波动形态一致,这可能涉及具体持仓的股票、赎回规则、特殊事件以及基金性质等因素。
可以看到的是,从 24 年 4 月到 25 年 7 月,大盘从 3000 点涨到 3600 点,上涨了 20%。因此,如果这段时间我的股票账户也有类似的表现,并不意味着我有什么操作能力,只是赶上好时机了。同时这也说明了这段时间相对短暂,数据无法覆盖涨跌的各种情况。
在这一年多的大盘趋势中,图中的灰线展示的是每日收盘价,因此没有反映出 3674 点的高点。高点这一天的收盘价为 3489 点。值得注意的是,在 24 年 9 月的低点,仅用了不到 10 天的时间,大盘便从 2700 点上涨到 3600 点。这种情况非常特殊,几乎无法泛化。
7 单支基金分析
下面详细分析 164906,它重仓的股票腾讯、阿里、美团都在港股,所以需要参考恒生指数,如下图所示:
每一波大涨都会伴随一波基金赎回,而赎回通常从上涨的后期就开始了。不过,并不是所有普通的上涨都会触发卖出,例如 25 年的 4-5 月,尽管上涨力度不小,但并没有导致大量赎回。
注意:需要对比基金所在市场的整体趋势,如果是 164906 基金就需要参考恒生指数,而不是沪深 300,否则就无法理解 3 月底的赎回量为何增加。
近期数据变化
比赛最后两天的数据(7 月 23 日和 7 月 24 日)显示出明显的放量赎回,这两天的数据甚至对模型产生了偏差——将这两天的数据加入模型训练后,模型对 6 月中旬至 7 月中旬的预测误差明显增大了 10%。
可能都不需要建模,普通人从 164906 的申赎图中也大概能猜到下周的赎回量将如何变化。
从下图指生指数日线中可以看到(鼠标虚线停在 7 月 24 日),23 日和 24 日这两天股市仍在上涨,而接下来的一周(25.7.28-25.8.1)如何发展——在图中也看到了。
相应的 A 股数据如下,基金大量赎回出现在蓝色标记框的那两天(20 支基金中至少有 15 支的赎回量明显增加:之前量能都是正常的,这两天的赎回量突然大幅增加,而申购量变化不大。全画在一张图上太乱,大家可以自己画一下),但在看 K 线图上是完全看不出变化的。
也就是说在 7 月 23 日和 24 日的上涨过程中,出现了大量基金赎回单。
背后的逻辑可能是:基金的赎回必定引发对应股票的下跌,而下跌的数据一旦形成,可能导致一些技术指标发生变化。一方面会引发近期上涨后获利盘的逃离;另一方面可能触发量化算法识别并卖出,形成踩踏。
据说现在的私募基金中,量化私募已经占了一半甚至更多,因此市场可能比以往更敏感,涨跌情况都会被放大,尤其在处于短期高位时,风险更大。
8 我的比赛失误
我对接下来的一周的预测,以 164906 为例,应该是这样的(红色表示赎回):
(放大后可以看到从 25.07.22 开始,赎回单就变多了)
我发现最后两天的数据会影响模型,使得它对历史数据的预测精度下降了 10%。为了获得更好的成绩,我耍了一个小花招:去掉了 7.24 的数据。结果没考虑到历史数据是通过滚动填充的,这样就整体偏移了一天,最后以失败告终。我提交的结果如下:
不解释了,这些奇奇怪怪的前处理和后处理,为了拟合数据拼拼改改总是有点凑数的意思,最终我也自食恶果。
9 后续
看到这两天的数据后,我对周围的朋友说,最近几天可能会有变盘。有的小伙伴一直和我争论说长线还会涨,也有小伙伴听信我的判断,比我减仓还猛。
至于后面会怎么样,我也不知道。基金的申购和赎回数据是一个非常“有限开放”的领域,一般情况下 API 很难直接获取。比赛结束了,我也拿不到基金申赎量能数据了。而在这种信息极其有限的情况下,我们只能对短期进行预测。