本文仅用于学习研究与技术交流,不构成任何投资建议。

最近一个月,我一直在研究 ETF,对启四大佬每天更新的内容非常感兴趣,也从中学到了不少东西。

启四每天都会更新一些 ETF 数据,包括偏离率、多日涨跌幅等指标。

图片来自启四校长的星球

其中,多日涨跌幅比较好理解,也比较容易复现。但在复现“偏离率”这个指标时,我怎么都算不出和启四一致的结果。

一开始,我以为这个偏离率就是常见的乖离率,也就是当前价格相对 20 日均线的偏离程度,计算方式大概是:

偏离率 = 当前价格 / 20 日均线 - 1

但实际算出来以后,结果始终对不上。折腾了几次之后,我也就暂时放弃了。

让 Codex 帮我反推公式

今天早上突然灵机一动:既然我自己算不出来,那能不能把启四大佬 4 月 30 日的分析结果图片发给 Codex,让它帮我反推一下这个偏离率到底是怎么算的?

说干就干。

我把图片发给 Codex,然后输入了这样一段 Prompt:

这是别人 4 月 30 号晚上发的结果,麻烦帮忙破解下这个图片里面的偏离率是怎么计算的?

codex prompt

没想到,Codex 三分钟左右就破解成功了!!!

原来启四大佬这里的“偏离率”,并不是当前价格相对 20 日简单移动平均线 SMA20 的乖离率,而是:

当前价格相对 20 日指数移动平均线 EMA20 的乖离率。

也就是说,我之前一直用的是普通的 20 日均线 SMA20,而大佬用的是 EMA20。

Codex 还直接给出了对应的 Python 计算代码:

ema20 = close_series.ewm(span=20, adjust=False).mean().iloc[-1]
bias = (current_price / ema20 - 1) * 100

不得不说,这个破解效率确实很高。

当然,Codex 能这么快完成反推,也和我之前已经有一些基础代码有关。比如如何获取行情数据、如何处理复权、如何计算涨跌幅等,它能很快理解已有代码的逻辑,然后在这个基础上进行枚举和验证。

基于Tushare数据的本地量化接口库

Codex 当时的思路大概是:

我会用你本地行情数据反推几种常见口径:相对 5/10/20 日均线的乖离率、相对转变日价格的涨幅,以及可能的短长均线差。先拿图片里的几只 ETF 做数值匹配,看哪个公式最接近。

这个过程其实挺有意思的。以前这种事情可能要自己手动一个个猜公式、写代码验证,现在直接把目标结果和基础数据丢给 AI,它就能帮你快速枚举和排查。简直不能更方便!

构建自己的 ETF 概览

既然偏离率的计算方式已经破解出来了,我索性在 Codex 的帮助下,构建了一套全市场 ETF 分析工具。

目前主要包括:

  • ETF 动量
  • 乖离率
  • 偏离率
  • 多日涨跌幅
  • 全市场 ETF 横向对比
  • 近期动量变化

为了方便演示,我这里先按照启四大佬常用的 ETF 列表做了一版分析,计算结果与大佬的是一致的。

这里展示的是 ETF 概览:

ETF概览

以及 ETF 近期动量变化:

ETF近期动量变化

后续如果继续完善,还可以把这套工具拓展成一个更完整的 ETF 观察面板,比如加入成交额、换手率、趋势强度、板块分类、风险提示等维度。

小结

这次最让我有感触的是,AI 不只是能帮你写代码、修 Bug,它还可以帮你反推思路。

以前遇到一个指标算不出来,可能要自己查资料、猜公式、写代码、反复验证。现在有了 Codex 之后,只要你能提供目标结果、基础数据和大概方向,它就能帮你快速做枚举和排查。

这类能力对于量化、投研、数据分析来说,真的非常实用。

本文仅用于学习研究与技术交流,不构成任何投资建议、证券投资咨询服务或收益承诺。
Discussion

评论与交流

当前主要通过知识星球和社交媒体交流文章相关问题。

交流入口

如果你想讨论文章里的代码、数据接口或本地运行问题,可以通过知识星球或页脚社交媒体联系我。