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

如何通过API在币安实现带OCO止盈止损的自动化括号订单?

自动化实现买入后触发OCO止盈止损的方案

一、利用交易所原生组合订单功能(推荐)

多数主流加密货币交易所都支持**「买入+OCO止盈止损」的链式触发订单**,无需额外代码,直接在交易界面操作即可:

  • 进入目标币种交易页,选择限价/市价买入模式,设置好buy_price和买入数量x
  • 在订单配置区找到「附加订单」「成交后触发订单」类选项,选定OCO订单类型
  • 填入take_profit_price(需高于buy_price)和stop_loss_price(需低于buy_price),卖出数量默认和买入量x一致即可
  • 确认提交:系统会先挂出你的买入订单,一旦买入成交,将自动触发并挂起预设的OCO止盈止损订单

二、通过API脚本自定义实现(进阶方案)

如果交易所原生功能无法满足个性化需求,可通过官方API编写脚本实现,核心逻辑如下(以Python为例):

  1. 初始化API客户端:导入对应交易所的SDK,配置个人API密钥与密钥密码
  2. 提交买入订单:调用API接口提交限价/市价买入订单,记录订单ID
  3. 轮询订单状态:定期调用API查询买入订单的成交状态
  4. 触发OCO订单:当订单状态变为「已成交」时,立即调用API提交OCO止盈止损订单

示例伪代码:

# 以Binance SDK为例
from binance.client import Client
import time

# 初始化客户端
client = Client(api_key='你的API_KEY', api_secret='你的API_SECRET')

# 提交限价买入订单
buy_order = client.create_order(
    symbol='BTCUSDT',
    side=Client.SIDE_BUY,
    type=Client.ORDER_TYPE_LIMIT,
    timeInForce=Client.TIME_IN_FORCE_GTC,
    quantity=x,
    price=buy_price
)

# 轮询等待买入成交
while True:
    order_detail = client.get_order(
        symbol='BTCUSDT',
        orderId=buy_order['orderId']
    )
    if order_detail['status'] == Client.ORDER_STATUS_FILLED:
        # 成交后提交OCO止盈止损订单
        client.create_oco_order(
            symbol='BTCUSDT',
            side=Client.SIDE_SELL,
            quantity=x,
            stopPrice=stop_loss_price,
            stopLimitPrice=stop_loss_price * 0.99,  # 微调止损限价避免滑点
            price=take_profit_price
        )
        break
    time.sleep(5)  # 每5秒查询一次状态

关键注意事项

  • 必须保证take_profit_price高于buy_price、stop_loss_price低于buy_price,否则交易所会直接拒绝订单
  • 使用API时需设置合理的查询间隔,避免触发交易所的API频率限制
  • 部分交易所对OCO订单的止损/止盈价差有最小要求,需提前查阅平台规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:10:06