网格交易在量化实践中是很常见的策略,有人将其奉为圭臬,也有人对其不以为然。
总的来说,网格交易通常较适合两类情况:
第一类是“小富即安”型,不追求一把抓住大趋势,更在意的是利用日内或几日内的来回震荡,稳稳吃到每天几百块这样的小额差价,把账户当成一个持续滚动的小现金流工具。
第二类是本来就看好某只股票或ETF长期走势,愿意长期持有这个标的,但又不甘心让仓位在账户里躺上几个月几乎没有动静,于是希望在不完全放弃长期上涨逻辑的前提下,用网格化的高抛低吸把持仓“操作起来”,争取在趋势收益之外再多挣一层波动的钱。
本篇及后续几篇文章,我们将对该策略的底层算法进行深入探讨,分析这个策略究竟是否好用,以及它到底适用于什么样的市场场景。
一、 运作原理与盈利机制
网格交易的运作核心在于:它通过预设的机械规则,强制执行逆势操作。它并不预测价格的长期趋势,而是单纯依靠价格在一定区间内的反复震荡来触发买卖条件,从而获取差价。
参考下方的网格交易运行切面图(图1):

图1:网格交易的运作原理
观察图表下半部分的仓位曲线,可以发现一个规律:
- 当价格下跌时:策略会分批触发买入指令。此时资金逐渐转化为资产,账户内的持仓数量达到峰值,而可用现金降至最低。
-
当价格上涨时:策略会分批触发卖出指令。此时资产逐渐转化为资金,账户内的持仓数量降至最低,而现金储备达到峰值。
既然长期来看,如果股票价格涨上去又跌回原点,“买入并持有”的策略是没有利润的,为什么网格交易在这种情况下却能产生收益?
网格交易的盈利来源是标的资产的波动率。
在网格系统中,我们预先在不同的价格水平设定了买卖点(即网格线)。
- 只要价格向上穿越一条网格线,系统就会卖出一部分之前在低位买入的筹码,将这部分差价转化为确定的现金收益。
-
只要价格向下穿越一条网格线,系统就会用现金买入筹码,为下一次价格反弹卖出做好准备。
只要资产价格是处于不断的上下震荡中,每一次价格穿越网格线,都会完成一次低买高卖的闭环。因此,网格策略并不依赖于资产价格的长期上涨,只要市场维持震荡,策略就能不断积累微小的差价利润。

可以举一个更直观的例子。假设账户总资金为 100万,其中 50万 作为底仓,50万 作为可交易现金;网格间距设为 1%,单次交易金额设为 2万元。若价格先从某个基准位向下走了两个网格,再回到原位,那么策略大致会经历两次买入和两次卖出,形成两组完整的“网格对”。在不考虑底仓盈亏变化的情况下,每组网格对的毛收益大约是 2万元 × 1% = 200元,两组就是 400元。如果再扣除每组往返交易合计约 10元 的交易成本(万0.5的费率),那么两组网格对最终合计净收益约为 320元。也就是说,即使价格最后回到了起点,网格策略依然可能因为中间捕捉到了波动而获得正收益。
这里需要先明确网格交易的几个重要性质:
- 盈利是以“网格对”来计算的:即一个网格区间内的一对“买入-卖出”动作,共同组成了一组确定的收益。
-
底仓收益并不随网格差价而改变:这意味着,如果标的价格经过一个起落回到原价,策略的总收益就是所有“网格对”加起来的利润。但如果标的在一段时间内震荡下跌,即使网格交易本身产生了利润,由于底仓部分的浮亏,账户整体净值可能依然是下跌的,此时网格的作用主要是摊低持仓成本。
-
仓位与标的资产价格呈现负相关:当我们谈论网格交易的“低买高卖”时,其在交易系统中的实际表现为价格越低、仓位越重;价格越高、仓位越轻。
三、 关键参数固定网格间距怎么设置
在设计网格策略时,最核心的参数之一是“网格间距”(即价格波动多大幅度触发一次交易)。不要以为间距越小、交易越频繁,累积的利润就越高。
网格策略的最终利润取决于两个因素的乘积:单次交易的净利润 × “网格对”的总次数

- 间距过小:此时交易极其频繁,但每次交易的毛利非常低。当毛利无法覆盖交易摩擦成本时,单次交易就会变成亏损。
-
间距过大:此时单次交易的利润很丰厚,但价格很难达到触发条件,交易次数锐减,导致大量资金长期闲置,整体的资金回报率非常低。
但是,进一步说,合适的网格间距并不只由交易成本决定,它往往同时受到标的波动率、趋势强弱、反抽频率、交易金额、底仓结构以及执行成本等多种因素影响。为了更直观地看清“网格间距”和“策略收益”之间到底是什么关系,最可靠的办法不是停留在理论讨论,而是直接使用真实市场数据进行回测。只有把网格参数放进真实行情里反复测试,才能得到更接近实盘的结论。
研究口径与测试工具说明
本篇文章所有回测均在看海量化回测平台(khQuant)上执行。值得一提的是,本次参数扫描并没有使用平台的GUI界面手动点选,而是调用了平台的 纯代码运行模式。当前二维脚本预设了 70 组参数组合,通过自动化脚本自动遍历参数并生成结果表,极大提升了策略研究的效率。

看海回测平台主界面,但是本次回测实验使用的是纯命令行模式
本次测试的基础配置如下:
- 策略:固定网格策略
-
标的:某宽基ETF(上涨样本)
-
区间:
2025-01-01至2025-11-20 -
周期:
1m级别K线 -
成本:佣金
0.005%,滑点按0处理
这里要说明一下,本文之所以采用0滑点口径,是因为网格交易通常使用限价单触发,理论上并不主动追价,所以这里先把滑点设为 `0`,重点观察佣金与参数本身的关系。但如果回到真实交易,限价单并不意味着一定能成交,实际执行中仍然可能出现挂单未成交、只成交一部分的情况,因此回测结果和实盘之间一定会存在一些误差。考虑到本文测试的大部分成交都是相对较小的单笔金额,这部分误差暂时先忽略不计,用来换取更清晰的参数比较结果。
实测验证:用真实回测看五档网格间距与显性交易成本
为了验证上面的判断,我使用量化回测系统做了五组网格宽度敏感性测试,并补上一行“不启用网格、只保留 50% 初始底仓静态持有”的基准结果。回测周期为 1m,区间为 2025-01-01 到 2025-11-20,初始资金 100万。
在看回测数据之前,我们先直观地了解一下标的在测试区间内的价格走势。下图展示了该标的(上涨样本)的实际走势,以及策略在 0.8% 间距下实际触发过的固定网格线(图2):

图2:测试区间内的价格走势与固定网格线分布
本次回测的交易成本设置来自策略配置文件:佣金率为 0.005%,单笔交易金额固定为 6万元。
本次实验测试了五档网格间距,并只统计 trades.csv 里直接记录的显性成本。由于本轮统一采用无滑点口径,因此表中的“总交易成本”就等于佣金、印花税、过户费、流量费等显性成本之和。对于“不使用网格算法”这一行,收益率与年化收益率都按全部账户资金为分母计算;因为策略只保留 50% 底仓静态持有,所以账户总收益率等于标的区间涨幅乘以 50%。也就是说,这张表主要是在同一只标的、同一套资金规模、同一笔交易力度下,观察“网格宽度变化”本身会把结果推向哪里。
| 网格间距 | 总收益率 | 年化收益率 | 最大回撤 | 交易次数 | 总交易成本 |
|---|---|---|---|---|---|
| 0.1% | 5.34% | 6.26% | 6.28% | 727 | 2178.28 |
| 0.3% | 34.14% | 40.94% | 7.09% | 1746 | 5219.35 |
| 0.5% | 23.29% | 27.70% | 4.57% | 987 | 2960.09 |
| 1.0% | 10.68% | 12.59% | 3.84% | 192 | 573.63 |
| 3.0% | 15.03% | 17.77% | 4.75% | 86 | 270.85 |
| 不使用网格算法(50%底仓静态持有) | 16.14% | 19.10% | 12.91% | 0 | 0.00 |
这组最新回测结果(严格固定网格,单笔交易6万元)揭示了2个直观的结论:
- 过于密集的网格未必是好事,因为单笔交易金额较大时会迅速用完筹码。
很多人以为网格越密赚得越多。但数据显示,当每次买卖的金额比较大(比如6万元)时,如果网格设得太密(如0.1%),随便一点小波动就会触发交易。结果就是行情还没走多远,手里的现金或底仓就被快速打光了。这样不仅吃不到后面的大趋势,还会导致最终收益率垫底(仅5.34%)。 -
太宽的网格也未必好,因为能够捕捉的震荡区间会大幅减少。
当网格放得太宽(如1.0%或3.0%)时,买卖次数会断崖式下降(3.0%只有86次)。由于门槛太高,日常的大量震荡根本摸不到网格线,导致白白错失了低买高卖的机会。结果就是赚钱能力(10.68%)连直接躺平不动(16.14%)都比不过。
下图是 0.1% 网格间距下的一次实际回测图和交易明细图

图3-1:回测结果概览

图3-2:逐笔交易明细,筹码早早打光,上升趋势中持仓为0
下图是 3% 网格间距下的一次实际回测图和交易明细图

图3-3:回测结果概览

图3-4:逐笔交易明细,交易频率很低
从上边案例中我们可以引申出两个更具体的问题:
- 第一,如果问题出在上涨途中卖得太快,那么把每次交易金额调小之后,能不能让策略在上涨行情里保留更多筹码,从而少一些踏空、多吃到一段趋势?
-
第二,既然网格相较于静态持有未必占优,那么它究竟在哪一类行情里最能发挥作用?
现在我们再顺着这两个问题继续往后展开,继续深入展开。
四、 另一个关键参数:每次交易的资金量
如果说“网格间距”决定了交易触发得有多频繁,那么“每次交易的资金量”决定的就是:每次触发时,策略下多大注。
归纳起来,它主要影响三件事。
1. 它决定单次赚多少钱
在其他条件不变的情况下,单次交易金额越大,同样一次网格来回所带来的绝对收益就越大。
2. 它决定仓位切换速度和风险暴露
每次交易金额越大,仓位在一次触发后的变化就越大。大额交易虽然能放大利润,但也会放大仓位切换速度。单次金额越大,策略越激进;单次金额越小,策略越平缓。
3. 它决定资金利用率是否合理
还有一个需要注意的问题是:单次交易金额必须和总资金规模匹配。
例如,账户总资金是 100万:
- 如果每次只交易
5000元,那么即使一天触发很多次,整体资金参与度也偏低,策略可能显得过于保守。 -
如果每次交易
20万,那每一次触发都会让仓位发生明显偏移,策略会变得非常激进。
如何理解它和网格间距的配合关系
网格间距和单次交易金额,其实是一组联动参数:
- 间距小 + 单次金额大:交易会非常频繁,而且每次下手都重,策略最激进,网格总宽度很窄是最容易被成本和波动反噬的组合。
-
间距小 + 单次金额小:交易频繁,但每次影响较小,风险相对平缓,不过容易出现“很忙但赚不多”的情况。
-
间距大 + 单次金额大:交易次数少,但每次动作幅度很大,适合波动大、趋势不连续的环境。
-
间距大 + 单次金额小:交易很少,而且单次收益也不大,容易让策略整体存在感不足。

因此,在实际调参时,不能只单独寻找“最佳网格间距”,也不能只盯着“每次买卖多少钱”。更合理的做法是把这两个参数当成一个整体去看。
重要实验:我们来组一次二维实测,把“间距”和“金额”放在同一张收益面上
为了更进一步看清这两个参数的关系,我做了固定网格策略下的二维参数扫描。当前脚本统一按无滑点口径执行,测试组合为:
- 8种网格间距:
0.05% / 0.1% / 0.3% / 0.5% / 0.7% / 1.0% / 2.0% / 3.0% -
7种单笔交易金额:
0.2万 / 0.5万 / 1万 / 2万 / 4万 / 8万 / 12万
也就是说,脚本一共预设了 56 组参数组合,然后把:
x轴设为网格间距-
y轴设为单笔交易金额 -
z轴设为总收益率
得到下面这张完整二维无滑点扫描后的真实回测收益曲面图:

图4:固定网格策略下,网格间距与单笔交易金额的收益曲面。由于“不追高、不漂移”的特性,策略在空仓后能够完美接回筹码,使得极密网格(左侧)呈现出更高的超额收益。

图5:最优参数组合下的交易明细。
现在的网格搜索出来的结果是,峰值落在了极小间距的区域。这是因为严格固定网格在上涨行情中虽然会很快把底仓卖光,但由于网格层级不再向上漂移,一旦价格出现哪怕微小的回调,它就能立刻在原价位把筹码接回来。这种特性使得密网格变成了一台不知疲倦的网格交易员,其收益率超越了静态持有。

图6:较差参数组合(大网格间距)下的交易明细,操作频率很低,能吃到的网格交易较差利润少,以至于到后期没有筹码再追高了。
为了更进一步探究股价整体走势对参数设置的影响,我们继续探讨。
五、 风险剖析:单边行情下的净值回撤
网格交易常被宣传为可以“不断摊薄成本”,但其最大的风险来源是单边趋势行情。
1. 单边上涨:卖飞的痛,痛彻心扉
这也就是我们常说的“向上破网”。 假设你设定了一个网格,价格每涨 1% 就卖出一部分。当牛市真的来临,股票一连涨了 30%。 你的网格会在前面 10% 的涨幅里非常勤奋地“落袋为安”,但结果就是:等股票真的开始主升浪时,你手里早就没货了。 别人靠死拿赚了 30%,你虽然每次都只赚了 1% 的差价,但最终只吃到了个位数的总收益。虽然你没亏钱,但在牛市里眼睁睁看着别人大赚而自己空仓,这种“踏空”的心理打击,往往比亏钱还难受。

2. 单边下跌:满仓接飞刀的绝望
这是真正会让你亏大钱的“向下破网”。 同样,假设价格每跌 1% 你就买入一部分。当股灾或个股暴雷发生,股票开启了没有反弹的单边阴跌。 网格系统此时会像个没心没肺的机器人,一路往下接飞刀。跌 5%,它买满了半仓;跌 10%,它把你的子弹全部打光,满仓被套。 此时,网格系统彻底瘫痪(因为没钱了)。更可怕的是,接下来如果继续深跌,由于你已经满仓,所有的下跌都会 100% 转化为你的本金亏损。原来你本来打算只赚点“小波动”的零花钱,最后却被迫成了一个扛着巨大亏损的“长期股东”。

总结来说,网格交易的本质就是: 你用放弃牛市暴富的机会(容易卖飞),以及承担熊市深套的风险(满仓接飞刀)作为代价,去换取在震荡市里赚点稳定的辛苦钱。想清楚这笔交易划不划算,再去开启你的网格。
六、 三种行情的真实回测对照
前面这部分讲的是原理,下面再把“上涨、下跌、横盘”三种典型行情放到真实样本里对照一次。这样更容易看清:网格真正适配的不是涨跌方向本身,而是背后的波动结构。
1. 上涨行情样本
该ETF样本就是上边我们回测使用的那只,在这段区间整体上涨 32.27%,属于典型的偏单边上行样本。它并不是“完全没有震荡”,但主导力量明显还是趋势上行。

图7:上涨样本价格走势,2025-01-01 ~ 2025-11-20

图8:上涨样本运行结果:参数扫描收益曲面
这个样本最值得注意的是上涨趋势里它容易跑输标的本身。这正是上涨行情里网格策略最典型的代价。
2. 下跌行情样本
该行业ETF样本在 2025-04-01 ~ 2026-03-31 区间内整体下跌 20.22%,属于近期比较典型的弱势下行样本。

图9:下跌样本价格走势

图10:下跌样本运行结果:参数扫描收益曲面

图11:下跌样本收益曲线

图12:下跌样本交易明细
第一,相较于半仓静态持有(基准亏损约 -10%),几乎所有网格参数的收益都更低。这是由网格交易“越跌越买”的左侧特性决定的。在下行趋势中,网格的触发绝大多数是买入动作,把原本 50% 的底仓逐渐加重,导致在持续下跌中承担比半仓更大的趋势浮亏。
第二,相较于满仓被套(该区间跌幅约 -20%),几乎所有网格参数的表现都更好。数据表明,大部分参数组合的亏损集中在 -12% 到 -19% 之间,均好于直接满仓的 -20% 跌幅。这意味着网格策略通过分批建仓和偶尔的反弹高抛,确实在一定程度上减缓了单边下跌的势头,起到了缓冲垫的作用。
第三,对于下跌趋势的标的,相对高收益(即“最少亏损”)集中在【大网格间距】的区域。这是因为:在单边下跌中,“防守”比“进攻”更重要。大间距(如 2.0% 或 3.0%)足够迟钝,它最大程度地减少了在阴跌途中的无效加仓动作,避免了极速满仓被套;而配合较大的单笔交易金额,则能在标的真正跌透并出现反抽时,通过重拳出击榨取绝对利润来有效对冲底仓的亏损。
3. 横盘行情样本
该样本这段区间的期末涨跌只有 -0.27%,但振幅仍有 52.4%,是比较标准的“方向不强、波动还在”的横盘样本。

图11:横盘样本价格走势

图12:横盘样本运行结果:参数扫描收益曲面

图13:横盘样本收益曲线
横盘行情最符合大家对网格策略的直觉想象。虽然这段回测样本的数据形态并不是那种教科书般理想的“在0轴上下高频震荡”,而是走出了一个“大幅度上升后,又大幅度下降回到0点附近(即起点附近)”的过山车行情,但这反而更真实地体现出了网格交易在面对波动时的巨大优势: 在这个最终涨幅几乎为0的区间里,几乎所有的网格参数组合都能获得实打实的正收益。
从曲面图上看,横盘样本的收益分布相对平缓,没有出现剧烈的陡坡或深坑,这说明网格策略在横盘市中的容错率最高。
4. 三种行情放在一起看
把这三组样本合在一起,我们可以得出一个结论:网格交易的最优参数设置与股票的整体走势相关。
- 对于整体上涨的标的:在严格固定逻辑下,可以大胆使用小间距,通过极高频捕捉波动来获取超额收益。因为即使阶段性卖空也能在回调中原地接回,不会产生高位追高的风险。
- 对于整体下跌的标的:应当选择大间距,以最大程度地减少在下跌途中的加仓动作,避免极速满仓被套,从而在单边下行中达到“少亏”的目的。
- 对于横盘震荡的标的:应当选择居中的间距,既保证了合理的资金效率,又避免了过密网格带来的摩擦成本反噬。
然而,在真实交易中,这带来了一个巨大的悖论:我们根本无法准确预知标的未来的走势。如果我们知道未来会大涨,我们根本不需要网格,满仓死拿就好;如果我们知道未来会大跌,我们连底仓都不该建。
正因为未来的走势是不可知的,我们无法提前通过“开天眼”来为一段特定的行情定制完美的参数。因此,在无法预测方向的前提下,怎样选择一组具有普适性、容错率高、能兼顾三种不同行情的“网格间距和单笔交易金额”,仍然是我们想要把网格策略应用到实盘时,必须去重点研究和关注的核心问题。
这也正是后续要探讨解决的问题。