公式与计算
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 积分法对历史费率进行积分计算:
逐步过程
获取数据: 获取从入场日期到当前的多头和空头交易所历史资金费率序列。
对序列中的每个数据点:
hourlyBps = point.y / intervalHours durationHours = (nextPointTime − currentPointTime) / 3,600,000 ms weightedBps += hourlyBps × durationHours转换为百分比:
totalFundingPercent = totalWeightedBps / 100计算 PnL:
rawPnL = investment × (shortFundingPercent − longFundingPercent) / 100 netPnL = rawPnL − openingCost
变量说明
| 变量 | 说明 |
|---|---|
investment | 仓位规模(美元,每边) |
shortFundingPercent | 空头交易所的累计资金费率百分比 |
longFundingPercent | 多头交易所的累计资金费率百分比 |
openingCost | 开仓成本(两家交易所的手续费 + 滑点) |
为什么使用积分而非平均值?
资金费率每 1 到 8 小时变化一次。简单地将平均费率乘以时间会产生不准确的结果。对每个单独的时间间隔进行积分可以反映实际的费率动态,得出与您在交易所实际收益相匹配的精确 PnL 数值。
价格获取
投资组合中使用的代币价格通过多源策略获取:
- 交易所 API(并行请求):Binance、Bybit、OKX、Gate.io、Bitget、KuCoin、Hyperliquid
- 如果多个交易所返回结果:取价格平均值
- 如果所有交易所 API 都失败:使用 CoinGecko 备选(搜索 → 价格查询)
- 价格缓存在 localStorage(
portfolio_prices)中以避免重复请求