Формулы и расчёты
Funding History Search использует набор формул для нормализации ставок, расчёта APR и вычисления PnL. На этой странице описана математика, лежащая в основе интерфейса.
Нормализация ставок
Биржи публикуют ставки финансирования с разными интервалами:
- 8 часов — большинство централизованных бирж (Binance, OKX, Bybit и др.)
- 1 час — Drift (децентрализованная биржа)
Для сравнения ставок на единой основе все значения нормализуются к почасовым BPS (базисным пунктам в час):
hourlyBps = rate / intervalHoursПример:
- Binance: rate = 0.03% за 8ч → hourlyBps = 0.03 / 8 = 0.00375
- Drift: rate = 0.005% за 1ч → hourlyBps = 0.005 / 1 = 0.005
APR (Annual Percentage Rate)
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 = max_rate − min_rateСпред представляет потенциальную прибыль от арбитражной позиции (лонг на бирже с минимальной ставкой + шорт на бирже с максимальной ставкой).
Пример:
- Binance funding: +0.43% → лучшая биржа для шорта
- Hyperliquid funding: −0.02% → лучшая биржа для лонга
- Spread = 0.43 − (−0.02) = 0.45%
Стабильность
Стабильность измеряет, насколько волатильна ставка финансирования за период анализа:
stability = max(stdDev(longExchangeRates), stdDev(shortExchangeRates))Где stdDev — стандартное отклонение значений APR по временному ряду. Более низкая стабильность означает более спокойные и предсказуемые ставки финансирования.
Smart Score
Smart Score — это композитная метрика, аналогичная коэффициенту Шарпа:
smartScore = spread / stabilityОна оценивает, насколько тикер подходит для арбитража на финансировании, балансируя:
- Величину спреда — чем выше, тем лучше (больше потенциальной прибыли)
- Стабильность — чем ниже, тем лучше (более предсказуемые ставки)
Тикеры с высоким Smart Score имеют сильные спреды и низкую волатильность — идеальная комбинация для долгосрочных арбитражных позиций.
Расчёт PnL
PnL позиции в портфеле вычисляется с помощью интегрирования по Риману исторических ставок:
Пошаговый алгоритм
Загрузка данных: Получение исторического ряда ставок финансирования для обеих бирж (лонг и шорт) от даты входа до текущего момента.
Для каждой точки данных в ряду:
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 | Размер позиции в USD (на одну ногу) |
shortFundingPercent | Накопленный процент финансирования на бирже для шорта |
longFundingPercent | Накопленный процент финансирования на бирже для лонга |
openingCost | Расходы на открытие (комиссии + проскальзывание на обеих биржах) |
Почему интегрирование, а не среднее?
Ставки финансирования меняются каждые 1–8 часов. Простое умножение средней ставки на время даёт неточный результат. Интегрирование по каждому отдельному интервалу учитывает реальную динамику ставок и даёт точное значение PnL, совпадающее с тем, что вы реально заработаете на биржах.
Загрузка цен
Цены токенов, используемые в портфеле, загружаются по многоисточниковой стратегии:
- API бирж (опрашиваются параллельно): Binance, Bybit, OKX, Gate.io, Bitget, KuCoin, Hyperliquid
- Если несколько бирж ответили: цены усредняются
- Если все API бирж не ответили: резервный вариант через CoinGecko (поиск → запрос цены)
- Цены кэшируются в localStorage (
portfolio_prices) для избежания лишних запросов