For the complete documentation index, see llms.txt. This page is also available as Markdown.

资金费率

什么是资金费率?

资金费率是交易者之间直接交换的周期性付款,主要作用是让永续合约价格贴近标的资产的现货价格。

与交易手续费不同,资金费用是点对点的。交易所不收取这笔费用;它在持有多头仓位和持有空头仓位的用户之间直接划转。

工作原理

资金费率根据订单簿价格(永续合约价格)与预言机价格(资产的真实世界价格)之间的偏离计算。

  • 正资金费率(看涨行情):永续合约价格_高于_预言机价格时,多头向空头支付。这会激励交易者卖出,推动价格向现货价格回落。

  • 负资金费率(看跌行情):永续合约价格_低于_预言机价格时,空头向多头支付。这会激励交易者买入,推动价格向现货价格回升。

因此,资金费用是一种激励机制,促使永续合约价格与其标的保持一致。

Aftermath 不对这些付款收取任何费用。

资金费率间隔与折算

资金费用按小时支付,但界面显示和计算的费率基于 8 小时周期

  • **显示费率:**8 小时费率(例如 0.01%)。

  • **每小时支付:**用户每小时支付/收取计算所得费率的 1/8。

资金费率因市场而异。请在前端对应市场核实各自的资金费率频率和周期。

与中心化交易所的区别

在中心化交易所,资金费用每 8 小时结算并重置一次——所有仓位从那一刻重新开始计算。Aftermath 采用累计模型:资金费率永不重置,每个仓位从开仓那一刻起持续累计资金费用。

界面上显示的市场资金费率是对下一周期的估计,由过去 8 小时的价格偏离计算得出,并不代表您的具体仓位当前正在累计的费率。

每个仓位都存储着其上次结算时的累计资金费率(CF)。您的未实现资金费用按该存储值计算——而不是按当前的市场估计值。这意味着可能出现这种情况:市场显示多头向空头付费,而一个在空头向多头付费时期开立的仓位却显示相反方向。两个数值在数学上都正确:市场费率是对下一周期的前瞻估计,而您的仓位反映的是实际的历史累计。

未实现资金费用

未实现资金费用是指已在仓位上累计、但尚未结算的资金费用。这一机制让合约能够高效地跟踪累计的资金费用义务。

为了节省 Gas 和计算量,协议不会每秒更新每个用户的余额,而是跟踪一个全局累计资金费率(CFCF)值。您的个人义务通过比较当前的全局 CFCF 值与您的仓位上次被触及(结算)时的值来计算。

仓位未实现资金费用的公式为:

UnrealizedFundings(p)=BaseAmount(p)(CFLCF(p)),UnrealizedFundings(p) = BaseAmount(p) * (CF - LCF(p)),

其中 𝐶𝐹 ∈ 𝑅 是市场当前的累计资金费率,𝐿𝐶𝐹 ( 𝑝 ) ∈ 𝑅 是该仓位上次在该市场结算资金费用时的累计值。

换句话说,合约维护一个累计资金费率,每当某个仓位结算资金费用时,就把当时的累计值存入该仓位。

资金费率的计算

资金费率决定多头与空头之间付款的速度,由盘口价格(市场价格)与指数价格(预言机价格)之差驱动。

一个市场的资金费率为:

Funding=TWAν,ω(BookPriceIndexPrice)fρFunding = \text{TWA}_{\nu,\omega}(BookPrice - IndexPrice) \frac{ f }{ \rho }

TWA 𝜈 , 𝜔 ( 𝑋 ) ∈ 𝑅 是时间加权平均值(见下文 TWA 一节)。参数 𝜈 和 𝜔 在市场创建时设定,之后也可由协议管理员调整。资金费率的常用取值为 𝜈=1 𝑚 和 𝜔=1 ℎ 。

资金费率频率 𝑓 是两次资金费率更新之间的时间跨度,例如 1 小时。换言之,前述某市场的累计资金费率(𝐶 𝐹)每隔 𝑓 更新一次。

资金费率周期 𝜌 是资金费用(盘口价格与指数价格之差)被支付所覆盖的时间段。

资金费率周期设得过长,可能导致永续合约价格严重偏离指数——因为基差套利者需要承担更长时间的基差风险,把价格拉回的动力就更弱。周期设得过短,则可能导致没人愿意交易该永续合约——一旦资金费率翻转方向,代价过于惩罚性。

我们还默认把差值 𝐵𝑜𝑜𝑘 𝑃𝑟𝑖𝑐𝑒 − 𝐼𝑛𝑑𝑒𝑥 𝑃𝑟𝑖𝑐𝑒 限制在 𝐼𝑛𝑑𝑒𝑥 𝑃𝑟𝑖𝑐𝑒 的最多 5%(按绝对值计)——该上限是每个市场单独的参数。这是为了避免资金费率过于惩罚性。

采样资金费率后(每个 𝑓 间隔一次),市场的累计资金费率简单地更新为:

CFCF+FundingCF \gets CF + Funding

𝐶 𝐹 在市场创建时初始化为 0

实际上市场会跟踪两个累计资金费率——多头一个、空头一个。常规资金费率更新会让两者移动相同的量,因此它们平时表现得就像上文描述的单一 CFCF。只有当清算产生的坏账被分摊时它们才会分叉——分摊通过对手方向的累计资金费率施加。详情见清算

TWA(时间加权平均值)

时间加权平均(TWA)机制确保用于资金费率的价格数据平滑且抗操纵。TWA 采用惰性(按需)更新,而不是每个区块都更新。

上文使用的 TWA 会在用户于某市场执行以下任一操作时更新:

  • 开启交易会话(任何下单或清算都会开启会话,因此常规交易活动会让 TWA 保持新鲜)

  • 触发止损触发单的执行

  • 显式调用 update_funding 函数

  • 显式调用 update_twaps 函数

update_fundingupdate_twaps 都是无许可的——任何人可以随时调用。

TWA 更新公式是一个加权平均:

(TWAν,ω(X),tlast)(Xt(ttlast)+TWAν,ω(X)(tlast(tω))ω,t)if ttlast+ν(TWA_{\nu,\omega}(X), t_{\text{last}}) \leftarrow \left( \frac{X_t \cdot (t - t_{\text{last}}) + TWA_{\nu,\omega}(X) \cdot (t_{\text{last}} - (t - \omega))}{\omega}, t \right) \quad \textbf{if } t \ge t_{\text{last}} + \nu

𝑡 是当前时间戳,由链上的 Clock 对象提供。𝑡 last 是上一次计算 TWA 的时间戳。𝑋 𝑡 是在时间 𝑡 观测到的随机变量,例如经过限幅的盘口价格与指数价格之差。

𝜔 是 TWAP 周期,控制 TWA 的平滑程度:𝜔 越大,历史观测值的权重越高。

𝜈 是 TWAP 频率,控制 TWA 的更新频率。例如若 𝜈=5 𝑠,则 TWA 更新后,接下来 5 秒内的交易都会使用同一个值。\

TWA 总是在资金费率之前更新

Last updated