跨层补单网格交易策略探究

上一篇用 180 组回测对比了固定网格和浮动网格,结论是两者整体打平,胜负看网格形态和行情形状是否匹配。但有个老问题没解决:固定网格在单边下跌市平均要亏 7%,浮动网格也只是少亏一点,并没有翻盘。

回测用的是 1 分钟 K 线,有些时候一根 K 线之内价格会跌穿或涨穿好几条网格线。之前的网格策略对这种情况做了简化处理:不管一根 K 线跨了几层,跌穿只买入一笔、涨穿只卖出一笔。这样做主要是图实现简单,也避免单根异常波动一次性触发太多下单。这一篇换一种处理方式——跌穿几层就买入几笔、涨穿几层就卖出几笔,看看效果如何。

这是网格策略改进探索系列的第二站。每个想法都用同一套参数扫描跑一遍,让数据说话,而不是凭直觉。


一、改之前先押一注

技术上原策略是这么做的:每次触发只下一笔单,成交完把 base_level 直接跳到当前所在层。中间那些被略过的层级永远不会再触发——这是真正”漏单”的地方。

漏的频率其实不高:日常震荡里绝大多数 K 线都只跨 1 层,根本不存在漏单问题。会出大事的是开盘跳空和急跌时段,一根 K 线就能跨十几甚至几十层。

那把这一笔改成”跨 N 层就成交 N 笔”,结果会怎样?凭直觉,我事前的预判是:

  • 下跌时 N 倍买入 → 应该亏更多

  • 上涨时 N 倍卖出 → 应该踏空更多

但回测结果不是这样。下面看数据。


二、改进一:跨层补单(只改一行)

2.1 原策略 vs 新策略

情形 原策略 新策略
跨 1 层 1 笔 1 笔
跨 N ≥ 2 层 仍只 1 笔 N 笔(按 N × 单笔量)
锚点 永不变 永不变(一致)
base_level 推进 直接跳到 target_level 直接跳到 target_level(一致)

其他逻辑一字未改。

2.2 代码

# 原策略if target_level > base_level:    sigs = generate_signal(..., trade_amount/price ...)   # 永远只算 1 笔# 新策略if target_level > base_level:    cross_layers = target_level - base_level              # 新增:跨越层数 N    total_vol = (trade_amount/price) * cross_layers       # 新增:N × 单笔    sigs = generate_signal(..., total_vol ...)

卖出受可用持仓限制(min(N × 单笔, 持仓)),买入受现金限制(min(N × 单笔, 现金上限))。两个安全阀都保留。


三、跨层补单的回测结果

为了和上一篇直接可比,标的、回测区间、滑点佣金这些设置全部沿用上一篇,唯一变的就是策略换成了跨层补单。

3 标的 × 6 间距 × 5 金额 = 90 组(新策略),与上篇的固定/浮动网格 180 组基线对齐。零滑点、佣金万 0.5、初始资金 100 万、初始 50% 底仓、14 个月(274 个交易日)1 分钟 K 线。

3.1 全局对比

策略 平均收益率 平均最大回撤 平均成交笔数
固定网格 +6.74% 11.74% 2872
浮动网格 +7.21% 11.09% 781
跨层补单 +11.01% 6.82% 3154

收益高了约 4pct,回撤砍了将近一半。

3.2 分标的逐场景

标的(行情) 策略 平均收益 平均回撤 最优 最差 平均成交
A · 单边下跌 固定网格 −6.98% 15.75% +3.78% −17.65% 1565
浮动网格 −5.63% 15.71% +2.95% −18.38% 979
跨层补单 +6.09% 8.59% +13.18% +0.56% 3222
B · 震荡偏强 固定网格 +14.13% 16.86% +33.46% +6.84% 5941
浮动网格 +11.22% 14.37% +20.41% −9.75% 1204
跨层补单 +15.44% 9.84% +34.44% +2.76% 5393
C · 单边强涨 固定网格 +13.08% 2.61% +37.05% +0.82% 1110
浮动网格 +16.02% 3.19% +38.92% +0.92% 161
跨层补单 +11.52% 2.02% +37.60% +0.76% 848

把每个标的的平均收益和平均回撤画成柱状图,一目了然:

图片

A·单边下跌 三方对比

图片

B·震荡偏强 三方对比

图片

C·单边强涨 三方对比

逐组对比(同一参数下补单减固定网格的收益差):

标的 胜率 ≥+5pct 大胜 平均差值
A 30/30(100%) 21 组 +13.07pct
B 23/30(77%) 2 组 +1.30pct
C 13/30(43%) 0 组 −1.56pct

A 全场无败绩、且 70% 是 ≥+5pct 大胜;B 多数占优但优势小;C 一半多的组合略输。

图片

A·单边下跌 收益差热图

图片

B·震荡偏强 收益差热图

图片

C·单边强涨 收益差热图

三张热图各看各的(红=补单更优,绿=固定更优):A 全部为红,最深的格子在 0.3% 间距档(最深约 +31pct);B 多数浅红、夹杂几格浅绿,整体平淡;C 红绿夹杂,小间距 × 小金额那一角是深绿(最深约 −17pct),大间距区有零星浅红。三张图的色板都以 0 为中心、按各自的最大幅度撑满,所以”颜色深浅”在同一张图内可比,跨图比较看数字。

到这里有两个问题待解释:为什么下跌市能逆袭?为什么强涨市反而略输? 下一节就来拆解这两个问题。


四、为什么补单在下跌市能逆袭、在强涨市吃亏?

4.1 跨多层是少数事件,但权重很大

事前我以为补单的收益来自频繁触发——错了。

从 3 个典型参数组合的 trades.csv 反推每笔成交跨了几层:

样本 总笔数 跨多层笔数 占比 最大 N
A · 0.3% × 1.5万 9278 610 6.6% 27
B · 0.5% × 3万 3718 71 1.9% 13
C · 0.3% × 0.5万 3361 112 3.3% 16

九成以上的交易其实只跨 1 层,和原策略完全一样。

图片

A·单边下跌 跨越层数分布

图片

B·震荡偏强 跨越层数分布

图片

C·单边强涨 跨越层数分布

但长尾那 2~7% 决定胜负:A 标的最大单根 K 线跨 27 层——相当于 1 分钟内价格跌 8%。这种事件一年只出现一两次,全年成败就压在它们上面。

4.2 跳水一次到底意味着什么

拿 A 标的最大增益组(0.3% × 1.5 万)的关键事件复盘。

某次开盘跳空急跌:

  • 价格一根 K 线从 base=0 跌到 target=−27(跨 27 层)

  • 原策略:买 1 笔 1.5 万,base_level = −27

  • 新策略:买 27 笔 = 40.5 万,base_level = −27

之后反弹时,两种策略的单笔卖出动作其实是一样的——价格每爬 1 层 cross_layers = 1,都只卖 1 倍量(1.5 万)。差别不在单次卖多少,而在底仓里有多少可卖:

  • 原策略多了 1 × 1.5 万的底仓,反弹 1 层就卖完,剩下 26 层涨幅无货可卖

  • 新策略多了 27 × 1.5 万的底仓,反弹每爬 1 层都能卖 1 笔,一直卖到 base=0 累计兑现 27 笔

新策略真正赚的钱来自这里:同一个跳水-反弹周期,原策略只能兑现 1 笔网格利润,新策略能兑现 27 笔。单笔利润相同,次数差出几十倍。

4.3 强涨市为什么反而吃亏

把同样的逻辑放到 C 标的(单边强涨):

  • 跳空涨穿 16 层时,新策略一次卖出 16 倍量,仓位过早清空

  • 之后继续上涨时手里没货,踏空加剧

  • 这就是 C 上略输的根源

一句话归因:跨层补单是在极端跳空时一次性补足该方向的仓位。下跌方向的极端跳空之后大概率反弹,多接的筹码全部兑现成利润;上涨方向的极端跳空之后未必快速回踩,多卖的仓位接不回,就成了亏损。

这里藏着第二个改进的线索:C 上吃亏,根子是固定锚点在上涨途中把仓位过早卖空。如果锚点能跟着价格往上走呢?——那正是上一篇浮动网格干的事。


五、改进二:把补单套到浮动锚点上

第一版的跨层补单用的是固定锚点,一次性确定后永不变动。换成浮动锚点——每次成交后锚点漂移到当前价——逻辑改动只有一条:

# 浮动网格触发买入时,按距离锚点的层数补单cross_layers = max(1, int((anchor - price) / (anchor * grid_gap)))total_vol = (trade_amount / price) * cross_layers# 卖出对称:cross_layers = max(1, int((price - anchor) / (anchor * grid_gap)))

同一套 90 组参数再跑一遍,四方对比。

5.1 全局对比

策略 平均收益率 平均最大回撤 平均成交笔数
固定网格 +6.74% 11.74% 2872
浮动网格 +7.21% 11.09% 781
跨层补单(固定锚点) +11.01% 6.82% 3154
浮动+跨层补单 +11.82% 6.52% 523

收益最高、回撤最低、成交笔数最少。最后这一项是意外收获:浮动锚点把每次成交后的触发线推开,消化掉了大量低质量的来回震荡——用五分之一的交易量拿到更好的结果。

5.2 分标的对比

标的(行情) 策略 平均收益 平均回撤 最优 最差 平均成交
A · 单边下跌 跨层补单 +6.09% 8.59% +13.18% +0.56% 3222
浮动+跨层补单 +5.88% 7.71% +16.05% +0.62% 608
B · 震荡偏强 跨层补单 +15.44% 9.84% +34.44% +2.76% 5393
浮动+跨层补单 +15.44% 9.22% +26.76% +10.53% 857
C · 单边强涨 浮动网格 +16.02% 3.19% +38.92% +0.92% 161
跨层补单 +11.52% 2.02% +37.60% +0.76% 848
浮动+跨层补单 +14.14% 2.63% +39.10% +0.98% 106

(固定/浮动网格基线见第三节,此处只列与补单相关的对比。)

三个标的各有看点:

  • A(下跌市):和纯跨层补单几乎打平(+5.88% vs +6.09%),但回撤更低、最优档更高。底仓加厚的好处还在,浮动锚点让它更克制。

  • B(震荡偏强):平均收益一致,但最差档从 +2.76% 拉到 **+10.53%**。哪怕参数选得最差也能稳赚 10pct,对实盘是更可靠的状态。

  • C(强涨市):从纯跨层补单的 +11.52% 反弹到 +14.14%,超过固定网格——正是第四节那个短板被修复了:锚点跟着价格上抬,不再过早卖空。只是仍不及纯浮动网格的 +16.02%。

两个改进各管一件事,正好正交:跨层补单管”漏成交”(跨多层时按 N 倍补齐),浮动锚点管”成交后要不要在原位死等回踩”(锚点跟着价格走)。合起来,三个标的的最差档全部被抬进正收益,全局最差也只有 +0.62%。


六、软肋和参数经验

软肋:单边强趋势仍然不解

补单也好、浮动也好,都解决不了网格打不过趋势这件事。C 标的单边强涨 +83%,四种策略都只赚 11%~16%,远远跑输买入持有。优化成交规则救不了方向判断错误。

参数经验

  • 网格越密,补单价值越大:A 标的 0.3% 档的增益比 2.5% 档高约 20pct——间距越小,一次跳空跨越的层数就越多。

  • 单笔金额仍建议占初始资金 1%~5%,不要因为有补单就把基础单笔放大。极端事件下的实际仓位 = 单笔 × N,N 失控时单笔再大就危险。


七、总结

这一篇做了两个递进的小改动:

  • 跨层补单只改一行,就把单边下跌市从平均亏 7%(最差档 −17.65%)翻成正收益(平均 +6.09%、最差档 +0.56%),全局收益提升约 4pct、回撤砍半。

  • 浮动+跨层补单在它的基础上再修掉强涨市的短板,全局收益 +11.82%、回撤 6.52% 都是四种策略里最好的,交易量还只有五分之一。

但它们都不是通用解:单边强涨市仍跑输纯浮动网格,网格打不过单边趋势的老问题也没解。

我事前猜的是”看起来更激进、实测会更糟”,结果反了过来。这个系列做下去的意义就在这里——直觉常常是错的,只有完整跑一遍参数扫描才知道一个改进到底值不值得。

×
显示验证码
没有账号?注册  忘记密码?

风险提示

投资有风险,开户需谨慎。本系统仅为投资者提供量化交易相关的数据处理与分析工具,不构成任何投资建议。 请您在审慎思考后作出选择。特别声明:本系统对您与券商之间的交易、合作不承担任何法律责任。 市场有风险,投资需谨慎。

© 2024 看海量化交易系统 版权所有

官网:www.khsci.com/khQuant