Skip to content

Формулы и расчёты

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 позиции в портфеле вычисляется с помощью интегрирования по Риману исторических ставок:

Пошаговый алгоритм

  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Размер позиции в USD (на одну ногу)
shortFundingPercentНакопленный процент финансирования на бирже для шорта
longFundingPercentНакопленный процент финансирования на бирже для лонга
openingCostРасходы на открытие (комиссии + проскальзывание на обеих биржах)

Почему интегрирование, а не среднее?

Ставки финансирования меняются каждые 1–8 часов. Простое умножение средней ставки на время даёт неточный результат. Интегрирование по каждому отдельному интервалу учитывает реальную динамику ставок и даёт точное значение PnL, совпадающее с тем, что вы реально заработаете на биржах.

Загрузка цен

Цены токенов, используемые в портфеле, загружаются по многоисточниковой стратегии:

  1. API бирж (опрашиваются параллельно): Binance, Bybit, OKX, Gate.io, Bitget, KuCoin, Hyperliquid
  2. Если несколько бирж ответили: цены усредняются
  3. Если все API бирж не ответили: резервный вариант через CoinGecko (поиск → запрос цены)
  4. Цены кэшируются в localStorage (portfolio_prices) для избежания лишних запросов