「这股票走势很强」是描述,计算机无法执行。「收盘价在过去 20 个交易日中有 15 天站在 20 日均线上方」是条件,可以被计算。
策略定制的核心工作,就是把描述改写成条件。改写时问自己三个问题:用哪个数据?(收盘价、成交量、涨跌幅)在什么时间范围内?(近 5 日、近 20 日)达到什么标准算触发?(大于、小于、超过均值几倍)
三个问题都答上来,一个模糊的想法就变成了一条可回测的规则。
原始想法:我想在放量突破的时候买入。
第一步拆解——什么叫突破?常见的定义是:收盘价创出过去 N 日的新高。N 取 20 就代表突破近一个月高点。
第二步拆解——什么叫放量?常见定义是:当日成交量大于过去 M 日平均成交量的 K 倍。M 取 20、K 取 1.5 是比较通用的一组值。
第三步组合:收盘价创 20 日新高,且成交量大于 20 日均量的 1.5 倍,两个条件同时满足时买入。
现在这句话已经完全无歧义了,任何两个人都能执行出同样的结果。
新手几乎把所有精力花在「怎么买」,但回测结果通常显示:卖出规则对最终收益的影响更大。
卖出至少要覆盖三种情况:止盈(赚多少走)、止损(亏多少走)、时间止损(多久没涨就走)。
另外还有一类是「信号反转卖」:如果买入条件是突破 20 日新高,那么价格跌回 20 日均线下方就是一个自然的离场点。这类卖出规则的逻辑一致性最好,也最不容易过拟合。
在买卖条件之外,还应该加两条保险:单笔最大亏损限制,以及最大持仓天数限制。
单笔止损解决的是「判断错了怎么办」。没有止损的策略,一次极端行情就可能把前面十次的利润全吐回去。
最大持仓天数解决的是「判断对了但迟迟不涨」。资金占用是有机会成本的,如果一个信号在合理时间内没有兑现,说明市场并不认同,及时换仓比死等更理性。
第一步先让策略能跑起来,别追求完美。写出来、回测一遍、看到数字,这个闭环最重要。
第二步再看弱项:是回撤太大?那就收紧止损或降低仓位;是收益太低?那就检查是不是买入条件过于苛刻导致机会太少。
第三步做稳健性检验:把参数上下浮动 20%,看结果是否稳定。稳定说明抓到了规律,剧烈变化说明在拟合噪音。
一次只改一个地方,改完立刻回测对比。同时改三个地方,你永远不知道是哪个改动起了作用。