策略指南:网格打击¶
网格狙击 (grid_strike) 是 Hummingbot 策略 V2 框架中的一个 控制器,它会在预设价格范围内自动放置一整网格的买入或卖出订单。
与 基础网格策略 不同,网格狙击利用 执行器 动态管理每个订单层级,并支持可配置的止盈和止损设置。这意味着策略开启的每个仓位都会根据你的风险参数自动监控并平仓。它还可配置为跟随市场趋势——无论是上涨还是下跌——让你能够根据市场变化调整策略。
本指南将解释网格狙击策略的工作原理,并帮助你判断何时使用它。你将学习如何配置和运行该策略,以及关键概念和如何针对趋势市场进行设置。
策略代码:https://github.com/hummingbot/hummingbot/blob/master/controllers/generic/grid_strike.py
策略概述¶

- 基于网格的订单放置: 该策略允许你创建多头网格或空头网格,在定义的价格区间内自动放置买入/卖出订单。
- 自动化风险管理: 每一侧均使用网格执行器,自动管理每个仓位的风险,支持可配置的止盈、止损和时间限制。
- 交易所灵活性: 支持现货和永续合约交易所连接器,包括对永续合约交易所的单向持仓模式的支持。
- 高度可配置: 可通过调整价格区间、订单间距及其他参数,适配多种市场情景(上涨趋势、下跌趋势或盘整)或交易目标(成交量、流动性、盈亏等)。
运行策略¶
给新用户的建议
如果您是首次使用网格打击策略,强烈建议在运行策略前先查看下方的策略配置部分。这些内容将解释基本概念、参数和设置步骤,帮助您理解该策略的工作原理,并根据您的交易目标安全地进行配置。花时间学习这些基础知识,有助于避免常见错误,并最大限度地发挥策略效果。
前提条件¶
在运行网格打击策略之前,请确保您已安装 Hummingbot,可通过以下方式之一安装:
- Hummingbot 客户端:请参阅 Docker 安装 或 源码安装 开始使用
- Hummingbot API + 仪表盘:请参考 Hummingbot 仪表盘快速入门指南 获取分步设置说明
创建控制器配置¶
在 Hummingbot 客户端中,运行以下命令:

之后,一个名为 conf_generic.grid_strike_1.yml 的文件将被保存到 /conf/controllers 目录下,包含默认的初始配置。
有关调整这些参数的详细指南,请参见下方的 策略配置。
创建脚本配置¶
当您对网格打击的配置满意后,请将该配置文件的名称添加到 加载器脚本 中:
 
如果您已有现有的加载脚本配置文件,只需修改它,加入刚刚创建的网格打击配置(例如 conf_generic.grid_strike_1.yml):
markets: {}
candles_config: []
controllers_config:
- conf_generic.grid_strike_1.yml
script_file_name: v2_with_controllers.py
max_global_drawdown_quote: null
max_controller_drawdown_quote: null
运行加载器脚本¶
从 Hummingbot 客户端界面,使用此配置文件启动加载器脚本:
或者,使用以下 CLI 命令跳过密码输入并自动启动策略:
/bin/hummingbot_quickstart.py -p [PASSWORD] -f v2_with_controllers.py -c conf_v2_with_controllers_1.yml
监控策略¶
当你启动网格打击(Grid Strike)策略时,它首先会读取你的配置,以确定如何设置交易网格。一旦网格设置完成,策略就会根据设定的side(买入或卖出)在指定的价格范围内开始下单。它会下一笔订单并等待成交。每当达到order_frequency时,系统会检查是否需要下达新的订单。
运行status命令(或使用status --live实现持续刷新),以获得策略表现的详细概览:
当一个订单成交并开仓后,三重屏障系统会立即接管该笔交易的管理。该系统相当于每个已成交订单或仓位的专属风险管理员:如果价格达到take_profit,或反向移动触及设定的stop_loss,系统将自动平仓。这一切都会自动完成,无需你时刻盯盘。
随后策略继续循环执行:下一个卖单,等待其成交,交由三重屏障系统管理仓位直至平仓,然后再次下达新的卖单。这形成了一个持续交易的循环,旨在反复捕捉小幅利润,同时有效控制风险。
策略配置¶
运行create --controller-config generic.grid_strike后,初始配置文件将保存在/conf/controllers目录下,内容如下所示:
id: <controller-id>
controller_name: grid_strike
controller_type: generic
total_amount_quote: '1000'
manual_kill_switch: false
candles_config: []
initial_positions: []
leverage: 20
position_mode: HEDGE
connector_name: binance_perpetual
trading_pair: WLD-USDT
side: 1
start_price: '0.58'
end_price: '0.95'
limit_price: '0.55'
min_spread_between_orders: '0.001'
min_order_amount_quote: '5'
max_open_orders: 2
max_orders_per_batch: 1
order_frequency: 3
activation_bounds: null
keep_position: false
triple_barrier_config:
  open_order_type: 3
  stop_loss: null
  stop_loss_order_type: 1
  take_profit: '0.001'
  take_profit_order_type: 3
  time_limit: null
  time_limit_order_type: 1
  trailing_stop: null
关键参数¶
以下是一些最重要的设置:
| 参数 | 含义 | 
|---|---|
| total_amount_quote | 机器人的交易预算(例如,1000 USDT) | 
| connector_name | 用于交易的交易所(例如, binance_perpetual) | 
| 交易对 | 你想交易的市场(例如, WLD-USDT) | 
| side | 1 = 买入(做多),2 = 卖出(做空) | 
| start_price | 机器人开始下单的价格 | 
| end_price | 机器人停止下单的价格 | 
| limit_price | 对于买入网格,若价格跌破此水平;或对于卖出网格,若价格上涨超过此水平,机器人将停止交易并终止所有仓位(或根据 keep_position设置将其移至PositionHold) | 
| min_spread_between_orders | 订单之间的最小间距(例如,0.001 = 0.1%) | 
| min_order_amount_quote | 交易所允许的最小订单金额(例如,10 表示 10 USDT) | 
| order_frequency | 机器人检查新订单的频率(单位:秒) | 
| 仓位模式 | 对于永续合约交易所: ONEWAY或HEDGE | 
| keep_position | 如果为 true,被终止的执行器会将仓位存入 PositionHold容器中 | 
| activation_bounds | 根据网格订单与当前价格的接近程度,控制哪些网格订单实际被挂出。如果设置为 null,则在您设定的价格范围内的所有网格订单都会被挂出,从而暴露全部资金。如果设置为类似0.005的值,则仅挂出当前价格上下 0.5% 范围内的订单,其余订单虽会被计算但不会挂出——起到风险控制的作用。例如,在价格突然下跌时,只有附近的订单会被激活,从而保留资金以获取更好的入场点。 | 
请务必设置以下关键参数:
- 交易所 (connector_name):使用任意 Hummingbot CLOB 连接器,例如hyperliquid或hyperliquid_perpetual
- 交易对 (trading_pair):使用交易所支持的有效交易对,例如BTC-USDT
- 预算 (total_amount_quote):分配给该策略的总金额,以报价资产表示
- 方向 (side= buy 或 sell):放置多头(买入)或空头(卖出)的网格订单
- 网格维度:起始价格和结束价格
三重屏障参数¶

Grid Strike 创建的网格执行器采用三重屏障方法,类似于 Position Executors。设置这些参数可定义每个订单成交后的管理方式:
| 设置 | 含义 | 
|---|---|
| stop_loss | 如果价格朝不利方向移动,则自动平仓 | 
| take_profit | 一旦达到盈利目标即自动平仓 | 
| time_limit | 在设定时间后平仓,无论盈亏 | 
| order_type | 可在 1 - 市价单、2 - 限价单 或 3 - 限价挂单 之间选择 | 
技巧与提示¶
Grid Strike 的三大构成要素¶
为了有效设置 Grid Strike,您需要平衡以下三个基础要素:
1 - 价格范围
这是您挂单的区域,由 start_price 和 end_price 定义。
- 
窄幅范围:适用于价格波动较小的平稳市场。 
- 
宽幅范围:更适合高波动性资产,但订单分布更稀疏。 
示例:
Price Range = end_price - start_price
Your case: $6.8 - $5.5 = $1.3
Price Range % = ($1.3 / $5.5) × 100 = 23.6%
2 - 预算
您设定的资金量决定了机器人可以挂出多少订单,由 total_amount_quote 定义。请注意,此金额以报价资产(交易对中的第二个代币)为单位。我们在 V2 策略中统一采用此约定,以便您跨多个机器人实例管理预算。
- 机器人会将您的预算除以交易所允许的最小订单规模。
- 每个订单层级都需要预先预留资金。如果资金不足以覆盖所有订单,机器人将不会挂出全部订单。
示例:
# capital support
Max Orders by Budget = total_amount_quote ÷ min_order_amount_quote
Your case: $100 ÷ $7 = 14.28 ≈ 14 orders maximum
3 - 间距层级
这决定了你的订单之间的间隔距离,由 min_spread_between_orders 参数控制:
- 较小的间距(例如 0.5%) = 更多订单紧密排列 → 能捕捉小幅波动,但需要更多资金。
- 较大的间距(例如 2%) = 订单较少且分布更宽 → 针对较大行情波动,占用资金更少。
示例:
Max Levels = Price Range % ÷ min_spread_between_orders
Your case: 23.6% ÷ 0.7% = 33.7 levels (theoretical max)
你最终的网格将是这三个因素之间的平衡。机器人将在你选择的价格范围内,根据资金限制和设定的最小间距,尽可能多地创建订单。
做多与做空网格¶
可以将网格触发视为一种“顺势而为”的策略:
做空网格(押注价格下跌)
如果你预期价格会下跌,请将 side 设置为 2,并使用 start_price 和 end_price 定义预期的下行价格路径。通过 min_order_amount_quote 和 min_spread_between_orders 来设置网格中订单的间距。
网格触发会在逐步降低的价格上放置卖出(做空)订单。随着市场价格下行,这些订单将逐个被触发,逐步建立你的做空头寸,从而让你从下跌趋势中获利。
如果你预计价格将继续下行,可以将 Grid Strike 的 start_price 设为高于 end_price,如下所示。

做多网格(押注价格上涨)
如果你认为价格会上涨,请将 side 设置为 1,并使用 start_price 和 end_price 定义预期的上涨价格路径。同样地,使用 min_order_amount_quote 和 min_spread_between_orders 来设置网格中订单的间距。
网格触发会在逐步升高的价格上放置买入(做多)订单。随着价格上涨,你的订单将被逐一触发,不断加仓做多头寸,帮助你在上升趋势中获利。
相反,如果你预计价格将在支撑位出现反弹,或继续上涨趋势,可以将 Grid Strike 的 start_price 设为低于 end_price,如下所示。

这种“顺势分批建仓”的方式是其核心区别。传统网格在横盘区间内低买高卖(对抗趋势动量),而网格触发则是顺应动量,在趋势朝你有利方向发展时,持续增加盈利的做多或做空仓位。
 
                 
                    

