Files
ritmex-bot/grid-trading.md
T

4.5 KiB
Raw Blame History

网格交易策略使用教程

本文介绍如何在 Ritmex Bot 中使用全新的网格交易策略。我们将以 ASTERUSDT 永续合约为例,演示从环境配置到运行监控的完整流程,并对关键参数、风控机制、常见问题做出说明。

环境配置

  1. 复制 .env.example.env
    cp .env.example .env
    
  2. 配置 Aster 交易所 API
    EXCHANGE=aster
    ASTER_API_KEY=你的API密钥
    ASTER_API_SECRET=你的API密钥
    TRADE_SYMBOL=ASTERUSDT
    
  3. 设置基础精度与网格参数(示例使用 1.50 ~ 2.50 区间,20 条网格,单笔 5 手,最大仓位 50 手):
    PRICE_TICK=0.0001
    QTY_STEP=0.01
    
    GRID_LOWER_PRICE=1.50
    GRID_UPPER_PRICE=2.50
    GRID_LEVELS=20
    GRID_ORDER_SIZE=5
    GRID_MAX_POSITION_SIZE=50
    GRID_REFRESH_INTERVAL_MS=1000
    GRID_MAX_LOG_ENTRIES=200
    GRID_DIRECTION=both
    GRID_STOP_LOSS_PCT=0.02
    GRID_RESTART_TRIGGER_PCT=0.02
    

GRID_AUTO_RESTART_ENABLED=true GRID_MAX_CLOSE_SLIPPAGE_PCT=0.05


- `GRID_ORDER_SIZE` 与 `GRID_MAX_POSITION_SIZE` 需遵循「最大仓位 ÷ 单笔数量 ≥ 网格数」的原则,这样策略才能补齐全部挂单。本例 50 ÷ 5 = 10,但网格数为 20,意味着策略只会在离现价最近的上下各 10 个位置挂单,与仓位上限保持一致。

## 网格机制概览

- **几何等比网格**:所有网格价格基于上下边界按等比方式分布。
- **基于现价的挂单排序**:重启或行情驱动时,会优先在现价附近补挂,避免远端挂单未成交。
- **双向模式**`GRID_DIRECTION=both` 表示买卖两侧都开仓;设置为 `long` 或 `short` 则只在对应方向发起新仓,反方向挂单会自动带上 `reduceOnly`。
- **风控**
  - 跌破下界 * (1 - STOP_LOSS_PCT) 或突破上界 * (1 + STOP_LOSS_PCT) 时,策略撤销所有限价单并用市价平仓。
  - 若 `GRID_AUTO_RESTART_ENABLED=true`,当价格回到边界内 `RESTART_TRIGGER_PCT` 范围时会自动重启网格。
- **持仓限制**`GRID_MAX_POSITION_SIZE` 是总持仓上限,用于控制网格在极端走势中不会累积过量仓位。

## 运行命令

安装依赖后,使用 CLI 直接启动网格策略:
```bash
bun install
bun run index.ts --strategy grid --exchange aster

若要在 Ink Dashboard 中运行并交互,直接执行:

bun start

然后在菜单中选择 “基础网格策略”。

监控与调优

界面主要包括:

  • 当前买一/卖一、开仓方向、挂单/持仓概况。
  • 最近日志(订单状态、风控触发等)。
  • 触发止损后会清空网格并记录原因。

调参建议:

  1. 缩短区间:想拉高单格盈利,可缩小上下边界并减少网格数。
  2. 更精细挂单:适当提高 GRID_LEVELS 并降低 GRID_ORDER_SIZE,但同时记得调大 GRID_MAX_POSITION_SIZE
  3. 调节平仓容忍度GRID_MAX_CLOSE_SLIPPAGE_PCT 控制平仓单相对标记价的最大偏移,确保 reduce-only 订单不会被交易所拒绝。
  4. 只做单边:若只想高抛低吸不反手,可设 GRID_DIRECTION=long,卖单会变成 reduceOnly

中断恢复行为

策略重启后会:

  • 重新订阅账户、订单、深度、ticker;
  • 基于当前持仓和开放订单重新计算网格,只补挂缺失部分;
  • 在仓位额度允许的情况下持续追踪价位。

因此就算进程断掉,只要交易所回放的账号/订单快照完整,网格会从中断前的状态继续运行。若停机前手动撤过单,新启动时系统会把不在网格计划中的挂单一并清理。

常见问题

Q: 为什么只有靠近现价的几个网格有订单?

A: 每笔网格单都会占用一定仓位上限。当 GRID_MAX_POSITION_SIZE / GRID_ORDER_SIZE < GRID_LEVELS 时,只会展示足以满足仓位限制的那几条网格。调整任一参数即可扩大覆盖面。

Q: 价格突破上界后为何立即平仓?

A: 这是止损保护触发,避免庄外行情继续拉扯,默认 2% 触发后网格会全部撤单,并用市价平掉现有仓位。

Q: 想要手动调仓怎么办?

A: 暂停策略(Ctrl+C 或 dashboard 退出)后手动操作,完成后再启动,策略会以新的仓位/挂单为基准重新布网。

小结

通过上述配置,你就可以在 ASTERUSDT 合约上运行一个自动化的等比网格策略。请务必先在沙盒或小仓位测试,确保参数适应当前波动性和手续费结构,再逐步提升资金规模。

祝交易顺利!