mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 16:28:06 +00:00
101 lines
4.5 KiB
Markdown
101 lines
4.5 KiB
Markdown
# 网格交易策略使用教程
|
||
|
||
本文介绍如何在 Ritmex Bot 中使用全新的网格交易策略。我们将以 ASTERUSDT 永续合约为例,演示从环境配置到运行监控的完整流程,并对关键参数、风控机制、常见问题做出说明。
|
||
|
||
## 环境配置
|
||
|
||
1. 复制 `.env.example` 到 `.env`
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
2. 配置 Aster 交易所 API:
|
||
```env
|
||
EXCHANGE=aster
|
||
ASTER_API_KEY=你的API密钥
|
||
ASTER_API_SECRET=你的API密钥
|
||
TRADE_SYMBOL=ASTERUSDT
|
||
```
|
||
3. 设置基础精度与网格参数(示例使用 1.50 ~ 2.50 区间,20 条网格,单笔 5 手,最大仓位 50 手):
|
||
```env
|
||
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 中运行并交互,直接执行:
|
||
```bash
|
||
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 合约上运行一个自动化的等比网格策略。请务必先在沙盒或小仓位测试,确保参数适应当前波动性和手续费结构,再逐步提升资金规模。
|
||
|
||
祝交易顺利!
|