周六更新了几个动量模型的跟踪。有读者反馈:你回测的本周选择,与上周公布的下周选择怎么不一样啊?
咋听,我一脸懵逼。
之前那么多周用下来,都没出现过这个 bug 啊。
仔细一查,的确错了。错误不是来自动量回测模型,而是来自于我自己手搓的一个日线转周线函数。
这里分享下我的“智障”,给大家提个醒。
我是用 python 的 pandas 包处理数据的。pandas 下有一个 resample 函数,可以直接将日线转换成周线,但它有一个缺点,会以每周自然日的最后一天(默认周日)作为周结束。
如果我希望以每个交易周自然的最后一个交易日结尾,这个函数就不行了。
所以我是手搓了一个日线转周线的函数,以“年份-周数”作为分类,选择每个分类下最后一个数据,就能获得周线数据了。
这个算法,大多数时候没错,但遇上近期这样一周跨年的就会出错,一个是 2024 年 52 周,一个是 2025 年第一周,会将一周拆分成两周了,基于这样数据计算的动量回测,自然是错的。
一时间,没想出来如何处理。
幸好,现在是 2025 年,遇事不决问 AI。正好买了 Windsurf 这个 AI 编程软件的使用权,可以直接用业内最强编程 AI 模型 Claude Sonnet 来写,一行指令,函数就有了,还有清晰的注释。
AI 写出了函数,我大体明白思路。to_period这个函数,的确是我以前用 pandas 的短版,算是学到了。
2025 年,每一天都会感叹 AI 的强大,感叹对我这种“三脚猫”的赋能。
年少时,一位我很尊敬的师长,推崇“跨学科”教育,我也受益匪浅。
但跨学科,很容易被视为“三脚猫”,门门粗通,门门稀疏。
但在 AI时代,这似乎成了一种新优点,“三脚猫”虽然可能执行能力上会弱许多,但相比普通人,却能通过提示词链接 AI 的强大能力。
下面,将动量模型跟踪的结果重新更新一下。
四资产轮动
基于沪深300、中国国债、纳斯达克、黄金四资产,以3周和4周并行回溯参数进行轮动
本周表现
纳指ETF: 100%
截至2025年01月03日,动量涨跌幅: -1.74%, 等权重涨跌幅: -1.28%, 动量超额: -0.46%
下周选择
纳指ETF: 50%, 国债ETF: 50%
二八轮动
基于沪深300 和中证1000 指数,以3周和4周并行回溯参数进行轮动
本周表现
300收益: 100%
截至2025年01月03日,动量涨跌幅: -5.16%, 等权重涨跌幅: -7.01%, 动量超额: +1.85%
下周选择
300收益: 100%
3104轮动
基于300价值稳健、300 成长创新、1000价值稳健、1000成长创新以3周和4周并行回溯参数进行轮动
本周表现
300成长创新: 50%, 1000成长创新: 50%
截至2025年01月03日,动量涨跌幅: -6.59%, 等权重涨跌幅: -5.82%, 动量超额: -0.77%
下周选择
300价值稳健: 100%
创业板与中证红利轮动
基于创业板R与中证红利全收益指数,以3周和4周并行回溯参数进行轮动
本周表现
中证红利全收益: 100%
截至2025年01月03日,动量涨跌幅: -2.18%, 等权重涨跌幅: -5.38%, 动量超额: +3.19%
下周选择
中证红利全收益: 100%
行业动量跟踪行业四周表现
行业动量456
基于一堆行业指数,以2周回溯参数选择排名第4-6进行轮动
本周表现
中证军工: 33%, 家用电器: 33%, 中证基建: 33%
截至2025年01月03日,动量涨跌幅: -6.41%, 等权重涨跌幅: -6.51%, 动量超额: +0.10%
下周选择
家用电器: 33%, 建筑材料: 33%, 中证基建: 33%
行业动量123
基于一堆行业指数,以2周回溯参数选择排名第1-3进行轮动
本周表现
国证芯片: 33%, 中证银行: 33%, 5G通信: 33%
截至2025年01月03日,动量涨跌幅: -7.49%, 等权重涨跌幅: -6.51%, 动量超额: -0.98%
下周选择
中证银行: 33%, 有色金属: 33%, 中证煤炭: 33%
责任编辑: