动量方舟 · Momentum Ark

多策略动量轮动研究平台
本文是系列《从 0 到量化平台》的第 4 篇,共 13 篇。查看目录 →
2026-10-14 从0到量化平台策略规则书

第 4 篇:我出规则,AI 出实现——18 个策略是怎么长出来的

一条消息,一个策略

image
image

10 月 14 日下午 14:23,我给平台加了第一个"自己的"策略:

> 我(10-14 14:23):增加个策略,红利创业板轮动策略 > 创业板指数/中证红利指数,比率 > 如果比率 <0.35,切换持有创业板类的品种 > 如果比率 >0.6,切换持有红利类的品种 > 在这个区间内,维持之前持仓不变,直到信号出现。 > 产品品种:创业板类品种:创业板ETF (159915);红利类品种:红利ETF(510880)

这条消息有多长?不到 150 字。它包含了四个要素:信号(比值)、阈值(0.35 / 0.6)、区间内怎么办(不动)、买什么(两个 ETF)。

AI 一小时内实现、上线、跑出十年回测。

这就是这套平台最核心的生产方式:我写规则,AI 写代码。 到 10 月 20 日,18 个策略里有 16 个是这么一条一条加上去的。我后来发现,我写的每段规则,其实都能拆成三段:

段落回答什么例子
买入条件什么时候进场20 日涨幅排名第一 + 站上 20 日均线
卖出条件什么时候走动量跌出前二,或有效跌破 20 日均线
品种清单买哪几个创业板 ETF(159915)、红利 ETF(510880)

三段写清楚,剩下的事我不用管。

有些规则,我会写到"变态细"

10 月 16 日,我一次加了两个策略。其中"股债平衡"那段,最后一句是这样的:

image
image

> 我(10-16 17:03):要求,每次调仓,需要标明是哪个标的调仓多少金额,占总资产多少比例 到 目标标的。

这句话跟策略收益毫无关系,它管的是我看得懂。因为"从 80 万股票调到 20 万"这种说法,我看了要在脑子里算;而"卖出沪深 300ETF 60 万(占总资产 60%),买入十年国债 ETF 60 万",我一眼就知道发生了什么。

同一条消息里,红利低波股息策略我是连着数据来源一起给的:

> 差值 = 红利低波指数股息率 − 10 年期国债收益率 > <2% 清仓;≥2% 全仓 <3%;≥3% 全仓,还强烈推荐增量资金介入 > 红利低波指数股息率 数据来源:(中证指数官网链接,说明要下哪个文件、选哪一列) > 10 年期国债收益率 数据来源:(中债网链接)

我为什么要给链接?因为我知道"股息率"这个东西有五六种算法。我不给,AI 就自己挑一个,回测就跑偏。凡是口径有歧义的地方,我都会把源指过去。

规则也会有矛盾——这是 AI 最有用的时候

10 月 29 日,我拿一个想了很久的策略去让它评审,开头特意写了"先不改代码"。它找出了一个我自己没发现的硬伤:

规则里写着"第 3 档加仓到 80% 仓位",同时又写着"单只 ETF 总投入浮亏 15% 就全部清仓"。按我的加仓节奏算,第 3 档刚建完,浮亏就可能已经超过 15%——换句话说,我设计了一个刚买满就必须清仓的策略。

一行代码没动,一次对话,救了我半个月的返工。这件事让我改了个习惯:任何新策略,先让它挑毛病,再让它写代码。

有些策略,是"人不满意"逼出来的

10 月 20 日下午,两个刚上线的策略我不满意:

> 我(10-20 15:10):今天,新加的两个策略 大盘择时和大盘小盘轮动,要稍微调整一下策略,原先策略收益太低了

于是把"200 日均线 + 连续两天确认"改成"50 日线上穿 250 日线就买",把动量的 20 日改成 60 日、均线改成 250 日。

"收益太低"是纯用户的特权。 AI 不知道你对收益的要求,也不知道你愿意承担多大回撤。它只能给你数据,判断"这样够不够"的只能是我。

同一天还有一次,我自己给出了修复方案:

> 我(10-20 15:47):有个小问题,初值问题:策略设计的是"金叉买入、死叉卖出",但如果一开始就在金叉状态,系统不知道应该持仓。 > 修复方案:空仓时的判断应该改成:只要 MA50 > MA250(趋势向上)就买入,不一定非要等到"金叉那一天"。 > 这样不管是从头就趋势向上,还是中途金叉,都能正确持仓。改动很小

为什么我能想到?因为这个逻辑漏洞在现实里很常见:规则写的是"事件",但市场大多数时候处在"状态"里。 金叉是事件,趋势向上是状态。只认事件,就会漏掉一开始就在趋势里的情况。

也会翻车

10 月 28 日,新加的"估值分位择时"上线后,我在图上看到一串诡异的操作:

> 我(10-28 14:06):这个 估值分位择时策略,里面按理 沪深300ETF 是仓位持有,怎么在极短时间内,出现空仓、卖出、买入这些操作呢,你哪里错了,自己看看

原因是信号初始化的 bug:历史开头那段,估值分位数据还没齐,系统把它当成"极高分位",于是空仓;第二天数据来了,又满仓。

这类问题肉眼可见:图上出现一堆密集的小买卖点,跟策略逻辑明显不符。所以现在我看任何新策略,第一眼看的不是收益率,是操作次数——一个年化 20% 但一年交易 200 次的策略,成本就能吃掉一半。

一件我做对的事:坚持用真标的

10 月 28 日做"策略实验室"时,AI 提了一版方案,说国证价值 100、成长 100 这类指数没有对应 ETF,建议用指数代替。

> 我(10-28 16:35):嗯嗯,还有个问题,他说的类似 国证价值 100,成长 100,这些他说用指数替代,不要听他的,还是用 ETF 来完成,没有数据的部分,就不管,一定用真实的交易标的,价值ETF易方达159263,成长ETF易方达 159259

这句话背后是一个很朴素的判断:回测里用指数、实盘里买 ETF,中间差着跟踪误差、溢价、流动性。 指数是纸面上的完美,ETF 才是你能买到的东西。

宁可少两个标的,也不用假数据把结果做好看。

这一篇学到的

  • 策略规则写成三段:买入条件 / 卖出条件 / 品种清单,AI 就能落地
  • 口径有歧义的地方,把数据源链接贴过去,别让它自己挑
  • 新策略先让它挑毛病,再让它写代码(我自己那个"买满就必须清仓"的策略就是这么被救的)
  • "收益太低"这种话只有你能说,AI 不知道你的偏好
  • 回测一律用真实可交易的 ETF,不用指数替代

【你也可以】

把你脑子里任何一个投资规则,写成这三句话发给 AI:

1. 什么情况下买、买哪几个(写清代码,如 510300) 2. 什么情况下卖 3. 什么情况下什么都不做

然后加一句:"先把这条规则的逻辑漏洞挑出来给我,别写代码。"

第 3 句比前两句都重要——大多数策略不是执行错了,是规则本身自相矛盾。


本系列为个人研究与搭建记录,文中所有策略仅用于研究,不构成投资建议。历史回测不代表未来收益。

数据仅供参考,不构成任何投资建议。市场有风险,投资需谨慎。

其他笔记