OKEX API v5 swap contracts下单报Parameter posSide error问题求助
报错原因
返回的sCode 51000明确指向posSide(持仓方向)参数错误,具体原因如下:
- OKX V5合约交易默认开启单向持仓模式,该模式下接口不允许传入
posSide参数,仅当你手动切换为双向持仓模式时才需要提交该参数 - 你调用的
PlaceOrder方法传入了OkexPositionSide.Long参数,封装库会自动把该参数提交给接口,和当前账户的单向持仓模式冲突,因此触发参数校验错误
解决方法
根据你需要使用的持仓模式选择对应方案即可:
方案1:使用默认单向持仓(适合大多数普通用户)
调用下单接口时不需要传入持仓方向参数,修改代码如下即可:
OkexClient api = new OkexClient(); api.SetApiCredentials("***", "***", "***"); // 单向持仓模式下仅需指定买卖方向,无需传入多空持仓方向 var trade_01 = api.PlaceOrder("XLM-USDT-SWAP", OkexTradeMode.Cross, OkexOrderSide.Buy, null, OkexOrderType.MarketOrder, 300m);
如果你使用的Okex.net版本不允许传null值,找到对应净持仓的枚举值(通常为OkexPositionSide.Net)替换OkexPositionSide.Long即可。
方案2:使用双向持仓模式
如果你确实需要分开持有多空双向仓位,先完成前置配置,原有代码无需修改即可运行:
- 登录OKX官网,进入合约交易页面,在右上角仓位设置中把对应交易对的持仓模式切换为双向持仓
- 等待配置生效后重新调用原有下单接口即可
补充注意:XLM-USDT-SWAP合约面值为1张对应10 XLM,下单前请确认你传入的300m对应的是张数还是标的数量,避免触发后续的数量参数错误。
内容的提问来源于stack exchange,提问作者S Heydari
相关产品推荐
相关产品推荐

