> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 资金费率

> 多头与空头之间的周期性支付，把永续合约锚定在现货上——费率如何构建、何时结算，以及它对你意味着多少成本。

永续合约永不到期，把期货价格拉回现货的那套机制也就跟着没了。顶上来的是资金费率：市场两侧之间的周期性支付，金额定得让拥挤的那一边掏钱给另一边。

资金费是**交易者之间**的事。交易场所一分不抽——这边付出多少，那边就收到多少；两边总额对不上，结算直接被拒。

<h2 id="direction">
  方向
</h2>

| 情形         | 费率 | 资金流向   |
| ---------- | -- | ------ |
| 永续合约价格高于现货 | 正  | 多头付给空头 |
| 永续合约价格低于现货 | 负  | 空头付给多头 |

结果就是拥挤的那一边一直被拖着。多头仓位熬过一段持续溢价，价格哪怕不动，也在持续失血——这正是设计意图。没有它，热门方向上的杠杆只会越堆越高，最后不是慢慢释放，而是剧烈出清。

<h2 id="what-you-pay">
  你付多少
</h2>

$$
\text{资金费} = \text{仓位数量} \times \text{标记价格} \times \text{资金费率}
$$

仓位价值按结算那一刻的[标记价格](/zh/trading/mark-price)算，不是指数价格，也不是最新成交价。标记价格更难被推动；用它，就意味着有人赶在整点前几秒打一笔成交，也改不了资金费的金额。

<h2 id="building-the-rate">
  费率是怎么算出来的
</h2>

<div className="dg" data-dg="funding-rate-build">
  <div className="dg-c" style={{aspectRatio:"720 / 492"}}>
    <svg className="dg-w" viewBox="0 0 720 492" aria-hidden="true">
      <path className="dg-wire" d="M 200.00 86.00 L 200.00 97.60" />

      <path className="dg-head" d="M 200.00 104.00 L 195.60 97.60 L 204.40 97.60 Z" />

      <path className="dg-wire" d="M 200.00 164.00 L 200.00 175.60" />

      <path className="dg-head" d="M 200.00 182.00 L 195.60 175.60 L 204.40 175.60 Z" />

      <path className="dg-wire" d="M 200.00 242.00 L 200.00 253.60" />

      <path className="dg-head" d="M 200.00 260.00 L 195.60 253.60 L 204.40 253.60 Z" />

      <path className="dg-wire" d="M 200.00 320.00 L 200.00 331.60" />

      <path className="dg-head" d="M 200.00 338.00 L 195.60 331.60 L 204.40 331.60 Z" />

      <path className="dg-wire" d="M 200.00 398.00 L 200.00 409.60" />

      <path className="dg-head" d="M 200.00 416.00 L 195.60 409.60 L 204.40 409.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"6.0976%",width:"55.5556%",height:"10.5691%"}}><span className="dg-t">每区块</span><span className="dg-s">深度加权买卖价对比指数价格</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"21.9512%",width:"55.5556%",height:"10.5691%"}}><span className="dg-t">每 5 秒</span><span className="dg-s">取该窗口中各区块的中位数</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"37.8049%",width:"55.5556%",height:"10.5691%"}}><span className="dg-t">每个结算周期</span><span className="dg-s">取样本均值</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"53.6585%",width:"55.5556%",height:"10.5691%"}}><span className="dg-t">叠加利率分量</span><span className="dg-s">限幅 ±0.05%</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"69.5122%",width:"55.5556%",height:"10.5691%"}}><span className="dg-t">按周期摊分，再限幅</span><span className="dg-s">按该市场自己的费率上下限</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"85.3659%",width:"55.5556%",height:"10.5691%"}}><span className="dg-t">资金费率</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"59.7222%",top:"6.0976%",width:"40.2778%",height:"10.5691%"}}><span className="dg-s">挂一笔报价推不动它——你得在远离指数的位置摆上真实深度，而谁都可以来跟你成交</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"59.7222%",top:"21.9512%",width:"40.2778%",height:"10.5691%"}}><span className="dg-s">单个异常区块左右不了这个样本</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"59.7222%",top:"37.8049%",width:"40.2778%",height:"10.5691%"}}><span className="dg-s">单个五秒窗口左右不了这个周期</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"59.7222%",top:"53.6585%",width:"40.2778%",height:"10.5691%"}}><span className="dg-s">利率项有界，因此不会反过来主导费率</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"59.7222%",top:"69.5122%",width:"40.2778%",height:"10.5691%"}}><span className="dg-s">每个市场公布自己的上限</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"59.7222%",top:"85.3659%",width:"40.2778%",height:"10.5691%"}}><span className="dg-s">在交易者之间支付。交易场所一分不抽，两边总额对不上，结算直接被拒。</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"55.5556%"}}><div className="dg-n">费率是怎么算出来的</div></div>
    <div className="dg-free" style={{left:"59.7222%",top:"0.0000%",width:"40.2778%"}}><div className="dg-n">每一层堵住什么</div></div>
  </div>
</div>

订单簿和你实际支付的费率之间隔着三层平均。每一层堵住的是一条不同的攻击路径。

<h3 id="the-premium-index">
  溢价指数
</h3>

溢价衡量的是合约成交价离指数价格有多远——但不是拿中间价去比，中间价只要买卖两边各挂一笔报价就能轻易推动。

它用的是**深度加权价格**：拿一笔既定规模的资金去扫单，实际能拿到的平均价格。这笔规模叫冲击名义额，由该市场的最大杠杆推出来，所以允许开大仓位的市场，探到的深度也相应更深。

$$
P = \frac{\max(0,\; \text{深度加权买价} - \text{指数价格}) \;-\; \max(0,\; \text{指数价格} - \text{深度加权卖价})}{\text{指数价格}}
$$

两边各带一个 $\max(0,\cdot)$，意思是：只要指数价格落在深度加权买卖价之间，溢价就是零。只有真正朝一个方向偏出去的订单簿才算数。

想推动这个数，挂一笔订单没用——你得在远离指数的位置摆上真实深度，而这些深度谁都可以来跟你成交。

<h3 id="sampling-and-averaging">
  采样与平均
</h3>

溢价**每个区块**算一次，再按窗口取各区块的中位数，**每五秒**归成一个值。这里同样用中位数，不用均值：单个异常区块左右不了这个样本。

一个结算周期的费率，是整个周期内这些五秒样本的算术平均——一小时里共 720 个。

**采样有有效性条件**。买卖盘交叉、任一侧只剩三档或更少、指数价格陈旧超过十秒——碰上这三种，这个区块的溢价直接跳过。它们都属于市场失效状态；把它们喂进资金费率，等于让一次故障变成一笔收费。

资金费只在一种情况下跳过：**实际采到的样本不足预期数量的 20%**——对一小时的市场来说，就是 720 个里不到 144 个。没到这一步，周期就按已经采到的那些样本照收。门槛定得这么低是有意的：它要拦下的是几乎没测到的周期，而不是替测得不够完美的周期开脱。

<h3 id="the-interest-component-and-clamps">
  利率分量与限幅
</h3>

$$
F_{8h} = \bar{P} + \operatorname{clamp}\!\left(I - \bar{P},\; -0.05\%,\; +0.05\%\right)
$$

费率按**八小时**口径报出，一次结算收的是该市场的周期长度在其中占的那一份：

$$
F = F_{8h} \times \frac{\text{周期秒数}}{28{,}800}
$$

$$
F_{\text{final}} = \operatorname{clamp}\!\left(F,\; F_{\min},\; F_{\max}\right)
$$

周期长度按市场配置，而且只允许六个取值：**30 分钟、1、2、4、8 或 24 小时**。所以一小时的市场每次结算收八小时费率的八分之一；八小时的市场一次收满。

估算持仓成本时，最常算错的就是这一步。一小时的市场上，报出来的 0.01% 费率，每次结算实收 **0.00125%**，不是 0.01%——一整天下来是 0.03%，不是 0.24%。

利率分量反映的是交易对两种货币之间的持有成本。它是按市场设定的常数，以 `default_funding_rate_ppm` 按八小时口径公布。

横盘行情里想估算单纯持仓要花多少钱，要找的就是这个数：溢价为零时，费率就落在这个利率常数上，再按周期长度折算。请从你所在市场的合约规格里读它，别凭假设取值。外面那层限幅框住了它最多能把费率从溢价实测值拉开多远——所以强趋势行情里由溢价说了算，横盘行情里利率项定一个较小的基线。

最后，结果还要被限制在一组上下限之内，这组上下限按市场配置，上市时就定好：

| 市场类别   | 典型上限    |
| ------ | ------- |
| 主流加密资产 | ±0.375% |
| 其他     | ±4%     |

<Note>
  这些上限可以按市场收紧或放宽；极端行情下也可能调，好用更大的力把跑偏的合约推回指数附近。各市场的当前取值发布在自己的合约规格里——见[市场](/zh/trading/markets)。
</Note>

<h2 id="settlement">
  结算
</h2>

资金费在**每个周期的第一个区块**结算——通常是每小时整点。周期长度可按市场配置。

结算是原子的：要么在一个执行步骤里作用到该市场的每一个仓位，要么完全不生效。它是区块执行内部的一个[清算所](/zh/protocol/architecture/clearinghouse)阶段，不是外部的扫描任务，所以不存在“一部分账户扣了、另一部分还没扣”的时间窗口。

每次结算之后都核对总额。多头付出的和空头收到的对不上，这笔交易就回滚并告警，而不是留下一本对不平的账。

<Warning>
  只有在**结算区块那一刻**还持着仓，才会被收资金费。提前一分钟平掉，一分不付；提前一分钟开仓，要付整整一个周期。这不按时间折算——以为资金费按秒累积的人，常在这里吃亏。
</Warning>

<h2 id="what-this-means-in-practice">
  实践中的含义
</h2>

* **打算持仓跨过结算点，先看一眼费率**：当前费率和距下次结算的倒计时都在交易界面上，API 也能取到。
* **费率高本身就是信息**：资金费一直很贵，说明市场在你这一侧拥挤，而这也正是容易发生强制出清的状态。
* **资金费是成本，不是手续费**：钱进的是其他交易者的口袋，和流向协议的[交易手续费](/zh/programs/fees)是两回事。

<h2 id="reading-the-live-values">
  实时取值从哪里读
</h2>

本页的每一个数字都是链上的按市场配置，不是协议常量。驱动它们的参数：

| 参数                                            | 决定                             |
| --------------------------------------------- | ------------------------------ |
| `funding_interval_secs`                       | 资金费多久结算一次，也就决定了每次结算收八小时费率的几分之几 |
| `default_funding_rate_ppm`                    | 利率常数                           |
| `min_funding_rate_ppm`、`max_funding_rate_ppm` | 该市场对最终费率的限幅                    |

它们发布在各市场的[合约规格](/zh/trading/markets)里，也可以直接从链上读。集成如果把它们写死，迟早会算出一个网络并没有在用的数字——见[开发者](/zh/developers/overview)。

<h2 id="where-to-go-next">
  后续阅读
</h2>

<CardGroup cols={2}>
  <Card title="标记价格" href="/zh/trading/mark-price">
    资金费金额所依据的价格。
  </Card>

  <Card title="指数价格" href="/zh/trading/index-price">
    溢价所参照的现货基准。
  </Card>

  <Card title="市场" href="/zh/trading/markets">
    各市场的资金费周期与费率上限。
  </Card>

  <Card title="手续费" href="/zh/programs/fees">
    协议收取的部分，区别于你付给其他交易者的部分。
  </Card>
</CardGroup>
