← К списку статей
March 9, 2026
5 мин. чтения

Funding rates убивают ваш leverage: почему PnL×50x — фикция

Funding rates убивают ваш leverage: почему PnL×50x — фикция
#алготрейдинг
#бэктест
#funding rates
#leverage
#риск-менеджмент
#крипто
#Binance

Допустим, вы оптимизировали стратегию. Бэктест показывает PnL +55%, MaxDD -0.9%. Вы считаете MaxLev: 50/0.9=55×\lfloor 50 / 0.9 \rfloor = 55\times. Умножаете: 55%×55=+3025%55\% \times 55 = +3025\%. Три тысячи процентов за два года. Вы уже мысленно выбираете Ламборгини.

Через три месяца в продакшене ваш капитал ниже стартового. Стратегия работает точно по бэктесту — те же входы, те же выходы, та же просадка. Но вы теряете деньги. Каждый день. Стабильно.

Причина: funding rates. Невидимая комиссия, которую ваш бэктест не учитывал — или учитывал неправильно.

Как работают funding rates

На криптовалютных биржах бессрочные фьючерсы (perpetual swaps) не имеют даты экспирации. Чтобы цена фьючерса не отрывалась от спотовой цены, биржи используют механизм funding — периодические платежи между лонгами и шортами.

Механика на Binance/Bybit:

  • Funding выплачивается каждые 8 часов (00:00, 08:00, 16:00 UTC)
  • Ставка funding определяется разницей между ценой фьючерса и спотовой ценой
  • Если funding rate положительный — лонги платят шортам
  • Если отрицательный — шорты платят лонгам
  • Типичная ставка: ±0.01%\pm 0.01\% за 8 часов (может достигать ±0.5%\pm 0.5\% в экстремальных условиях)

Формула для одной выплаты:

Funding cost=Position size×Funding rate\text{Funding cost} = \text{Position size} \times \text{Funding rate}

При leverage LL и капитале CC:

Funding cost=C×L×Rate\text{Funding cost} = C \times L \times \text{Rate}

Почему бэктесты врут о leverage

Стандартная метрика MaxLev (Maximum Leverage) — это теоретический потолок плеча, при котором просадка не превышает целевого уровня:

MaxLev=Target DDMaxDD\text{MaxLev} = \left\lfloor \frac{\text{Target DD}}{\text{MaxDD}} \right\rfloor

Эта формула не учитывает costs, зависящие от leverage. При 1× плече funding rate — незначительная комиссия. При 58× — это катастрофа.

Линейные vs квадратичные costs

Торговые комиссии (maker/taker fees) линейны — они пропорциональны объёму сделки и не зависят от плеча. Funding rates — тоже линейны по позиции, но при пересчёте на единицу капитала они растут пропорционально плечу:

Funding cost per capital=L×Rate×Frequency\text{Funding cost per capital} = L \times \text{Rate} \times \text{Frequency}

При holding period HH дней и 3 выплатах в день:

Total funding=L×Rate×3×H\text{Total funding} = L \times \text{Rate} \times 3 \times H

Пересчёт: примеры стратегий с учётом funding

Для примера рассмотрим три условные стратегии с разным профилем риска. Параметры: бессрочный фьючерс, тестовый период 25 месяцев, типичный funding rate 0.01% за 8 часов.

Исходные результаты (без учёта funding)

Стратегия PnL MaxDD MaxLev PnL@ML Trades Trading time
Strategy A +55% -0.9% 55× +3025% ~500 ~15%
Strategy B +25% -0.75% 66× +1650% ~40 ~5%
Strategy C +300% -17% +900% ~400 ~45%

Расчёт funding cost

def funding_cost(
    leverage: float,
    trading_time_pct: float,
    test_days: int = 750,  # 25 месяцев
    funding_rate: float = 0.0001,  # 0.01% per 8h
    payments_per_day: int = 3,
) -> float:
    """
    Расчёт совокупных funding costs как % от капитала.

    Returns:
        Funding cost в процентах от начального капитала
    """
    active_days = test_days * trading_time_pct
    daily_cost = funding_rate * payments_per_day * leverage
    total_cost = daily_cost * active_days
    return total_cost * 100  # в процентах

Считаем:

a_funding = funding_cost(55, 0.15, 750)

b_funding = funding_cost(66, 0.05, 750)

c_funding = funding_cost(3, 0.45, 750)

Результаты с учётом funding

Стратегия PnL@ML (без funding) Funding cost PnL@ML (с funding) Статус
Strategy A +3025% -185.6% +2839% Съедает ~6%
Strategy B +1650% -74.3% +1576% Съедает ~4.5%
Strategy C +900% -30.4% +870% Съедает ~3%

На первый взгляд кажется терпимо: funding съедает 3–6% от итогового PnL@ML. Но это средний funding rate. Давайте посмотрим, что происходит при повышенных ставках.

Funding rate не константа

Типичный funding rate 0.01% — это медианное значение. В реальности ставки колеблются:

Рыночная фаза Типичный funding rate За 8h при 55× За день при 55×
Спокойный рынок 0.005% 0.275% 0.825%
Нормальный 0.01% 0.55% 1.65%
Бычий тренд 0.03% 1.65% 4.95%
Экстремальный бычий 0.1% 5.50% 16.5%
Flash pump 0.5% 27.5%

При leverage 55× и бычьем рынке (0.03%): один день в лонг-позиции стоит 4.95% от капитала только на funding.

PnL per active day vs funding per day

Вот ключевой расчёт — дневная доходность стратегии против дневных costs:

a_pnl_per_day = 55 * 55 / 112.5  # PnL@ML / active days = 26.9%/day



b_pnl_per_day = 25 * 66 / 37.5  # = 44.0%/day

С такими числами funding кажется некритичным. Но эти числа — средние. Проблема в другом.

Реальная проблема: funding во время просадки

Leverage, drawdown duration, and funding impact surface

Funding costs аккумулируются постоянно, пока позиция открыта — включая периоды просадки. Для примера: максимальная просадка 0.9% (Strategy A) при leverage 55× превращается в:

Effective DD=0.9%×55=49.5%\text{Effective DD} = 0.9\% \times 55 = 49.5\%

Это уже на грани ликвидации. Теперь добавьте funding:

DD с funding=49.3%+accumulated funding during DD period\text{DD с funding} = 49.3\% + \text{accumulated funding during DD period}

Если просадка длится 3 дня при funding rate 0.01%:

Funding за 3 дня=0.0001×3×55×3=4.95%\text{Funding за 3 дня} = 0.0001 \times 3 \times 55 \times 3 = 4.95\%

Итого: 49.5%+4.95%=54.45%49.5\% + 4.95\% = 54.45\%ликвидация при стандартном maintenance margin 50%.

Формула безопасного leverage с учётом funding

Lsafe=Target DDFunding bufferMaxDDL_{safe} = \frac{\text{Target DD} - \text{Funding buffer}}{|\text{MaxDD}|}

где Funding buffer — ожидаемый funding за типичную длительность просадки:

Funding buffer=Rate×3×L×DD duration (days)\text{Funding buffer} = \text{Rate} \times 3 \times L \times \text{DD duration (days)}

Это рекуррентное уравнение (funding buffer зависит от LL). Решение:

Lsafe=Target DDMaxDD+Rate×3×DD durationL_{safe} = \frac{\text{Target DD}}{|\text{MaxDD}| + \text{Rate} \times 3 \times \text{DD duration}}

def safe_leverage(
    max_dd_pct: float,
    target_dd_pct: float = 50.0,
    funding_rate: float = 0.0001,
    dd_duration_days: float = 3.0,
) -> float:
    """
    Безопасное плечо с учётом funding costs во время просадки.
    """
    denominator = max_dd_pct / 100 + funding_rate * 3 * dd_duration_days
    return target_dd_pct / 100 / denominator

a_safe = safe_leverage(0.9, 50.0, 0.0001, 3.0)

a_safe_high = safe_leverage(0.9, 50.0, 0.0003, 3.0)

Вывод: при типичном funding безопасное плечо для Strategy A — 50×, а не 55×. При повышенном funding — 42×. Разница в PnL@ML:

  • Наивный: 55%×55=+3025%55\% \times 55 = +3025\%
  • С funding (0.01%): 55%×50165%=+2585%55\% \times 50 - 165\% = +2585\%
  • С funding (0.03%): 55%×42400%=+1910%55\% \times 42 - 400\% = +1910\%

Практическая интеграция funding в бэктест

Учёт funding rates в бэктесте — не опция, а необходимость. Вот минимальная реализация:

import pandas as pd
import numpy as np

def load_funding_rates(symbol: str) -> pd.DataFrame:
    """Загрузка исторических funding rates из warehouse."""
    path = f"warehouse/data/{symbol}/funding/"
    return df  # columns: [timestamp, rate]

def apply_funding_to_trades(trades, funding_rates, leverage: int = 1):
    """
    Вычитает реальные funding costs из PnL каждой сделки.
    """
    for trade in trades:
        mask = (
            (funding_rates.index >= trade.entry_time) &
            (funding_rates.index <= trade.exit_time)
        )
        payments = funding_rates.loc[mask, 'rate']

        direction = 1 if trade.side == 'long' else -1
        total_funding = payments.sum() * direction * leverage

        trade.pnl_pct -= total_funding * 100

    return trades

В хорошем бэктест-движке funding rates загружаются и применяются к каждой сделке автоматически. Это даёт реалистичную картину — и часто она менее радужная, чем хотелось бы.

Диапазон реалистичного leverage

Funding rate regimes and safe leverage comparison

Для примера — как funding rate влияет на безопасное плечо при разных MaxDD:

Funding-режим Средняя ставка MaxLev при DD=0.9% MaxLev при DD=17%
Низкий (0.005%) 0.005% 53×
Типичный (0.01%) 0.01% 50×
Повышенный (0.03%) 0.03% 42×
Высокий (0.05%) 0.05% 36×

Ключевое наблюдение: для стратегий с низкой просадкой (Strategy A, B) funding значительно снижает эффективное плечо. Для стратегий с высокой просадкой (Strategy C) влияние funding минимально — потому что плечо и так ограничено 3×.

Стратегии минимизации funding impact

1. Hedge-нейтральные позиции

Funding rate определяется разницей цены фьючерса и спота. Если ваша стратегия допускает хеджирование через спот — funding нивелируется:

  • Лонг фьючерс + шорт спот = 0 net exposure к funding
  • Но: шорт спот на крипте ограничен (нужен margin account или lending)

2. Перенос на биржи с низким funding

Разные биржи имеют разные funding rates для одного и того же актива. Мониторинг арбитража funding — отдельная стратегия, подробно описанная в статье Арбитраж funding rates между биржами.

3. Таймирование входов

Funding выплачивается в фиксированное время (00:00, 08:00, 16:00 UTC). Если сделка закрывается за минуту до выплаты — funding не списывается. Это микрооптимизация, но при 58× плече экономия 0.58% за одну пропущенную выплату — существенна.

4. Динамическое плечо

Вместо фиксированного leverage используйте адаптивное:

Ldynamic=Lbase×Ratemedianmax(Ratecurrent,Ratemedian)L_{dynamic} = L_{base} \times \frac{\text{Rate}_{median}}{\max(\text{Rate}_{current}, \text{Rate}_{median})}

При повышенном funding плечо автоматически снижается, ограничивая costs.

Рекомендации по интеграции funding в пайплайн

Funding rates должны быть обязательной частью бэктест-пайплайна:

  • Загружайте исторические funding rates для каждого символа
  • Корректируйте каждую сделку на реальный funding за период удержания
  • Рассчитывайте MaxLev по формуле с funding buffer
  • В отчёте отображайте оба числа: PnL@ML без funding и с funding

Практическое правило: если стратегия перестаёт быть прибыльной при funding rate 0.03% (что случается 20–30% времени на бычьем рынке) — она не готова к продакшену на высоком плече. Снижайте leverage до уровня, при котором стратегия прибыльна даже в worst-case funding scenario.

Заключение

Funding rates — это налог на leverage. Как и реальный налог, он незаметен при малых суммах и разрушителен при больших.

Три правила:

  1. Всегда считайте PnL@ML с учётом funding. Формула без funding — маркетинг, не торговля. Загрузите исторические funding rates и вычтите реальные costs из каждой сделки.

  2. Используйте формулу безопасного leverage:

Lsafe=Target DDMaxDD+Rate×3×DD durationL_{safe} = \frac{\text{Target DD}}{|\text{MaxDD}| + \text{Rate} \times 3 \times \text{DD duration}}

  1. Тестируйте при 3× funding. Если стратегия прибыльна при funding 0.03% (а не только при 0.01%) — она робастна. Если нет — снижайте leverage.

Красивые числа PnL при 50–60× leverage — приятная иллюзия. Funding rates — холодная реальность. Между ними — разница между бэктестом и торговым счётом.

Подробнее о математике просадок и volatility drag при высоком плече — в нашей статье Асимметрия убытков и прибылей. О том, как получить доверительные интервалы для скорректированных на funding результатов — Monte Carlo Bootstrap для бэктестов.


Полезные ссылки

  1. Binance — Funding Rate History
  2. Binance — Introduction to Funding Rates
  3. Bybit — Understanding Funding Rates
  4. Deribit Insights — The Hidden Cost of Perpetual Swaps
  5. López de Prado — Advances in Financial Machine Learning, Chapter 14: Backtest Statistics
  6. Kevin Davey — Building Winning Algorithmic Trading Systems: Transaction Costs

Цитирование

@article{soloviov2026fundingratesleverage,
  author = {Soloviov, Eugen},
  title = {Funding rates убивают ваш leverage: почему PnL×50x — фикция},
  year = {2026},
  url = {https://marketmaker.cc/ru/blog/post/funding-rates-kill-leverage},
  version = {0.1.0},
  description = {Как funding rates на Binance/Bybit превращают красивые бэктест-результаты при высоком плече в гарантированный убыток. Формулы, пересчёт реальных стратегий и максимальное плечо, при котором funding не съедает прибыль.}
}
Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.

MarketMaker.cc Team

Количественные исследования и стратегии

Обсудить в Telegram
Newsletter

Будьте в курсе событий

Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.