stock-ai-agent/docs/BITGET_SDK_MIGRATION.md

192 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bitget Python SDK 迁移指南
## 概述
已将 Bitget 交易 API 从手动实现迁移到使用 **CCXT Python SDK**
## 主要变化
### 1. 依赖变更
**新增依赖:**
```bash
pip install ccxt>=4.0.0
```
### 2. 文件结构
| 旧文件 | 新文件 | 说明 |
|--------|--------|------|
| `bitget_trading_api.py` | `bitget_trading_api_sdk.py` | 使用 CCXT 的新实现 |
| - | `scripts/test_bitget_sdk.py` | SDK 测试脚本 |
### 3. API 响应格式变化
#### 旧版本(直接 API
```python
# 订单响应格式
{
'orderId': '123456789',
'fillPrice': '50000.5',
...
}
```
#### 新版本CCXT
```python
# 订单响应格式
{
'id': '123456789',
'price': '50000.0', # 委托价格
'average': '50000.5', # 成交均价
'status': 'closed', # CCXT 标准状态
...
}
```
### 4. 订单方向变化
#### 旧版本
```python
side_map = {
OrderSide.LONG: 'open_long',
OrderSide.SHORT: 'open_short'
}
```
#### 新版本CCXT 标准化)
```python
side_map = {
OrderSide.LONG: 'buy',
OrderSide.SHORT: 'sell'
}
```
### 5. 交易对格式
#### 旧版本
```
BTCUSDT
ETHUSDT
```
#### 新版本CCXT 标准化)
```
BTC/USDT:USDT
ETH/USDT:USDT
```
新实现会自动进行格式转换。
## 安装步骤
### 1. 安装依赖
```bash
cd backend
pip install -r requirements.txt
```
### 2. 配置环境变量
`.env` 文件中配置:
```bash
# Bitget API 配置
BITGET_API_KEY=your_api_key_here
BITGET_API_SECRET=your_api_secret_here
BITGET_PASSPHRASE= # Bitget 不需要,保留兼容性
BITGET_USE_TESTNET=true # 测试时设为 true
# 实盘交易开关
REAL_TRADING_ENABLED=false # 生产环境再启用
```
### 3. 测试连接
```bash
cd scripts
python test_bitget_sdk.py
```
预期输出:
```
============================================================
测试 1: API 连接测试
============================================================
✅ API 连接成功USDT 余额: 10000.00
============================================================
测试 2: 查询账户余额
============================================================
✅ 余额查询成功
USDT: 可用=10000.00, 冻结=0.00
...
```
## CCXT 的优势
1. **统一接口** - 同样的代码可以支持多个交易所Binance, OKX, Bybit 等)
2. **更好的维护** - CCXT 团队持续更新,修复 API 变更
3. **内置重试** - 自动处理网络问题和速率限制
4. **标准化格式** - 统一的订单状态、交易对格式
5. **异步支持** - 支持 async/await 模式
## API 功能对比
| 功能 | 旧实现 | 新实现CCXT |
|------|--------|----------------|
| 下单 | ✅ | ✅ |
| 撤单 | ✅ | ✅ |
| 查询订单 | ✅ | ✅ |
| 查询挂单 | ✅ | ✅ |
| 查询持仓 | ✅ | ✅ |
| 查询余额 | ✅ | ✅ |
| 设置杠杆 | ✅ | ✅ |
| 测试网支持 | ✅ | ✅ |
| 自动重试 | ❌ | ✅ |
| 速率限制 | ❌ | ✅ |
## 兼容性说明
-`real_trading_service.py` 已更新使用新 SDK
- ✅ 保持相同的公共接口
- ✅ 数据库模型无需更改
- ⚠️ 需要重新测试实盘交易功能
## 下一步
1. **在测试网验证** - 确保所有功能正常
2. **小资金实盘测试** - 验证订单执行
3. **监控日志** - 检查是否有任何错误
4. **逐步迁移** - 确认稳定后使用新版本
## 回滚方案
如果需要回滚到旧版本:
1. 修改 `real_trading_service.py` 第 33 行:
```python
# 从
from app.services.bitget_trading_api_sdk import get_bitget_trading_api
# 改回
from app.services.bitget_trading_api import get_bitget_trading_api
```
2. 重启服务
## 相关资源
- CCXT 官方文档: https://docs.ccxt.com/
- CCXT Bitget 支持: https://docs.ccxt.com/#exchange-sources
- Bitget 官方文档: https://www.bitget.com/api-doc
## 支持
如有问题,请检查:
1. CCXT 版本是否 >= 4.0.0
2. API 密钥是否正确
3. 网络连接是否正常
4. 测试网是否可用