常见问题
估算 OKX 永续成本时,该用哪个 maker / taker 费率?

用登录后针对所在地区、账户等级、具体合约显示的费率,并以实际成交角色为准。本文的 maker 0.02% 和 taker 0.05% 只是教学假设,不代表所有账户或合约。

OKX 永续资金费多久结算一次?

8 小时很常见,但 OKX 可把某合约动态调整为 6、4、2 或 1 小时。不要写死 UTC 时刻,应读取 fundingTime 与 nextFundingTime,结算完成后再到账单核对。

资金费率为正,我做多要付钱还是收钱?

已结算费率为正时,多头付给空头;为负时,空头付给多头。USDT 线性仓位每期金额按该结算时点的仓位价值乘以该期结算费率计算。

读取 OKX 资金费接口时要看哪些字段?

fundingRate 是下一次结算的预测值,会变化。用 fundingTime 和 nextFundingTime 看时间,用 settState 看状态,用 settFundingRate 看已结算或处理中周期;nextFundingRate 可能为空,不能当成零或交易信号。

100 USDT 保证金、10x 持仓的教学例总成本是多少?

在名义 1000 USDT、开平均 taker 0.05%、90 次结算、每次按不变名义支付 0.01% 的明确假设下,手续费 1 USDT、资金费 9 USDT。真实值要逐期按仓位价值和 settFundingRate 累加,退出费按实际退出价值算。

1. 从账户费率和成交记录开始

永续合约的总成本至少有两部分:交易手续费和资金费。交易手续费按每笔实际成交价值计算;资金费则按每个结算时点的仓位价值和该期结算费率计算。杠杆倍数能帮助你从保证金估出初始名义仓位,却不会把平台费率变成另一个百分比。

不要把公开示例费率当作自己的费率。地区、账户等级、产品和合约都可能影响结果。登录账户后查看适用于本人的费率页,再从成交记录确认每一笔被记为 maker 还是 taker。本文的 maker 0.02% 与 taker 0.05% 只为演算方便。

最实用的估算表可设成四列:时间、成交或结算类型、当时名义价值、实际费率。交易费逐笔记,资金费逐期记,最后再与资金账单核对。这样即使中途加仓、减仓或价格变化,也不会拿开仓名义额覆盖整段持仓。

2. 正确读取结算时间与字段

资金费是永续多空双方之间的周期性转移。已结算费率为正时多头付给空头,为负时空头付给多头。USDT 线性仓位可用「结算时点仓位价值 × 该期结算费率」估算一期金额,方向决定它是支出还是收入。

8 小时是常见周期,但不是所有合约永远固定的规则。OKX 可把结算间隔动态调整为 6、4、2 或 1 小时。应读取公开接口 /api/v5/public/funding-rate?instId=BTC-USDT-SWAP 返回的 fundingTime 与 nextFundingTime,用两者差值判断当前周期,而不是写死 UTC 时刻。

fundingRate 是下一次结算的预测值,结算前仍可能变化。settState 表示结算状态,settFundingRate 在处理中或已结算状态下对应相关周期。nextFundingRate 在当前周期计价方式下可能是空字符串;空值不是 0,也不是交易信号。合约当时允许的范围以接口返回的 minFundingRate 与 maxFundingRate 为准。

3. maker / taker 由实际成交决定

maker 与 taker 描述的是实际成交对订单簿流动性的作用,不是订单按钮的名称。限价单如果立即与盘口成交,仍可能被记为 taker;post-only 可以避免主动吃单,但也可能被取消或一直不成交。

因此估算时不能写成「限价 = maker、市价 = taker」。对已经发生的交易,直接用成交记录里的角色和实际成交价值。对尚未发生的交易,可以分别计算 maker 与 taker 两种情景,同时把未成交和价格滑动留作独立风险,不要伪装成确定费用。

4. 两组可复算成本例

示例 A — 明确的教学假设。保证金 100 USDT、10x,初始名义仓位固定按 1000 USDT;开平都假设 taker 0.05%;再假设发生 90 次结算,每次都在名义仓位保持 1000 USDT 时支付 0.01%。双边交易费为 1000 × 0.05% × 2 = 1 USDT,资金费为 1000 × 0.01% × 90 = 9 USDT,合计 10 USDT,即初始保证金的 10%。这些费率和次数不是市场历史或预测。

若进一步假设 BTC 开仓价 100,000 USDT、数量 0.01 BTC,资金费现金流已经固定为 9 USDT,退出 taker 费按实际退出价值计算,多头盈亏平衡式是 0.01 × (退出价 − 100000) = 0.50 + 9 + 0.01 × 退出价 × 0.05%。解得约 101,000.50 USDT,即涨约 1.0005%,不是把「保证金成本 10%」误写成标的要涨 10%。

示例 B — 更低杠杆与不同成交假设。保证金 100 USDT、5x,名义仓位固定按 500 USDT;开平都假设 maker 0.02%;42 次结算,每次按不变名义支付 0.01%。双边交易费 500 × 0.02% × 2 = 0.2 USDT,资金费 500 × 0.01% × 42 = 2.1 USDT,合计 2.3 USDT。若同样以 BTC 100,000 USDT 开仓、数量 0.005 BTC,并让退出费随退出价值变化,盈亏平衡价约为 100,460.09 USDT,即约 +0.4601%。

真实仓位会随价格和数量变化。实际账单必须按每次成交价值计交易费,再把每个结算时点的仓位价值乘以当期已结算费率逐项累加。正负资金费应按现金流方向相加,不能用一条平均费率覆盖全部周期。

5. 年化时不要偷换分母

如果只做一个数学假设:每 8 小时持续支付 0.01%,全年 365 天且不复利,那么简单年化为 0.01% × 3 × 365 = 10.95%。这是相对于名义仓位的简单年化,不是借入九份保证金的利率,也不是未来费率预测。

若把同一名义成本与固定的 100 USDT 初始保证金相比,10x 示例对应 109.5% 的保证金比例。这个数会随杠杆和保证金分母变化,所以报告年化时必须同时写清费率周期、名义仓位分母、保证金分母和是否复利。杠杆对应的强平距离可另见《杠杆系数 vs 强平价的数学》。

资金费与现货或借贷收益也不能直接相减后叫作套利利润。完整比较还需要现货资金占用、借贷成本、交易费、价差、滑点、保证金、基差和执行风险。缺少这些分母与现金流,一个百分比差值没有可交易含义。

6. 用账单核对估算

下单前,先记录账户显示的费率、预期成交角色、预计成交价值,以及接口里的 fundingTime、nextFundingTime 和预测 fundingRate。预测值只用于情景估算。结算后改用 settState、settFundingRate 与资金账单;成交后则改用实际成交价值和角色。

核对时把差额拆成三类:成交价值变化、maker/taker 角色变化、资金费率或结算次数变化。如果持仓中途加减仓,每个结算点单列一行。这样得到的是能与账户账单对上的成本记录,而不是靠固定 8 小时、固定名义和固定费率得出的假精度。

以下官方来源于 2026 年 9 月核对:OKX 永续资金费机制、OKX 交易费规则 FAQ 与 OKX API 文档。费率与产品适用范围仍应以登录账户和所在地区当时显示的信息为准。