Funding rates убивают ваш leverage: почему PnL×50x — фикция
Допустим, вы оптимизировали стратегию. Бэктест показывает PnL +55%, MaxDD -0.9%. Вы считаете MaxLev: . Умножаете: . Три тысячи процентов за два года. Вы уже мысленно выбираете Ламборгини.
Через три месяца в продакшене ваш капитал ниже стартового. Стратегия работает точно по бэктесту — те же входы, те же выходы, та же просадка. Но вы теряете деньги. Каждый день. Стабильно.
Причина: funding rates. Невидимая комиссия, которую ваш бэктест не учитывал — или учитывал неправильно.
Как работают funding rates
На криптовалютных биржах бессрочные фьючерсы (perpetual swaps) не имеют даты экспирации. Чтобы цена фьючерса не отрывалась от спотовой цены, биржи используют механизм funding — периодические платежи между лонгами и шортами.
Механика на Binance/Bybit:
- Funding выплачивается каждые 8 часов (00:00, 08:00, 16:00 UTC)
- Ставка funding определяется разницей между ценой фьючерса и спотовой ценой
- Если funding rate положительный — лонги платят шортам
- Если отрицательный — шорты платят лонгам
- Типичная ставка: за 8 часов (может достигать в экстремальных условиях)
Формула для одной выплаты:
При leverage и капитале :
Почему бэктесты врут о leverage
Стандартная метрика MaxLev (Maximum Leverage) — это теоретический потолок плеча, при котором просадка не превышает целевого уровня:
Эта формула не учитывает costs, зависящие от leverage. При 1× плече funding rate — незначительная комиссия. При 58× — это катастрофа.
Линейные vs квадратичные costs
Торговые комиссии (maker/taker fees) линейны — они пропорциональны объёму сделки и не зависят от плеча. Funding rates — тоже линейны по позиции, но при пересчёте на единицу капитала они растут пропорционально плечу:
При holding period дней и 3 выплатах в день:
Пересчёт: примеры стратегий с учётом 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% | 3× | +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 во время просадки

Funding costs аккумулируются постоянно, пока позиция открыта — включая периоды просадки. Для примера: максимальная просадка 0.9% (Strategy A) при leverage 55× превращается в:
Это уже на грани ликвидации. Теперь добавьте funding:
Если просадка длится 3 дня при funding rate 0.01%:
Итого: — ликвидация при стандартном maintenance margin 50%.
Формула безопасного leverage с учётом funding
где Funding buffer — ожидаемый funding за типичную длительность просадки:
Это рекуррентное уравнение (funding buffer зависит от ). Решение:
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:
- Наивный:
- С funding (0.01%):
- С funding (0.03%):
Практическая интеграция 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 влияет на безопасное плечо при разных MaxDD:
| Funding-режим | Средняя ставка | MaxLev при DD=0.9% | MaxLev при DD=17% |
|---|---|---|---|
| Низкий (0.005%) | 0.005% | 53× | 3× |
| Типичный (0.01%) | 0.01% | 50× | 3× |
| Повышенный (0.03%) | 0.03% | 42× | 3× |
| Высокий (0.05%) | 0.05% | 36× | 2× |
Ключевое наблюдение: для стратегий с низкой просадкой (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 используйте адаптивное:
При повышенном 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. Как и реальный налог, он незаметен при малых суммах и разрушителен при больших.
Три правила:
-
Всегда считайте PnL@ML с учётом funding. Формула без funding — маркетинг, не торговля. Загрузите исторические funding rates и вычтите реальные costs из каждой сделки.
-
Используйте формулу безопасного leverage:
- Тестируйте при 3× funding. Если стратегия прибыльна при funding 0.03% (а не только при 0.01%) — она робастна. Если нет — снижайте leverage.
Красивые числа PnL при 50–60× leverage — приятная иллюзия. Funding rates — холодная реальность. Между ними — разница между бэктестом и торговым счётом.
Подробнее о математике просадок и volatility drag при высоком плече — в нашей статье Асимметрия убытков и прибылей. О том, как получить доверительные интервалы для скорректированных на funding результатов — Monte Carlo Bootstrap для бэктестов.
Полезные ссылки
- Binance — Funding Rate History
- Binance — Introduction to Funding Rates
- Bybit — Understanding Funding Rates
- Deribit Insights — The Hidden Cost of Perpetual Swaps
- López de Prado — Advances in Financial Machine Learning, Chapter 14: Backtest Statistics
- 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
Количественные исследования и стратегии