![]() 朋友们,猫哥的'Claude Code开发100个量化策略'系列又更新了!前两期我们分别讲了经典的海龟交易策略和稳健的全天候策略,反响热烈。 至于为什么一段时间没有更这个系列呢,是因为猫哥之前一直用Ptrade,现在正在陆续切换到QMT,所以这几天一直在熟悉接口规范、数据结构啥的。 关于Ptrade和QMT的对比,猫哥目前也是有一定的心得,就是Ptrade是运行在券商服务器上,好处是获取行情很快延迟很低,适合高频、打板类的策略,但是因为服务器资源有限,回测速度比较慢。 QMT则是运行在本地电脑上,回测速度很快,但是获取行情的速度可能就比不上Ptrade,所以适合一些低频的、需要大量回测的策略,例如因子投资、ETF轮动这种。 所以猫哥也会视策略的不同,选择合适的平台进行回测和交易。 今天猫哥给大家带来一个更有'攻击性'的策略——行业ETF轮动策略。 轮动策略是什么?说到轮动策略,很多朋友可能不太熟悉。简单来说,就是在一篮子资产中,定期挑选表现最好的进行持仓,表现差的就踢出去。 为什么轮动策略有效呢?这背后有几个市场逻辑:
今天我们要实现的策略,就是在9个行业ETF中,每天计算它们的'动量得分',然后选出得分最高的持仓。 ![]() 需要注意的是,因为股票池是固定的,所以一定程度上有过拟合的问题,股池以偏向科技类ETF居多,适合最近的市场风格,但是未来的市场风格能不能继续这样演绎下去,就见仁见智了。 策略核心逻辑💡 核心亮点1:斜率动量打分传统的动量策略往往只看涨跌幅,比如'买入过去20天涨幅最大的'。但这个策略更聪明,它用的是线性回归斜率。 什么意思呢?举个例子:
虽然涨幅一样,但ETF-B的趋势更稳定,未来继续上涨的概率更大。线性回归斜率就是用来量化这种'趋势稳定性'的。 更妙的是,策略还乘以了R²(决定系数)。R²越大,说明价格走势越接近一条直线,趋势越清晰。这样就能筛选出既涨得快、又涨得稳的优质标的。 ![]() 代码实现长这样: # 计算斜率动量得分💡 核心亮点2:RSRS择时系统光会选股还不够,还得知道什么时候该买、什么时候该躲。 这就要靠RSRS择时指标了。RSRS全称是'阻力支撑相对强度',由光大证券在2017年发布的研报《基于阻力支撑相对强度的市场择时》中提出。
![]() RSRS得分的含义:
但光靠RSRS还不够,策略还加入了20日均线过滤: # 均线信号这种双重确认机制,有效降低了虚假信号。 只有当市场真正转强或转弱时,才会发出交易信号。 🛠️ 如何用Claude Code开发?好了,讲完策略原理,该说说怎么用AI开发了。 猫哥这次的开发过程也是全程AI辅助,几乎没怎么手动改代码。 关于AI写量化策略,猫哥最近也有自己的心得体会,大体分为两种方式,第二种最简单。 第一种是你脑海中有一个想法,但是没有现成的代码,所以需要给AI提出非常详细的需求描述,例如整体的逻辑是什么、如何选股、如何交易、如何设置参数、 函数应该如何命名、如何处理异常、如何持久化交易数据等等。 需要AI先阅读QMT的文档,然后根据你的需求去写代码(最好写一个完整的需求文档),相当于从头开始,不建议这样做。 那么第二种是什么,第二种是你已经有了一个完整的QMT代码,虽然这个代码的交易逻辑可能跟你脑海中的想法不一样,但是在数据获取、交易下单、异常处理等模块,已经写好了现成的代码,直接就可以在其他代码里用。 例如之前猫哥写了这样一篇文章: 这个代码是做宽基ETF轮动,例如创业板ETF、国债ETF、纳指ETF等等,那么我这次想做行业ETF是不是就改一下股票池就可以? 此外这个代码是基于 90日均线的乖离率 做线性回归,但我觉得行业ETF的价格波动更剧烈想改成 价格的线性回归,是不是直接让AI改就可以? 此外,我还可以在此基础上添加大盘择时,例如RSRS、均线等等,可以说在AI的加持下,已经可以自由将头脑中的想法,转化为量化策略去实现。 第三步:回测验证和优化生成代码后,放到QMT或Ptrade平台回测。如果有报错或逻辑问题,直接把错误信息复制给AI,它会帮你快速定位和修复。 例如猫哥在回测的时候遇到一个问题,就是ETF数据不足,很多行业ETF上市时间不一致,如果在回测时间之后上市的,获取不到数据就会报错。 于是我通过AI添加一个功能,加入数据完整性检测,不足25天的ETF跳过评分。 回测结果下面看一下回测结果,回测时间是2020年1月1日-2025年9月30日: ![]() ![]() 回测截止到2025年9月30日,单位净值是10.162,五年10倍,年化收益率51.39%,夏普比率1.46,效果是非常好的,但是也需注意,策略在2023年之前,收益率曲线并没有很陡峭,因为股池大部分是科技类ETF,而科技牛是在2023年ChatGPT横空出世,特别是去年的九二四行情以来,市场风格偏向科技,特别是AI股的炒作,所以如果你看好未来继续延续AI科技的风格,那么此策略可以关注;如果更看好反内卷等低位板块,需要重新考虑如何设计ETF池子。 刚才展示的是添加了RSRS择时和均线择时的情况,现在展示一下取消均线择时,仅仅依靠RSRS择时是什么效果: ![]() ![]() 可以看到,取消了均线择时,仅依靠RSRS的择时,会降低策略的表现,但效果也还不错,五年8倍,年化46.12%,夏普1.36 。 本来还想展示一下,完全不择时,满仓轮动是什么效果。但国金的QMT这几天一直登不上去,哎想研究一下策略都那么难,下午好不容易登上去了,没回测几次就崩了自动退出了,等下次有机会再更新吧。 总结通过这个案例,我们不仅学到了一个轮动策略,更重要的是理解了几个投资思想: 1. 动量投资的本质,动量投资不是追涨杀跌,而是识别趋势并跟随趋势。斜率×R²这个指标,本质上是在量化'趋势的强度和确定性'。2. 择时的必要性,纯轮动策略在单边下跌中也会亏损,加入择时功能可以在系统性风险来临时及时止损。但择时不是预测,而是对市场状态的响应。3. AI的价值,Claude Code在这个案例中展现了强大能力:不仅能实现交易逻辑,还能考虑工程细节、处理异常情况、优化代码结构。这大大降低了量化策略开发的门槛。但AI只是工具,策略思想还是要靠人。你需要清楚地知道自己想要什么策略、适合什么市场、能承受多大风险,然后让AI帮你实现。 认真研究策略背后的逻辑,理解市场的运行规律,才是投资的长久之道。
|
|
|