OCO订单是限价单与止损单绑定的“二选一”委托,任一成交则另一自动撤销;支持币安、OKX平台设置及TradingView+API自动化部署,backtrader框架可回测并实盘执行。
全球主流的正规交易所推荐
欧易OKX:
Binance币安:
火币Huobi:
Gateio芝麻开门:

一、OCO订单的基本定义与运行逻辑
OCO订单即“二选一”委托,由一个限价单和一个止损单组成,两者绑定为同一指令组。当任一订单触发并部分或全部成交时,另一订单立即自动撤销,无需人工干预。
该机制确保在价格向任一方向突破关键位时,系统只执行一次有效操作,避免重复下单或策略冲突。
二、在币安平台设置OCO订单的具体步骤
币安现货及合约界面均支持OCO功能,用户需先进入交易区选择对应交易对后启用该委托类型。
1、点击交易区域下方的「订单类型」下拉框,选择OCO(二选一)选项。
2、在弹出的双栏输入框中,分别填写限价单价格与数量、止损单触发价与限价。
3、确认买卖方向(买入OCO或卖出OCO),检查价格关系是否符合规则:买单须满足限价<当前市价<止损触发价;卖单则相反。
4、点击「买入/卖出」按钮提交OCO委托,系统即时生成关联订单并显示在「当前委托」列表中。
三、在OKX平台启用双向止盈止损的配置方式
OKX将OCO功能整合进「高级订单」模块,支持单向与双向联动,且不预占保证金或仓位,提升资金使用效率。
1、进入交易页面后,切换至「高级订单」标签页。
2、勾选「双向止盈止损」开关,界面自动展开两组参数输入区。
3、左侧填写止盈限价与数量,右侧填写止损触发价与限价。
4、校验价格有效性提示(如“止损触发价不可等于市价”),无误后点击「提交委托」完成挂单。
四、通过TradingView+API实现自动化OCO策略部署
借助TradingView信号推送结合交易所API,可脱离界面手动操作,实现基于技术指标的全自动OCO触发。
1、在TradingView图表上添加自定义警报脚本,设定突破布林带上轨触发止盈、跌破下轨触发止损。
2、警报动作配置为Webhook,指向已部署的Python服务端接口。
3、服务端接收信号后调用OKX或币安API,构造包含oco参数与关联order_id的POST请求体。
4、调用POST /api/v5/trade/order(OKX)或POST /api/v3/order/oco(币安)完成远程OCO下单。
五、使用backtrader框架回测并实盘部署OCO组合订单
backtrader内置OCO订单管理能力,允许在策略中直接声明两个订单的互斥关系,适用于量化开发者构建可验证的风控模型。
1、在策略类的next()方法中,调用self.buy(price=xxx, exectype=bt.Order.Limit)创建限价单。
2、紧接着调用self.sell(price=yyy, exectype=bt.Order.StopLimit, oco=limit_order),将前一订单对象传入oco参数。
3、运行cerebro.run()启动回测,系统自动识别oco关系并在任一订单状态变为Completed时取消另一单。
4、连接实盘broker后,相同逻辑可直接驱动真实账户执行,订单状态通过notify_order()实时捕获。









