关注我 X (Twitter): @yourQuantGuy
English speakers: Please read README_EN.md for the English version of this documentation.
永久享受 VIP 1 费率;额外 10% 手续费返佣;10% 额外奖励积分
Backpack: https://backpack.exchange/join/quant
使用我的推荐链接获得 35% 手续费返佣
Paradex: https://app.paradex.trade/r/quant
使用我的推荐链接获得 10% 手续费返佣以及 5% 积分加成
获得 1.3x 全网最高的积分加成;30% 手动反佣
Extended: https://app.extended.exchange/join/QUANT
10%的即时手续费减免;5% 积分加成
本项目是一个加密货币期货跨所套利的框架,仅为分享交流目的,不能直接用于生产环境,实际交易需谨慎使用。
本项目实现了一个跨交易所套利交易机器人,目前主要在 edgeX 和 Lighter 两个交易所之间进行价差套利。机器人通过在 edgeX 上挂 post-only 限价单(做市单),在 Lighter 上执行市价单来完成套利交易。
- 🔄 跨交易所套利:自动检测并利用两个交易所之间的价差
- 📊 实时订单簿管理:通过 WebSocket 实时监控订单簿变化
- 📈 仓位跟踪:实时跟踪和管理交易仓位
- 🛡️ 风险控制:支持最大仓位限制和超时控制
- 📝 数据记录:记录交易数据和统计信息
- ⚡ 异步执行:基于 asyncio 的高性能异步架构
- Python 3.8+
- edgeX 和 Lighter 交易所账户
- API 密钥和访问权限
git clone <repository-url>
cd cross-exchange-arbitragepython -m venv venv激活虚拟环境:
macOS/Linux:
source venv/bin/activateWindows:
venv\Scripts\activatepip install -r requirements.txt复制 env_example.txt 为 .env 并填写您的 API 凭证:
cp env_example.txt .env编辑 .env 文件,填入你的 API 信息:
# edgeX 账户凭证(必需)
EDGEX_ACCOUNT_ID=your_account_id_here
EDGEX_STARK_PRIVATE_KEY=your_stark_private_key_here
# EdgeX API 端点
EDGEX_BASE_URL=https://pro.edgex.exchange
EDGEX_WS_URL=wss://quote.edgex.exchange
# Lighter 配置(必需)
API_KEY_PRIVATE_KEY=your_api_key_private_key_here
LIGHTER_ACCOUNT_INDEX=your_account_index
LIGHTER_API_KEY_INDEX=your_api_key_indexpython arbitrage.py --ticker BTC --size 0.002 --max-position 0.1 --long-threshold 10 --short-threshold 10--exchange:交易所名称(默认:edgex)--ticker:交易对符号(默认:BTC)--size:每笔订单的交易数量(必需)--max-position:最大持仓限制(必需)--long-threshold:做多套利触发阈值(Lighter 买一价高于 edgeX 卖一价超过多少即做多 edgeX 套利,默认:10)--short-threshold:做空套利触发阈值(edgeX 买一价高于 Lighter 卖一价超过多少即做空 edgeX 套利,默认:10)--fill-timeout:限价单成交超时时间(秒,默认:5)
# 交易 ETH,每笔订单 0.01 ETH,设置 5 秒超时
python arbitrage.py --ticker ETH --size 0.01 --long-threshold 10 --short-threshold 10 --max-position 0.1 --fill-timeout 5
# 交易 BTC,限制最大持仓为 0.1 BTC
python arbitrage.py --ticker BTC --size 0.002 --long-threshold 1 --short-threshold 20 --max-position 0.1cross-exchange-arbitrage/
├── arbitrage.py # 主程序入口
├── exchanges/ # 交易所接口实现
│ ├── base.py # 基础交易所接口
│ ├── edgex.py # edgeX 交易所实现
│ ├── lighter.py # Lighter 交易所实现
│ └── lighter_custom_websocket.py # Lighter WebSocket 管理
├── strategy/ # 交易策略模块
│ ├── edgex_arb.py # 主要套利策略
│ ├── order_book_manager.py # 订单簿管理
│ ├── order_manager.py # 订单管理
│ ├── position_tracker.py # 仓位跟踪
│ ├── websocket_manager.py # WebSocket 管理
│ └── data_logger.py # 数据记录
├── requirements.txt # Python 依赖
├── env_example.txt # 环境变量示例
└── README.md # 项目说明文档
- 订单簿监控:通过 WebSocket 实时接收两个交易所的订单簿更新
- 价差检测:计算两个交易所之间的价差
- 套利机会识别:当价差超过阈值时,识别套利机会
- 订单执行:
- 在 edgeX 上挂 post-only 限价单(做市单,赚取手续费)
- 在 Lighter 上执行市价单完成对冲
- 仓位管理:实时跟踪仓位,确保不超过最大持仓限制
- 风险控制:监控订单成交状态,超时未成交则取消订单
- 套利交易存在市场风险,请确保充分理解交易机制
- 建议先在测试环境或小额资金下测试
- 注意网络延迟和交易所 API 限制
- 定期检查仓位和资金状况
主要依赖包括:
python-dotenv:环境变量管理asyncio:异步编程支持requests:HTTP 请求tenacity:重试机制edgex-python-sdk:edgeX 官方 Python SDK(fork 版本,支持 post-only 限价单)lighter-python:Lighter 交易所 SDK
请查看 LICENSE 文件了解详情。
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请通过 Issue 联系。