在okx执行纯maker策略需严格使用post-only限价单,确保挂单不被吃单;须确认进入合约页面(url含/futures/或/swap/)、选择正确本位与合约类型,并手动设置价格避开最优对手价,api调用需显式传postonly:true。
欧易(okx)官方认证入口:
点击获取官方APP☞☞☞☞☞:

在OKX上执行纯Maker策略时,必须确保每一笔委托都以挂单形式进入订单簿,绝不能触发立即成交的吃单行为;一旦订单被市场其他用户吃掉,就会变成Taker,不仅丧失maker手续费返佣,还可能因滑点或价格偏离破坏策略逻辑。
确认交易模式与合约类型匹配
进入OKX Web端 → 左上角选择「衍生品」→ 点击「永续合约」或「交割合约」→ 在交易对右侧下拉菜单中,【必须手动确认当前显示的是“USDT本位”或“币本位”,且下方标注为“合约”而非“现货”】。若误入现货页面,所有限价单将按现货规则撮合,无法保障Maker属性——现货市场深度与合约完全不同,挂单极易被扫掉。
打开合约交易界面后,检查URL是否含 /futures/ 或 /swap/ 路径;不含则说明仍在现货页,立刻切换。
启用高级限价委托(Post-Only模式)
在交易界面右上角找到「订单类型」下拉框 → 选择「限价单」→ 点击右侧齿轮图标打开高级选项 → 勾选「Post-only(仅挂单)」。
这一步是核心:勾选后,系统会强制校验你提交的价格是否优于当前最优对手价。若你的买单价 ≥ 卖一价,或卖单价 ≤ 买一价,订单直接被拒绝,不会成交。它从机制上杜绝了吃单可能,但代价是——【若市场快速跳空,你的订单可能因价格失效而始终无法上架】。
未勾选Post-only时,限价单仍可能在提交瞬间被已有挂单吃掉,尤其在BTC/ETH等高流动性合约上,毫秒级价格变动就足以触发成交。
手动计算挂单位置避开吃单位置
第一步:观察当前订单簿最薄档位。例如BTC-USDT-SWAP当前买一价为62145.3,数量仅0.2张;卖一价为62145.6,数量0.15张。
第二步:你的买单价必须严格 62145.6,比如设为62145.7。差值至少保留0.1 USDT以上,避免因交易所价格精度四舍五入导致意外匹配。
第三步:下单前再次核对「预计成交价」字段——若该字段显示为“暂无成交价”或“不成交”,说明Post-only生效;若显示具体价格,说明已落入吃单区间,立即取消重设。
注意:OKX合约价格精度为小数点后1位(如BTC)或2位(如SOL),设置价格时末位必须符合精度要求,否则订单直接报错。
用API下达强制Maker订单(ccxt调用示例)
方法一:通过ccxt的createOrder接口传参
```js
exchange.createOrder('BTC-USDT-SWAP', 'limit', 'buy', 1, 62145.2, {
postOnly: true,
tdMode: 'cross',
posSide: 'long'
});
```
方法二:使用OKX原生API v5 /api/v5/trade/order 接口,在body中加入 `"ordType": "limit", "postOnly": true` 字段。不加postOnly参数即默认允许吃单。
【必须在请求头中携带正确的x-simulated: false,否则测试网订单不会真正走Post-only校验逻辑】。











