币安Margin买入单使用trailingDelta设置止损限价单失败问题
解决保证金账户创建追踪止损限价单报错的问题
问题核心是现货与保证金接口对订单类型的参数逻辑要求不同:
- 现货接口允许在
STOP_LOSS_LIMIT类型下通过trailingDelta实现追踪止损,无需传stopPrice - 保证金接口则要求必须使用专门的
TRAILING_STOP_LIMIT订单类型来配合trailingDelta,用STOP_LOSS_LIMIT类型会被判定为普通止损限价单,进而要求必填的stopPrice参数
具体修正步骤:
- 将订单类型从
STOP_LOSS_LIMIT改为TRAILING_STOP_LIMIT - 确保不传递
stopPrice参数,只保留trailingDelta - 若使用逐仓保证金,需额外添加
isIsolated=True参数
修正后的代码示例:
from binance.client import Client from binance.enums import * client = Client(api_key='YOUR_KEY', api_secret='YOUR_SECRET') # 保证金账户创建SIDE_BUY方向的追踪止损限价单 client.create_margin_order( symbol='BTCUSDT', side=SIDE_BUY, type=TRAILING_STOP_LIMIT, quantity=0.001, price='20000', # 限价价格 trailingDelta=500, # 追踪幅度(单位:基点) timeInForce=TIME_IN_FORCE_GTC, isIsolated=True # 逐仓模式需加,全仓可省略 )
额外注意事项:
trailingDelta的取值范围需符合币安对应交易对的规则,可通过get_symbol_info()接口查询- 保证金账户需确保有足够的可用资金或授信额度
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

