引言
最近原油期货价格大跌,真的达到了油比纯净水便宜的程度 (160升左右只卖210人民币,最便宜的纯净水还是500mL 1 块钱,所以一桶纯净水价值300人民币)。这种油价波动吸引了大量抄底和套利大军(截止写这篇文章,绝大多数原油类基金都因为 QDII 外汇额度耗尽停止申购了),但是作为套利,一个最需要解决的基本问题就是相应基金的 T-1 日净值预估,只有预估准 T-1 日净值,才有可能对国内 T 日场内市值的溢价情况心里有数。对于大多数跟踪单一指数标的的基金,T-1 日净值预估只需要考虑相应海外标的 T-1 日的波动和当日人民币对相应外币中间价的波动即可。这部分 QDII 基金的溢价数据可以在集思录查到。但是有一部分原油基金的构成是 FOF 的形式,主要投资海外市场的原油 ETF,而这些 ETF 的底层持仓是原油期货合约,通过不断移仓来实现对油价的跟踪。由于期货习惯性升水,在加上比较复杂的产品结构,这些 ETF 对油价的跟踪效果并不是很理想,而作为 FOF 的国内原油类基金的净值就变得更难预测。简单讲,通过 T-1 日的原油期货价格的波动叠加美元人民币中间价的方式来预测国内基金的 T-1 日净值,偏差往往比较大。以至于网上流传着南方原油净值根本估不准的说法。本文就旨在探讨一种更好的净值估算的方法论及其实践,并且进行不同基金可预测性的分析。
方法论
想把这些基金的净值估算的更准,想法也很简单。既然它们都是 FOF,那就翻出这些基金的季报,把持仓标的和仓位找到,用这些海外基金 T-1 日的涨落结合相应币种的人民币中间价,以持仓仓位为权重来估算国内基金 T-1 日的应有涨幅。这样估算理论上剩下的不确定性就只剩下基金持仓仓位与季报披露时的仓位发生变化。但好在这些 FOF 基金持仓仓位和标的变化不剧烈,这些底仓基金本身的每日涨落又相似,最大的麻烦是总基金仓位随着每日申赎可能发生较大变化,影响预测精度。但具体如何,还是要拿出数据来回测。路线图很简单:
- 找到国内原油类基金的最新季报,记录其持仓海外基金及仓位。
- 找到海外市场相关的基金,并获取其日线数据来得到每日涨落。
- 找到对各币种的人民币中间价数据。
- 发挥创造力,找到合适的自动化和可视化方案来进行分析和持续集成。
几个相应的细节,对于 1,没什么好办法,只能手动找季报记录持仓数据成 python 字典。好在这些国内基金的持仓一般在10个以内,季报披露可以比较完整看到全部的持仓数据。对于2,数据源是 investing.com, 金融产品的种类很多,历史数据也很全,基本上也没什么反爬措施,就有个 UA 的验证而已。当然要想预测 T-1 日净值,还得获取基金 T-2 日公布净值,这一数据源是天天基金。对于溢价分析,还需要场内净值,这一数据源是雪球(investing.com 似乎也有场内 LOF 的数据,但似乎有问题)。对于3,回测证明,用人民币中间价(数据源外汇局官网)进行预测要比人民币市场价(数据源 investing.com)准的多得多,因此一定要额外拿到人民币中间价数据。对于4,主要是有三个层面,第一个是方法论验证落地,回测各基金预测情况的准确度,这一部分 jupyter notebook 即可胜任。第二个是溢价的及时报警,这次我没选择邮件而是用了 pushbullet, 接口更容易,通知也更明显。这种连续监视型的任务,一般来说随便找个服务器,挂个 crontab 任务即可。但是这次我直接选了 github action,由于其具有定时开启的功能,可以作为免费的服务器来用,羊毛用起来又稳定又幸福,真香!第三个是页面展示,希望可以用网页显示每日的预测甚至是实时预测数据。一般这种任务还是找个服务器,搞个 LMAP 架构也不麻烦。但是我再次发挥想象力,认为羊毛就该从同一只羊身上薅,于是选用了 github page 加 github action。以定时更新实现伪实时页面的效果。这样溢价报警和净值预估网页又可以统一在同一个 repo 里,简直完美。
实践
关于基金 T-1 净值预测网站,溢价提醒和相关研究与基础代码,都在同一个 repo: https://github.com/refraction-ray/lof-bot. 净值预测的网页在:https://re-ra.xyz/lof-bot. 整个项目是基于 xalpha。 有趣的是,由于是 backend by github action,任何人只要 fork 了这个仓库,只需在 setting 里添加一个 secret,就可以有自己的提醒任务了。对于净值预测,除了 T-1 日预测,我还加入了 T 日实时预测。该预测基于 T-1 日预测的结果和 T 日实时原油期货(36% brent,54% wti)的涨落。之所以原油类基金可以做到 T 日实时预测,主要是因为原油期货全天交易时间足够长。而其他跟踪美国指数的基金,由于国内开盘时间和美国市场没有交集,就不适合做 T 日实时预测。(当然你也可以基于美国股指期货市场的波动来强行做实时预测,但往往其对最后开盘股价的波动的反应不太靠谱。更新: 已添加基于股指期货的实时预估。)这里的网站采用了 gh-pages 分支发布,而该分支由 github action 自动推送。通过 html 版本对比和靠格式化注释作为锚点的渐进式渲染,可以实现网页的伪实时效果。
分析
这部分主要关心预测的效果,说了这么半天通过这么复杂的方式预测,效果真的好吗,有多好,这部分的研究可以参考该 notebook. 这里总结一些要点如下:
- 南方原油确实很难预测准,但通过持仓基金的全追踪,还是可以实现偏移的均值在 0.13 百分点左右(也许是全网最佳了,欢迎提出以近一年数据为 benchmark,可以打败该结果的可行的自动化预测方案)。
- 令人意外的是,单纯跟踪指数,持仓美股的华宝油气可预测性也没有那么准,平均偏移 0.11 个百分点。这还已经是我们做到了比雪球上华宝油气官方账号预测更准的结果。因此从这个意义上说,如果你能接受华宝油气的预测净值,那么南方原油按我们的方案也算能预测地比较准了。
- 易方达原油持仓同样是一堆海外原油 ETF,但可预测性比南方原油还差,平均偏移 0.14 个百分点。而标准差偏移更是远远大于其他基金。
- 同样是持仓一篮子原油 ETF 的国泰商品(完全跟踪原油价格,基金名字没有反应出这个基金本质),可预测性就好一些,平均偏移不到0.1个百分点。嘉实原油预测平均偏移,也不到 0.1 个百分点,两个算是原油类基金中可以预测的相当准的,也是平时套利阈值可以更小的(忽略场内交易量因素)。
- 作为对比,跟踪海外股票大盘指数的 QDII 基金,净值预测的平均偏移通常只有 0.04 个百分点。