策略回测使用说明:从示例策略到自己写条件
回测回答的是「这个想法过去成不成立」,不是「今天买什么」。页面打开时上面就有八个可以直接跑的示例策略——点一下装进画布,再点「开始回测」复算。八个里有七个是亏的,这不是挑出来吓人的,而是随手写的合理想法本来就大多不成立。
两种写法
积木:选字段、选比较、填数
表达式:直接写条件
形如 rs3m >= 90 and dist_ma20 >= 0。支持 and or not、比较、四则运算和括号。可用函数:
| 函数 | 含义 |
|---|---|
ma(20) / ma(close,20) | 20 日均值,省略第一个参数时对收盘价 |
ema(20) | 指数均值 |
ref(close,1) | 前 1 日的值 |
count(zt>0,5) | 近 5 日里满足条件的天数 |
sum(amt,5) | 近 5 日求和 |
hhv(high,20) / llv(low,20) | 近 20 日最高 / 最低 |
std(close,20) | 近 20 日标准差 |
cross(ma(5),ma(20)) | 前者上穿后者 |
abs(x) | 绝对值 |
滚动类函数(ma/ema/count/sum/hhv/llv/std)一条表达式里最多 5 个——每个都要把全市场全历史算一遍,多了会让回测排队。先用少几个条件把方向试出来。
可用字段(共 64 个,分 10 类)
点开看全部
| 分类 | 字段 |
|---|---|
| 强度 | nhbp 强度新高但价未新高、rsnh 强度线新高、rs12m 相对强度·12月(0-99)、rs1m 相对强度·1月(0-99)、rs3m 相对强度·3月(0-99)、rs6m 相对强度·6月(0-99) |
| 均线位置 | ma20r 60日内站上20日线占比、bull_ma 均线多头排列、dist_ma10 距10日线、dist_ma120 距120日线、dist_ma20 距20日线、dist_ma250 距250日线、dist_ma30 距30日线、dist_ma5 距5日线、dist_ma60 距60日线 |
| 涨跌幅 | p20 20日涨幅、p250 250日涨幅、p5 5日涨幅、pct60 60日涨幅、p1 当日涨幅、d52 距52周高点、dist_hi 距63日高点、gap 跳空 |
| 涨停 | zt 当日涨停、zt_mla 涨停且属主线、lb 连板数 |
| 量能 | ud 20日U/D量比、amt 成交额、turn 换手率、rv 相对量(50日)、vr10 量比(10日)、vr20 量比(20日)、vr 量比(5日)、vr60 量比(60日)、vhy 量能52周新高 |
| 市值与上市 | ldays 上市交易日数、mc 总市值、fmc 流通市值 |
| 波动与振幅 | adr 20日均振幅、boll_w BOLL带宽、amp 当日振幅、ampr 振幅/20日均振幅、dcr 收盘在当日区间位置、vw 近15日日均波幅 |
| 形态 | vcp VCP波动收缩、nh52 创52周新高、px_nh 创63日新高、cup 杯柄形态、stage 阶段 |
| 技术指标 | boll_pos BOLL带内位置、kdj_d KDJ-D、kdj_j KDJ-J、kdj_k KDJ-K、macd_dea MACD-DEA、macd_dif MACD-DIF、macd MACD柱、macd_x MACD金叉、rsi12 RSI(12)、rsi24 RSI(24)、rsi6 RSI(6) |
| 均线交叉 | cross10_20 10日线叉20日线、cross20_60 20日线叉60日线、cross5_10 5日线叉10日线、cross5_20 5日线叉20日线 |
字段右边的单位提示在积木里会显示。close/open/high/low/vol 这些基础序列在表达式里能用,但不出现在积木清单里。
买多少、怎么卖
账户模式 vs 等权篮子
卖出条件
profit 盈亏%、held 持有天数、cost 买入价、px 当前价。例如 profit >= 10 and dist_ma5 < 0 ——赚够 10% 且跌破 5 日线才走。多条之间是「满足任一条就卖」。我们自己筛过一轮:513 个配置,0 个通过
怎么筛的
候选=本站选股器的 49 个内置模板(另有 6 个用到回测面板没有的估值/财报字段,测不了)+ 8 个常见想法,各配 9 组参数(持有 5/10/20 日 × 不设风控 / 15%止盈8%止损 / 25%止盈10%止损),共 513 个配置。
四关:①2022 年起样本内年化为正 → ②成交不少于 150 笔(几十笔的正收益多半是运气)→ ③2025 年起样本外单独复算仍为正 → ④收益压得住相位极差。
结果:四关全过的是 0 个
样本内为正的只有 16 / 513,去重后 8 个策略进入检验。失败方式干净地分成两类:
| 策略 | 样本内 | 样本外 | 相位极差 | 卡在哪一关 |
|---|---|---|---|---|
| 温和吸筹 | +7.00% | -4.37% | 7.03pp | 样本外转负 |
| 杯柄形态 | +5.36% | -7.96% | 4.55pp | 样本外转负(是唯一压得住相位极差的) |
| 蓄势信号 | +3.60% | +41.30% | 8.27pp | 压不住噪音 |
| 超跌反弹 | +2.75% | +19.25% | 11.59pp | 压不住噪音 |
| 放量滞涨 | +1.06% | +19.42% | 2.71pp | 压不住噪音 |
| 放量上攻 | +0.05% | +12.68% | 3.17pp | 压不住噪音 |
第一类:样本内最好的两个,样本外都是负的。第二类:样本外很好看(+41.3%、+19.4%),但全期年化压不住相位极差——同一策略仅起始日差一天造成的波动,比它的收益还大。
第二类特别值得留意。只看样本外那一列,这几个数字摆出来相当好看。是第四关把它们拦下的,而那正是本站对回测一直在讲的东西。
该怎么读这个结果
不等于「量化没用」,也不等于我们的模板不好。它说明的是三件事:
一、面板从 2022 年起,那三年半对只做多、不择时的动量策略是逆风环境,亏钱是结构性的,不是条件写得差。
二、从几百个配置里挑最好看的那个,挑出来的是「选择」而不是策略本身。不做样本外和噪音检验,任何人都能从 513 个里挑出一个漂亮数字。
三、所以本页的示例策略不印收益数字——摆亏钱的数字劝退,摆过不了检验的漂亮数字是误导,两个都不做。例子的职责是教你条件怎么写。