Skip to content

discountry/ritmex-bot

Repository files navigation

ritmex-bot

For English users, please see README_en.md.

Please set LANG=en in .env for English interface.

A Bun-powered multi-exchange perpetuals workstation that ships an SMA30 trend engine, a Guardian stop sentinel, and two market-making modes. It offers instant restarts, realtime market data, structured logging, and an Ink-based CLI dashboard.

基于 Bun 的多交易所永续合约量化终端,内置趋势跟随(SMA30)、Guardian 防守与做市策略,支持快速恢复、实时行情订阅、日志追踪与 CLI 仪表盘。

如果您希望获取优惠并支持本项目,请考虑使用以下注册链接:

CLI 命令模式(ritmex-bot)

ritmex-bot 支持 Agent 友好的结构化命令调用,覆盖交易所能力查询、行情、账户、仓位、下单、撤单与策略启动。

  • 保持现有环境变量体系,不新增也不改名,只读取当前执行环境中的变量。
  • --symbol 原样透传,不对交易对做统一改写。
  • 支持 --dry-run 模拟执行与 --json 结构化输出,便于自动化系统集成。

安装当前项目 Skill(skills add)

bunx skills add https://github.com/discountry/ritmex-bot --skill use-ritmex-bot

如需指定分支,可追加 --ref <branch-or-tag>

完整文档请见:ritmex-bot CLI 使用手册(中文)

文档索引

核心特性

  • 实时行情与风控:Websocket + REST 自动同步账户、挂单与仓位,断线后自动恢复。
  • 趋势策略:SMA30 穿越入场,内置止损、移动止盈、布林带带宽过滤与步进锁盈。
  • Guardian 策略:不主动开单,实时监听账户仓位并强制补挂/移动止损与动态止盈,防止裸奔。
  • 做市策略:支持双边追价、风险阈值控制与订单自愈。
  • 模块化架构:策略引擎、交易所适配器与 Ink CLI 相互解耦,新增交易所或策略更容易。

支持的交易所

交易所 市场类型 标准配置必填项 备注
Aster USDT 永续 ASTER_API_KEY, ASTER_API_SECRET 生产环境;默认交易所
Binance 现货 + USDⓈ-M 永续 BINANCE_API_KEY, BINANCE_API_SECRET BINANCE_MARKET_TYPE 选择市场
StandX USD 永续 STANDX_TOKEN, STANDX_REQUEST_PRIVATE_KEY JWT 认证 + Ed25519 交易签名
GRVT USDT 永续 GRVT_API_KEY, GRVT_API_SECRET, GRVT_SUB_ACCOUNT_ID, GRVT_INSTRUMENT GRVT_ENV 支持 prod/testnet
Lighter 永续 + 部分现货 LIGHTER_ACCOUNT_INDEX, LIGHTER_API_KEY_INDEX, LIGHTER_API_PRIVATE_KEY 默认 LIGHTER_ENV=testnet
Backpack 现货 + USDC 永续 BACKPACK_API_KEY, BACKPACK_API_SECRET 永续应显式使用 *_PERP 符号
Paradex USD 永续 PARADEX_PRIVATE_KEY, PARADEX_WALLET_ADDRESS PARADEX_SANDBOX=true 使用测试网
Nado USDC 永续 NADO_SIGNER_PRIVATE_KEY, NADO_SUBACCOUNT_OWNER NADO_ENV 支持 inkMainnet/inkTestnet
Ondo Perps 加密资产/股票/商品永续 ONDOPERPS_API_KEY_ID, ONDOPERPS_API_SECRET HMAC 鉴权;支持生产与沙盒环境

系统要求

  • Bun ≥ 1.2(需同时包含 bunbunx 命令)
  • macOS、Linux 或 Windows (推荐 WSL)
  • Node.js 仅在部分工具链场景需要,可选

快速上手

一键脚本(macOS / Linux / WSL)

curl -fsSL https://github.com/discountry/ritmex-bot/raw/refs/heads/main/setup.sh | bash

脚本会安装 Bun、项目依赖,收集 Aster API 凭证,生成 .env 并启动 CLI。运行前请准备好对应交易所的 API Key/Secret。

手动安装

  1. 获取代码
    git clone https://github.com/discountry/ritmex-bot.git
    cd ritmex-bot
    不便使用 Git 时,可在仓库页面下载 ZIP 后手动解压。
  2. 安装 Bun
    • macOS / Linux:curl -fsSL https://bun.sh/install | bash
    • Windows PowerShell:powershell -c "irm bun.sh/install.ps1 | iex" 安装完成后重新打开终端,确认 bun -v 正常输出版本号。
  3. 安装依赖
    bun install
  4. 复制环境变量模板并填写
    cp .env.example .env
    按下文指南修改 .env,至少需要正确配置一个交易所的凭证。
  5. 运行 CLI
    bun run index.ts
    方向键选择策略并回车启动;Esc 返回菜单,Ctrl+C 退出。

通用环境变量

.env.example 提供了所有默认键值,下表概括最常用参数:

变量 说明
EXCHANGE 选择交易所(aster/binance/standx/grvt/lighter/backpack/paradex/nado/ondoperps
TRADE_SYMBOL 交易对(默认 BTCUSDT
TRADE_AMOUNT 单笔下单数量(标的资产计)
LOSS_LIMIT 单笔最大亏损触发的强平额度(USDT)
TRAILING_PROFIT / TRAILING_CALLBACK_RATE 动态止盈触发值(USDT)与回撤百分比
PROFIT_LOCK_TRIGGER_USD / PROFIT_LOCK_OFFSET_USD 浮盈超过阈值后上调止损的触发金额与偏移
BOLLINGER_* 趋势策略布林带过滤参数
PRICE_TICK / QTY_STEP 交易所要求的最小报价与数量精度
POLL_INTERVAL_MS 趋势策略循环间隔(毫秒)
MAX_CLOSE_SLIPPAGE_PCT 平仓时相对标记价允许的最大偏差
MAKER_* 做市策略专属参数(追价阈值、报价偏移、刷新频率等)

可通过命令行临时覆盖交易所与策略(优先级高于 .env):

bun run index.ts --exchange grvt --strategy maker
bun run index.ts -e lighter -s offset-maker --silent

交易所配置指南

每个受支持交易所均提供独立的中文与英文配置教程。教程覆盖凭证获取、必填变量、网络选择、符号格式、只读验证和安全要求。

交易所 中文教程 English Guide
Aster 配置教程 Configuration Guide
Binance 配置教程 Configuration Guide
StandX 配置教程 Configuration Guide
GRVT 配置教程 Configuration Guide
Lighter 配置教程 Configuration Guide
Backpack 配置教程 Configuration Guide
Paradex 配置教程 Configuration Guide
Nado 配置教程 Configuration Guide
Ondo Perps 配置教程 Configuration Guide

命令速查

bun run index.ts   # 启动 CLI(默认入口)
bun run start      # 等价于运行 index.ts
bun run dev        # 调试模式
bun run lint       # 执行 Oxlint 检查
bun run lint:fix   # 自动修复可安全修复的问题
bun x vitest run   # 执行全部测试

ritmex-bot 命令模式(Agent 友好)

项目现已支持独立命令模式,命令名为 ritmex-bot

ritmex-bot doctor
ritmex-bot exchange list
ritmex-bot market ticker --exchange binance --symbol BTCUSDT
ritmex-bot order create --exchange binance --symbol BTCUSDT --side buy --type limit --quantity 0.01 --price 90000 --dry-run
ritmex-bot strategy run --strategy maker --exchange standx --silent --dry-run

运行方式

# 全局安装
bun add -g ritmex-bot
ritmex-bot doctor

# 不安装直接运行
bunx ritmex-bot doctor

全局参数

  • --exchange:按现有逻辑选择交易所(不修改原有环境变量体系)
  • --symbol:原样透传,不做统一或改写
  • --dry-run:模拟执行,不发真实下单/撤单请求
  • --json:输出结构化 JSON,便于 AI Agent 解析
  • --timeout:命令超时毫秒数

静默启动与后台运行

直接静默启动

无需进入 Ink 菜单,可用命令行直接拉起指定策略:

bun run index.ts --strategy trend --silent
bun run index.ts --strategy maker --silent
bun run index.ts --strategy offset-maker --silent

如需同时指定交易所,可叠加 --exchange/-e 参数。

项目内置脚本

package.json 提供了便捷脚本:

bun run start:trend:silent
bun run start:maker:silent
bun run start:offset:silent

使用 pm2 守护并自动重启

安装 pm2(示例:bun add -d pm2)后,可在项目内直接运行:

bunx pm2 start bun --name ritmex-trend --cwd . --restart-delay 5000 -- run index.ts --strategy trend --silent

或调用预置脚本:

bun run pm2:start:trend
bun run pm2:start:maker
bun run pm2:start:offset

完成配置后可执行 pm2 save 持久化进程列表。

测试

项目使用 Vitest:

bun run lint
bun run lint:fix
bun run test
bun x vitest --watch

常见问题

  • 至少准备 50–100 USDT 资金以覆盖策略运行需求。
  • 杠杆需在交易所提前设置(建议 ~50 倍),程序不会自动调整。
  • 请确保服务器/电脑时间同步真实世界时间,避免签名过期。
  • 账户需保持单向持仓模式。
  • .env 未读取:确认文件位于项目根目录且变量名无误。
  • API 拒绝访问:检查交易所后台权限,确保开启合约读写。
  • 精度错误:同步交易对的最小价格与数量步长。 更多排查细节可参见 简明上手指南

社区与支持

风险提示

量化交易具备风险。请先在仿真或小额账户中验证策略表现,妥善保管 API 密钥,仅开启必要权限。

About

Perp DEX trading bot.

Topics

Resources

Stars

459 stars

Watchers

4 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors