使用Binance API设置止盈止损限价单遇报错求助
解决Binance API止盈止损订单报错的问题
问题原因
报错400, -4136, 'Target strategy invalid for orderType STOP,closePosition true'的核心原因是:当设置closePosition=True时,不能使用STOP或TAKE_PROFIT限价类型订单,必须对应使用市价触发型订单——STOP_MARKET(止损市价)和TAKE_PROFIT_MARKET(止盈市价)。同时,timeInForce参数对这类触发式市价订单不适用,保留会引发参数冲突。
修正后的止盈订单代码
take_profit_position = client.new_order( symbol=symbol, side='SELL', closePosition=True, type="TAKE_PROFIT_MARKET", positionSide="LONG", stopPrice=4.754 # 触发价,达到该价格时执行市价平仓 )
修正后的止损订单代码
stop_loss_position = client.new_order( symbol=symbol, side='SELL', closePosition=True, type="STOP_MARKET", positionSide="LONG", stopPrice=4.012 # 触发价,达到该价格时执行市价平仓 )
关键注意事项
- 启用
closePosition=True时,订单类型必须是*_MARKET后缀的触发订单,普通STOP/TAKE_PROFIT限价订单不支持平仓场景的参数搭配 - 移除
timeInForce参数,触发式市价订单无需该参数 - 止盈的
TAKE_PROFIT_MARKET仅需设置stopPrice作为触发条件,无需额外指定price参数(市价订单按当前市场价格成交)
内容的提问来源于stack exchange,提问作者Shivam Kalra
相关产品推荐
相关产品推荐

