スキル一覧に戻る

binance-futures-trading

phpmac / trader

0🍴 0📅 2026年1月18日

使用币安 USDT-M 永续合约 MCP 工具进行交易操作, 包括账户查询、杠杆设置、开仓平仓、止损止盈等.当需要执行币安合约交易相关操作时触发此技能.

SKILL.md

---
name: binance-futures-trading
description: 使用币安 USDT-M 永续合约 MCP 工具进行交易操作, 包括账户查询、杠杆设置、开仓平仓、止损止盈等.当需要执行币安合约交易相关操作时触发此技能.
---

# 币安 USDT 合约交易技能

## 概述

本技能提供币安 USDT-M 永续合约的完整交易功能, 通过 MCP 工具实现:

- 账户余额查询
- 持仓信息查询
- 杠杆/保证金模式设置
- 开仓/平仓操作
- 止损止盈设置
- 订单管理 (查询/撤销)

---

## 环境配置

### 必需的环境变量

```bash
# API 密钥 (必需)
BINANCE_API_KEY=your_api_key
BINANCE_API_SECRET=your_api_secret

# 模拟交易模式 (默认 true, 不执行真实订单)
TRADING_SIMULATION=true

# 使用测试网 (可选, 默认 false)
BINANCE_USE_TESTNET=false
```

### 安全提醒

- **禁止**在代码中硬编码 API 密钥
- 建议先使用测试网验证策略
- 默认启用模拟模式, 防止误操作

---

## 可用工具

### 查询类 (只读)

| 工具名称 | 功能 | 参数 |
|----------|------|------|
| `binance_get_balance` | 查询账户余额 | `asset` (可选) |
| `binance_get_positions` | 查询持仓信息 | `symbol` (可选) |
| `binance_get_open_orders` | 查询普通挂单 (限价单等) | `symbol` (可选) |
| `binance_get_open_algo_orders` | 查询条件单 (止盈止损) | `symbol` (可选) |

> **注意**: 止盈止损订单使用 Algo Order API, 需要用 `binance_get_open_algo_orders` 查询, 不会出现在 `binance_get_open_orders` 中.

### 设置类

| 工具名称 | 功能 | 参数 |
|----------|------|------|
| `binance_change_leverage` | 设置杠杆倍数 | `symbol`, `leverage` (1-125) |
| `binance_change_margin_type` | 设置保证金模式 | `symbol`, `margin_type` (ISOLATED/CROSSED) |

### 交易类

| 工具名称 | 功能 | 关键参数 |
|----------|------|----------|
| `binance_place_order` | 下单 | `symbol`, `side`, `type`, `quantity` |
| `binance_close_position` | 平仓 | `symbol`, `quantity` (可选) |
| `binance_set_stop_loss_take_profit` | 设置止损止盈 | `symbol`, `stopLossPrice`, `takeProfitPrice` |
| `binance_cancel_order` | 撤销普通订单 | `symbol`, `orderId` |
| `binance_cancel_all_orders` | 撤销所有普通订单 | `symbol` |
| `binance_cancel_algo_order` | 撤销单个条件单 | `symbol`, `algoId` |
| `binance_cancel_all_algo_orders` | 撤销所有条件单 | `symbol` |

---

## 使用示例

### 1. 查询账户状态

```python
# 查询 USDT 余额
binance_get_balance(asset="USDT")

# 查询所有持仓
binance_get_positions()

# 查询指定交易对持仓
binance_get_positions(symbol="BTCUSDT")
```

### 2. 设置杠杆和保证金模式

```python
# 设置 BTCUSDT 杠杆为 10 倍
binance_change_leverage(symbol="BTCUSDT", leverage=10)

# 切换为逐仓模式 (有持仓时无法切换)
binance_change_margin_type(symbol="BTCUSDT", margin_type="ISOLATED")
```

### 3. 开仓

```python
# 市价做多 0.01 BTC
binance_place_order(
    symbol="BTCUSDT",
    side="BUY",
    type="MARKET",
    quantity=0.01,
    confirm_real_order=True  # 实盘必须
)

# 限价做空
binance_place_order(
    symbol="BTCUSDT",
    side="SELL",
    type="LIMIT",
    quantity=0.01,
    price=100000,
    timeInForce="GTC",
    confirm_real_order=True
)
```

### 4. 平仓

```python
# 全部平仓
binance_close_position(
    symbol="BTCUSDT",
    confirm_real_order=True
)

# 部分平仓
binance_close_position(
    symbol="BTCUSDT",
    quantity=0.005,
    confirm_real_order=True
)
```

### 5. 设置止损止盈

```python
# 同时设置止损和止盈
binance_set_stop_loss_take_profit(
    symbol="BTCUSDT",
    stopLossPrice=95000,
    takeProfitPrice=110000,
    confirm_real_order=True
)

# 只设置止损
binance_set_stop_loss_take_profit(
    symbol="BTCUSDT",
    stopLossPrice=95000,
    confirm_real_order=True
)
```

### 6. 订单管理

```python
# 查询普通挂单 (限价单等)
binance_get_open_orders(symbol="BTCUSDT")

# 查询条件单 (止盈止损订单)
binance_get_open_algo_orders(symbol="BTCUSDT")

# 撤销指定订单
binance_cancel_order(symbol="BTCUSDT", orderId=123456789)

# 撤销所有普通挂单
binance_cancel_all_orders(symbol="BTCUSDT")

# 撤销单个条件单 (止盈止损)
binance_cancel_algo_order(symbol="BTCUSDT", algoId=123456789)

# 撤销所有条件单 (止盈止损)
binance_cancel_all_algo_orders(symbol="BTCUSDT")
```

> **重要**:
> - 止盈止损订单使用 Algo Order API (2025-12-09 迁移后)
> - 查询条件单: `binance_get_open_algo_orders`
> - 撤销条件单: `binance_cancel_algo_order` 或 `binance_cancel_all_algo_orders`
> - 普通的 `binance_cancel_all_orders` **无法撤销条件单**

---

## 订单类型说明

| 类型 | 说明 | 必需参数 |
|------|------|----------|
| `MARKET` | 市价单, 立即成交 | `quantity` |
| `LIMIT` | 限价单 | `quantity`, `price`, `timeInForce` |
| `STOP_MARKET` | 止损市价单 | `stopPrice` |
| `TAKE_PROFIT_MARKET` | 止盈市价单 | `stopPrice` |
| `STOP` | 止损限价单 | `price`, `stopPrice` |
| `TAKE_PROFIT` | 止盈限价单 | `price`, `stopPrice` |

---

## 交易方向

**账户使用对冲模式 (Hedge Mode)**, 所有交易操作必须指定 `positionSide` 参数:

- **开多**: `side=BUY` + `positionSide=LONG`
- **平多**: `side=SELL` + `positionSide=LONG`
- **开空**: `side=SELL` + `positionSide=SHORT`
- **平空**: `side=BUY` + `positionSide=SHORT`

> 注意: 不要使用 `positionSide=BOTH`, 会报错 `-4061`

---

## 模拟交易模式

默认情况下, 所有交易类工具运行在**模拟模式**:

1. 不会执行真实订单
2. 返回模拟订单信息
3. 用于验证参数和策略逻辑

### 启用实盘交易

1. 设置环境变量: `TRADING_SIMULATION=false`
2. 调用时传入: `confirm_real_order=True`

```python
# 两个条件都满足才会执行真实订单
binance_place_order(
    symbol="BTCUSDT",
    side="BUY",
    type="MARKET",
    quantity=0.01,
    confirm_real_order=True  # 必须显式确认
)
```

---

## 风险提示

1. **资金安全**: 合约交易有爆仓风险, 请谨慎操作
2. **杠杆风险**: 高杠杆放大盈亏, 建议使用低杠杆
3. **止损保护**: 开仓后应立即设置止损
4. **测试优先**: 新策略先在测试网验证
5. **单笔风险**: 建议单笔亏损不超过账户 1-2%

---

## 常见错误码

| 错误码 | 说明 | 解决方案 |
|--------|------|----------|
| -1000 | 未知错误 | 检查网络, 重试 |
| -1021 | 时间戳超出范围 | 检查系统时间同步 |
| -1022 | 签名无效 | 检查 API Secret |
| -2010 | 余额不足 | 检查可用余额 |
| -2019 | 保证金不足 | 降低仓位或增加保证金 |
| -4003 | 数量小于最小值 | 检查交易对最小交易量 |
| -4014 | 价格不符合精度 | 调整价格精度 |

---

## 技术实现

本 MCP 工具使用 [binance-futures-connector-python](https://github.com/binance/binance-futures-connector-python) 官方 SDK, 无需手动处理签名等底层细节.

### API 端点说明

**普通订单 API**:
- `GET /fapi/v1/openOrders` - 查询普通挂单
- `DELETE /fapi/v1/order` - 撤销单个普通订单
- `DELETE /fapi/v1/allOpenOrders` - 撤销所有普通订单

**条件单 Algo Order API** (2025-12-09 迁移后):
- `POST /fapi/v1/algoOrder` - 创建条件单 (止盈止损)
- `GET /fapi/v1/openAlgoOrders` - 查询条件单
- `DELETE /fapi/v1/algoOrder` - 撤销单个条件单
- **注意**: 币安没有提供批量撤销条件单的 API, `binance_cancel_all_algo_orders` 工具通过先查询再逐个撤销实现

### 开发注意事项

修改本 MCP 服务前, 应使用 Context7 查询最新 API 文档:

```
# 查询币安合约 API 文档
resolve-library-id: "binance futures connector python"
get-library-docs: context7CompatibleLibraryID="/binance/binance-futures-connector-python", topic="具体功能"
```

---

## 参考资料

- [币安 USDT-M 合约 API 文档](https://developers.binance.com/docs/zh-CN/derivatives/usds-margined-futures/general-info)
- [binance-futures-connector-python](https://github.com/binance/binance-futures-connector-python)
- Context7 Library ID: `/binance/binance-futures-connector-python`