You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Binance现货OCO订单参数冲突问题技术求助

解决Binance测试网现货OCO订单参数矛盾问题

问题核心原因

你混淆了现货OCO订单和期货合约OCO订单的参数要求:

  • aboveType/belowType是Binance U本位期货合约OCO的专属参数,现货API完全不识别这些参数,添加后会被判定为无效参数,触发-1104错误(参数数量不符)。
  • 移除这两个参数后触发-1102错误,是因为遗漏了现货OCO订单的必填参数,而非需要这两个期货参数。

现货OCO订单必填参数(测试网/现货通用)

现货OCO订单本质是「限价单 + 止损限价单」的组合,必填参数(除API认证信息外)包括:

  • symbol:交易对(如BNBFDUSD)
  • side:交易方向(BUY/SELL)
  • quantity:下单数量
  • price:限价单的成交价格
  • stopPrice:止损触发价格
  • stopLimitPrice:止损触发后执行的限价价格
  • stopLimitTimeInForce:止损限价单的时效规则(如GTC)

修正后的完整代码示例

使用官方python-binance库的现货专属create_oco_order方法,避免参数混淆:

from binance.client import Client
from binance.enums import *

# 替换为你的测试网API密钥
API_KEY = "your_testnet_api_key"
API_SECRET = "your_testnet_api_secret"

# 初始化现货客户端并指定测试网地址
client = Client(API_KEY, API_SECRET)
client.API_URL = "https://testnet.binance.vision/api"

try:
    # 创建BNBFDUSD现货OCO买单
    oco_order = client.create_oco_order(
        symbol="BNBFDUSD",
        side=SIDE_BUY,
        quantity=0.01,  # 根据测试网余额调整合理数量
        price="320",  # 限价买入价格
        stop_price="310",  # 止损触发价格
        stop_limit_price="309.8",  # 止损触发后的限价价格
        stop_limit_time_inforce=TIME_IN_FORCE_GTC
    )
    print("OCO订单创建成功:\n", oco_order)
except Exception as e:
    print("错误详情:", e)

额外注意事项

  • 确保使用的是现货Client,而非期货FuturesClient,避免调用错误的API端点。
  • 测试网余额不足会触发额外错误,可先通过测试网 faucet 领取测试币。
  • 若手动构造HTTP请求,需调用现货OCO端点:https://testnet.binance.vision/api/v3/order/oco,而非期货的fapi/dapi端点。

内容的提问来源于stack exchange,提问作者mojito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:03:18