修改订单
接口描述
修改一笔活跃订单的价格和/或数量。底层走 撤单 + 重新挂单:
原 resting 单从订单簿移除,按新数量重新冻结保证金,再以同一个
orderId 重新入队(对调用方无感知)。updateTime 会刷新。已成交的
部分会保留 —— 若 quantity < executedQty,请 求被拒
(AMOUNT_BELOW_FILLED)。
只能修改 LIMIT、STOP、STOP_MARKET、TAKE_PROFIT、TAKE_PROFIT_MARKET
订单;MARKET 与跟踪止损单不可修改。
HTTP请求
PUT /fapi/v1/order (HMAC SHA256)
请求权重
1
请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderId | LONG | NO | 系统订单 ID |
| origClientOrderId | STRING | NO | 用户自定义 ID |
| side | ENUM | NO | 买卖方向: BUY, SELL。可选 —— 不传则沿用原订单方向。 |
| quantity | DECIMAL | NO | 新的订单总数量(必须 ≥ 已成交数量)。 |
| price | DECIMAL | NO | 新的限价。 |
| stopPrice | DECIMAL | NO | 新的触发价(STOP* / TAKE_PROFIT* 用)。 |
| recvWindow | LONG | NO | 详见 接口鉴权 |
| timestamp | LONG | YES | 时间戳 |
quantity、price、stopPrice 三者至少要传一个;都不传等于无操作,
请求被拒。orderId 与 origClientOrderId 必须二选一以定位目标订单。
响应示例
{
"orderId": 2254222045,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "testOrderModify1",
"price": "60000",
"origQty": "0.1",
"cumQty": "0",
"cumQuote": "0",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"updateTime": 1623910239123
}
代码示例
cURL
API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
QUERY_STRING="symbol=BTCUSDT&orderId=2254222045&side=BUY&quantity=0.1&price=60000×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${QUERY_STRING}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $2}')
curl -s -X PUT \
-H "X-MBX-APIKEY: ${API_KEY}" \
"https://api-sepolia.ztdx.io/fapi/v1/order?${QUERY_STRING}&signature=${SIGNATURE}"
Python
import time, hmac, hashlib, requests, json
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.ztdx.io"
def sign(msg: str) -> str:
return hmac.new(API_SECRET.encode(), msg.encode(), hashlib.sha256).hexdigest()
def signed_put(path, body={}):
ts = int(time.time() * 1000)
qs = f"timestamp={ts}"
body_str = json.dumps(body, separators=(',', ':'))
sig = sign(qs + body_str)
return requests.put(
f"{BASE_URL}{path}?timestamp={ts}&signature={sig}",
data=body_str,
headers={"X-MBX-APIKEY": API_KEY, "Content-Type": "application/json"},
)
# Modify an existing order's quantity and price
resp = signed_put("/fapi/v1/order", body={
"symbol": "BTCUSDT",
"orderId": "2254222045",
"side": "BUY",
"quantity": "0.1",
"price": "60000",
})
print(resp.json())