Skip to content

公式与计算

Funding History Search 使用一组公式来标准化费率、计算 APR 和计算 PnL。本页描述界面背后的数学原理。

费率标准化

各交易所以不同的间隔发布资金费率:

  • 8 小时 — 大多数中心化交易所(Binance、OKX、Bybit 等)
  • 1 小时 — Drift(去中心化交易所)

为了在统一基准上比较费率,所有数值被标准化为每小时 BPS(每小时基点):

hourlyBps = rate / intervalHours

示例:

  • Binance:rate = 0.03%/8h → hourlyBps = 0.03 / 8 = 0.00375
  • Drift:rate = 0.005%/1h → hourlyBps = 0.005 / 1 = 0.005

APR(年化百分比率)

APR 由小时费率推导而来:

APR = hourlyBps × 87.6

其中常数 87.6 来源于:

hourly_rate / 10000 × 24 × 365 × 100 = hourlyBps × 87.6

示例:

  • hourlyBps = 0.00375 → APR = 0.00375 × 87.6 = 0.3285%

BPS(基点)

1 BPS = 0.01%。0.03% 的费率等于 3 BPS。基点在内部作为精确计算单位使用,然后再转换为百分比进行显示。

费率差(Spread)

费率差是所选交易所中最高与最低资金费率之间的差值:

spread = max_rate − min_rate

费率差代表套利仓位的潜在利润(在费率最低的交易所做多 + 在费率最高的交易所做空)。

示例:

  • Binance 资金费率:+0.43% → 最佳空头交易所
  • Hyperliquid 资金费率:−0.02% → 最佳多头交易所
  • Spread = 0.43 − (−0.02) = 0.45%

稳定性(Stability)

稳定性衡量资金费率在分析期间的波动程度:

stability = max(stdDev(longExchangeRates), stdDev(shortExchangeRates))

其中 stdDev 是时间序列中 APR 值的标准差。稳定性值越低意味着费率越平稳、越可预测。

Smart Score

Smart Score 是一个类 Sharpe 的复合指标:

smartScore = spread / stability

它通过平衡以下两个因素来评估标的是否适合资金费率套利:

  • 费率差大小 — 越高越好(更多利润潜力)
  • 稳定性 — 越低越好(费率更可预测)

Smart Score 高的标的具有高费率差低波动性——长期套利仓位的理想组合。

PnL 计算

投资组合仓位的 PnL 使用Riemann 积分法对历史费率进行积分计算:

逐步过程

  1. 获取数据: 获取从入场日期到当前的多头和空头交易所历史资金费率序列。

  2. 对序列中的每个数据点:

    hourlyBps = point.y / intervalHours
    durationHours = (nextPointTime − currentPointTime) / 3,600,000 ms
    weightedBps += hourlyBps × durationHours
  3. 转换为百分比:

    totalFundingPercent = totalWeightedBps / 100
  4. 计算 PnL:

    rawPnL = investment × (shortFundingPercent − longFundingPercent) / 100
    netPnL = rawPnL − openingCost

变量说明

变量说明
investment仓位规模(美元,每边)
shortFundingPercent空头交易所的累计资金费率百分比
longFundingPercent多头交易所的累计资金费率百分比
openingCost开仓成本(两家交易所的手续费 + 滑点)

为什么使用积分而非平均值?

资金费率每 1 到 8 小时变化一次。简单地将平均费率乘以时间会产生不准确的结果。对每个单独的时间间隔进行积分可以反映实际的费率动态,得出与您在交易所实际收益相匹配的精确 PnL 数值。

价格获取

投资组合中使用的代币价格通过多源策略获取:

  1. 交易所 API(并行请求):Binance、Bybit、OKX、Gate.io、Bitget、KuCoin、Hyperliquid
  2. 如果多个交易所返回结果:取价格平均值
  3. 如果所有交易所 API 都失败:使用 CoinGecko 备选(搜索 → 价格查询)
  4. 价格缓存在 localStorage(portfolio_prices)中以避免重复请求