3. 网格做市策略:网格间距、网格层数、初始仓位设定
网格做市策略,说白了就是「低买高卖」的机械化版本。你设定好价格区间,系统自动在每一层挂单。价格跌了买,涨了卖。听起来简单,但真正跑起来,坑不少。
我最早接触网格策略是在2018年,当时帮一家海外做市商优化BTC的网格参数。一开始觉得这玩意儿太简单了,不就是画几条线嘛。结果回测数据一出来,亏损的网格比盈利的还多。嗯,从那以后我再也不敢小看网格参数了。
3.1 网格间距:太密死得快,太疏赚不到
网格间距,就是相邻两层挂单之间的价格差。这个参数直接决定了你的交易频率和风险暴露。
间距太小:交易次数多,手续费吃掉利润。而且一旦遇到单边行情,你会被连续「套牢」——每一层都买在高位,越补越亏。
间距太大:交易次数少,资金利用率低。行情在网格内来回震荡,你只能干瞪眼。
我个人习惯用波动率自适应间距。具体做法是:
# 基于ATR的动态网格间距
def calc_grid_spacing(price_series, atr_period=14, multiplier=0.5):
atr = average_true_range(price_series, atr_period)
spacing = atr * multiplier
return spacing
这里有个经验值:对于高波动品种(比如ETH),multiplier取0.3~0.5;对于低波动品种(比如BTC),取0.6~1.0。我在项目中遇到过,把BTC的间距设成0.2倍ATR,结果一天交易了80多次,手续费直接吃掉利润的40%。
核心原则:网格间距至少要覆盖交易成本(手续费+滑点)的两倍。否则你就是在给交易所打工。
3.2 网格层数:不是越多越好
网格层数决定了你的资金分散程度。层数越多,每层挂单量越小,风险越分散。但层数太多也有问题。
你想想看,如果价格从底部一路涨到顶部,中间每一层都成交了。这时候你的平均持仓成本是多少?
答案是:中间价。因为你在每一层都买了等量的货。所以网格层数越多,你的持仓成本越接近网格区间的中位数。这其实是个好事——你永远不会买在最高点。
但问题来了:层数太多,资金利用率下降。比如你有100万本金,分成50层,每层只有2万。价格波动一小点,你只能吃到2万的利润。说白了,资金效率太低。
| 网格层数 | 资金利用率 | 风险分散度 | 适合场景 |
|---|---|---|---|
| 5~10层 | 高 | 低 | 窄幅震荡行情 |
| 10~20层 | 中 | 中 | 一般震荡行情 |
| 20~50层 | 低 | 高 | 高波动、宽幅震荡 |
我建议新手从10~15层开始。为什么?因为这是「甜点区间」——既能分散风险,又不至于让资金太分散。我曾经帮一个客户把层数从30层降到12层,年化收益反而提升了18%。
小技巧:网格层数最好设为奇数。这样中间层正好落在当前价格附近,上下对称。对称网格在震荡行情中表现更稳定。
3.3 初始仓位设定:别一把梭
初始仓位,就是网格启动时你手里已经持有的头寸。这个参数很多人忽略,但它决定了你的「安全垫」。
举个例子:你设定网格区间为100~200,当前价格150。如果你初始仓位是0,那么价格跌到100时,你才第一次买入。但如果价格从150直接跌到90呢?你的网格还没开始就破了底。
所以,初始仓位应该覆盖网格区间的一半以上。具体来说:
- 中性仓位:初始仓位 = 网格总资金 × 50%。这样价格无论向上还是向下,你都有足够的弹药应对。
- 偏多仓位:如果你看涨,初始仓位可以提高到60%~70%。但要注意,一旦价格下跌,你的浮亏会更大。
- 偏空仓位:看跌时,初始仓位降到30%~40%。留更多现金在手里,等价格跌下来再补。
我个人习惯用动态初始仓位。根据当前价格在网格区间中的位置来计算:
def calc_initial_position(current_price, grid_low, grid_high, total_capital):
# 价格在网格中的相对位置
position_ratio = (current_price - grid_low) / (grid_high - grid_low)
# 初始仓位比例:价格越低,仓位越高
init_ratio = 1 - position_ratio
# 限制在30%~70%之间
init_ratio = max(0.3, min(0.7, init_ratio))
return total_capital * init_ratio
这个逻辑很简单:价格在网格底部时,你多买点;价格在顶部时,你少买点。说白了就是「逆势建仓」的思路。
避坑指南:我曾经在ETH上犯过一个错误——初始仓位设得太高(80%),结果价格连续下跌,网格还没跑完一层,我的保证金就不够了。后来我加了一条规则:初始仓位 + 最大浮亏 < 总资金的90%。留10%的缓冲,防止极端行情。
3.4 三个参数的联动关系
网格间距、层数、初始仓位,这三个参数不是孤立的。它们互相影响,必须一起调。
举个例子:
- 间距小 + 层数多 = 交易频繁,手续费高,适合低手续费品种
- 间距大 + 层数少 = 交易稀疏,适合高手续费品种
- 初始仓位高 + 层数多 = 资金占用大,适合低波动行情
- 初始仓位低 + 层数少 = 资金灵活,适合高波动行情
我一般用网格总风险敞口来统一衡量:
总风险敞口 = 网格层数 × 每层挂单量 × 最大单层亏损
这个值不能超过总资金的20%。超过的话,一次黑天鹅就能让你爆仓。
我的经验公式:网格间距 × 网格层数 × 0.5 > 历史最大回撤的1.5倍。满足这个条件,网格策略在大多数行情下都能存活。
3.5 知识体系结构图
下面这张图展示了网格做市策略的核心参数及其关系:
这张图把三个参数的关系讲清楚了。你调任何一个参数,都要想想它对另外两个的影响。说白了,网格策略是个系统工程,不是随便填几个数字就能赚钱的。
好了,网格间距、层数、初始仓位这三个核心参数,咱们就聊到这儿。下一节我会讲怎么用历史数据回测这些参数,以及如何避免常见的回测陷阱。到时候见。