Skip to content

defi-maker/grvt-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GRVT 交易机器人

支持多种交易策略的 GRVT 永续合约交易机器人。

功能特点

  • 多策略支持: 网格交易策略 + 盘口做市策略 + 心跳 Maker 策略 + 对敲刷量策略
  • 灵活配置: 通过命令行或环境变量配置策略参数
  • Dry-run 模式: 模拟交易,测试策略逻辑
  • 实时监控: WebSocket 实时获取行情和账户更新
  • 风险管理: 持仓限制、库存管理、冷却机制

支持的策略

1. 网格交易策略 (Grid)

双向网格交易策略,通过在价格波动中反复买卖赚取差价。

适用场景: 震荡市场,价格在一定范围内波动

核心特点:

  • 双向持仓(多头+空头)
  • 动态网格调整
  • 持仓风险控制
  • 主要使用 Maker 订单(获得返佣)

使用示例:

# 默认参数运行
uv run python main.py --strategy grid --symbol SOL-USDT --dry-run

# 自定义参数
uv run python main.py --strategy grid --symbol BTC-USDT \
  --grid-spacing 0.002 \
  --order-amount 200 \
  --position-threshold 10000

参数说明:

  • --grid-spacing: 网格间距(默认 0.005,即 0.5%)
  • --order-amount: 每单金额(USDT)(默认 100)
  • --position-threshold: 持仓阈值(USDT)(默认 6000)
  • --position-limit: 持仓限制(USDT)(默认 3000)

2. 盘口做市策略 (Pankou)

在买卖盘口之间动态挂单,通过价差获利的做市策略。

适用场景: 流动性较好的市场,适合专业做市

核心特点:

  • 动态价格调整
  • 库存风险管理
  • 持仓倾斜机制
  • 价差套利

使用示例:

# 默认参数运行
uv run python main.py --strategy pankou --symbol SOL-USDT --dry-run

# 自定义参数
uv run python main.py --strategy pankou --symbol ETH-USDT \
  --price-range 10 \
  --min-price-step 2 \
  --trade-amount 0.02

参数说明:

  • --price-range: 价格范围(默认 5)
  • --min-price-step: 最小价格间隔(默认 1)
  • --trade-amount: 每次交易量(默认 0.01)

3. 心跳 Maker 策略 (Heartbeat)

按照 1 分钟心跳(可配置)执行纯 Maker 订单的“开/平”完整交易轮次。每轮结束后根据盈亏自动调整下一轮的金额与杠杆:盈利重置,亏损金额×1.2 且杠杆+1;当杠杆达到上限(默认 50x)时,该轮完成后重置。

核心特点:

  • 纯 Maker 下单(post-only/PO)
  • 订单生命周期管理(开仓/检查/撤单/追价/平仓)
  • 简单的状态管理(IDLE/OPENING/CLOSING)

使用示例:

# Dry-run 测试
uv run python main.py --strategy heartbeat --symbol XRP-USDT --dry-run \
  --hb-interval 60 --hb-initial-amount 20 --hb-initial-leverage 1 --hb-max-leverage 50

# 实盘示例(确保 .env 已配置)
uv run python main.py --strategy heartbeat --symbol XRP-USDT \
  --hb-interval 60 --hb-initial-amount 20 --hb-initial-leverage 1 --hb-max-leverage 50

参数说明:

  • --hb-interval: 心跳间隔(秒),默认 60
  • --hb-initial-amount: 初始下单数量(币本位),默认 20
  • --hb-initial-leverage: 初始杠杆,默认 1
  • --hb-max-leverage: 杠杆上限,默认 50
  • --hb-size-scale-leverage: 当交易所 API 不支持设置杠杆时,可选将“杠杆”作为下单数量的放大系数应用到下单数量(谨慎使用)

4. 对敲策略 (Duiqiao)

⚠️ 刷量型策略,与传统做市策略有本质区别

通过同价买卖来增加交易量,获取交易所返佣或等级优惠。买入价和卖出价相同,不产生价差收益。

适用场景:

  • ✅ 交易所有明确的做市商优惠政策(负手续费/返佣)
  • ✅ 适合交易量要求较高的VIP等级提升
  • ✅ 存在流动性挖矿或返佣活动的平台

核心特点:

  • 同价买卖(不赚取价差)
  • 交易量导向
  • 依赖交易所返佣机制
  • 订单状态管理(两单都成交/单边成交/都未成交)
  • 智能对冲机制:优先使用Maker对冲(获取返佣),失败则降级为市价对冲(保证风险控制)

使用示例:

# Dry-run 测试(默认使用智能Maker对冲)
uv run python main.py --strategy duiqiao --symbol SOL-USDT --dry-run \
  --dq-trade-amount 0.1 --dq-target-amount 1.0

# 实盘示例(使用智能Maker对冲,获取双倍返佣)
uv run python main.py --strategy duiqiao --symbol SOL-USDT \
  --dq-trade-amount 0.1 --dq-target-amount 10.0 \
  --dq-use-maker-hedge --dq-hedge-wait-time 3

# 如果需要快速对冲(使用市价单),可以禁用Maker对冲
uv run python main.py --strategy duiqiao --symbol SOL-USDT \
  --dq-trade-amount 0.1 --dq-target-amount 10.0 \
  --dq-hedge-wait-time 0  # 设为0等同于禁用Maker对冲

参数说明:

  • --dq-trade-amount: 每次交易量(默认 0.01,需根据交易所最小下单量调整)
  • --dq-target-amount: 目标完成交易量(双边计算)(默认 1.0)
  • --dq-use-maker-hedge: 优先使用Maker对冲(默认 true,获取返佣)
  • --dq-hedge-wait-time: Maker对冲单等待时间(秒)(默认 3)

⚠️ 风险提示:

  • 如果买卖订单同时成交,扣除手续费后通常是亏损的
  • 必须依赖交易所的负手续费(Maker返佣)才能盈利
  • 如果交易所政策变化,策略可能立即失效
  • 可能面临合规风险(部分地区对刷量行为有限制)
  • 仅建议在有明确返佣政策的交易所使用

💡 智能对冲优化:

  • ✅ 优先使用Maker对冲:单边成交后,先尝试用限价单对冲(获取返佣)
  • ✅ 降级Taker对冲:如果Maker单在指定时间内未成交,自动降级为市价对冲
  • ✅ 成本优化:Maker对冲成功时,双边都获得返佣(-0.02%),比市价对冲节省 0.065%
  • ✅ 风险可控:即使Maker对冲失败,也会自动用市价单强制对冲,保证持仓平衡

快速开始

1. 安装依赖

uv sync

2. 配置环境变量

复制 .env.example.env 并填写你的账户信息:

cp .env.example .env

编辑 .env 文件:

GRVT_TRADING_ACCOUNT_ID=your_trading_account_id
GRVT_PRIVATE_KEY=your_private_key
GRVT_API_KEY=your_api_key
GRVT_ENV=TESTNET  # 或 PROD

3. 运行策略

测试模式(推荐首次使用):

# 测试网格策略
uv run python main.py --strategy grid --symbol SOL-USDT --dry-run

# 测试盘口策略
uv run python main.py --strategy pankou --symbol SOL-USDT --dry-run

# 测试对敲策略
uv run python main.py --strategy duiqiao --symbol SOL-USDT --dry-run

实盘运行:

# 运行网格策略
uv run python main.py --strategy grid --symbol SOL-USDT

# 运行盘口策略
uv run python main.py --strategy pankou --symbol SOL-USDT

# 运行对敲策略(确保交易所有返佣政策)
uv run python main.py --strategy duiqiao --symbol SOL-USDT

费率说明

GRVT 交易所费率:

  • Maker: -0.01% (返佣)
  • Taker: 0.055%

两种策略都主要使用 Maker 订单,因此可以获得手续费返佣。

策略对比

特征 网格策略 盘口策略 心跳策略 对敲策略
适用市场 震荡市场 流动性好的市场 任意市场 有返佣的市场
风险程度 中等 较高 中等 极高
收益模式 价格波动差价 买卖价差 Maker返佣 交易所返佣
持仓特点 双向持仓 动态库存 周期性持仓 对冲持仓
技术要求 中等 较高 中等
资金效率 中等 较高
依赖条件 价格震荡 有价差 Maker返佣 负手续费

风险提示

⚠️ 重要提示:

  1. 永续合约交易存在高风险,请谨慎使用
  2. 建议先在测试网环境熟悉策略
  3. 使用 --dry-run 模式测试策略逻辑
  4. 合理设置持仓限制和风险参数
  5. 定期监控策略运行状态

项目结构

grvt-bot/
├── main.py                 # 主程序入口
├── strategies/             # 策略目录
│   ├── __init__.py
│   ├── base.py            # 策略基类
│   ├── grid_strategy.py   # 网格交易策略
│   ├── pankou_strategy.py # 盘口做市策略
│   ├── heartbeat_strategy.py # 心跳 Maker 策略
│   └── duiqiao_strategy.py # 对敲刷量策略
├── docs/                   # 文档目录
│   ├── duiqiao.md         # 对敲策略说明(理论文档)
│   ├── pankou.md          # 盘口策略说明
│   ├── FEE_ANALYSIS.md    # 费率分析
│   └── STRATEGY_COMPARISON.md  # 策略对比
├── log/                    # 日志目录
├── .env                    # 环境变量配置
├── .env.example           # 环境变量模板
├── pyproject.toml         # 项目配置
└── README.md              # 本文件

查看帮助

uv run python main.py --help

日志查看

策略运行日志保存在 log/main.log

# 实时查看日志
tail -f log/main.log

# 查看最近的日志
tail -n 100 log/main.log

常见问题

1. 如何选择策略?

  • 网格策略: 适合币价在一定范围内震荡的市场,不需要判断方向
  • 盘口策略: 适合流动性好的市场,需要更精细的风险管理
  • 心跳策略: 适合追求纯 Maker 返佣的场景,自动调整杠杆
  • 对敲策略: ⚠️ 仅适合有明确负手续费/返佣政策的交易所,高风险刷量策略

2. 如何设置合适的参数?

网格策略:

  • 网格间距:建议从 0.5% 开始,根据币种波动率调整
  • 订单金额:建议从小金额开始,逐步增加
  • 持仓限制:根据总资金量的 20-30% 设置

盘口策略:

  • 价格范围:根据当前市场波动率设置,建议 5-10
  • 交易量:建议从小额开始测试
  • 库存限制:严格控制,避免单边持仓过大

对敲策略:

  • ⚠️ 仅在确认交易所有负手续费(Maker返佣)时使用
  • 交易量:建议从极小额开始(0.01)
  • 目标量:建议设置较小的目标量进行测试(1.0)
  • 监控手续费:密切监控累计手续费,确保返佣大于成本

3. Dry-run 模式准确吗?

Dry-run 模式模拟订单操作,但实际成交情况可能不同。建议:

  1. 先在 dry-run 模式观察策略逻辑
  2. 然后在测试网小资金运行
  3. 最后在主网小资金试运行

技术支持

如遇问题,请查看:

  1. 日志文件 log/main.log
  2. 文档目录 docs/
  3. 项目 Issues

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages