Les Funding Rates tuent votre effet de levier : pourquoi PnL×50x est une fiction
Supposons que vous ayez optimisé une stratégie. Le backtest affiche un PnL de +55 %, un MaxDD de -0,9 %. Vous calculez le MaxLev : . Vous multipliez : . Trois mille pour cent en deux ans. Vous êtes déjà en train de choisir mentalement votre Lamborghini.
Trois mois après la mise en production, votre capital est passé sous le point de départ. La stratégie fonctionne exactement comme dans le backtest — mêmes entrées, mêmes sorties, même drawdown. Mais vous perdez de l'argent. Chaque jour. De façon constante.
La raison : les funding rates. Des frais invisibles que votre backtest n'a pas pris en compte — ou a mal pris en compte.
Comment fonctionnent les funding rates
Sur les exchanges de cryptomonnaies, les swaps perpétuels n'ont pas de date d'expiration. Pour maintenir le prix des futures ancré au prix spot, les exchanges utilisent un mécanisme de funding — des paiements périodiques entre positions longues et courtes.
Mécanique sur Binance/Bybit :
- Le funding est payé toutes les 8 heures (00:00, 08:00, 16:00 UTC)
- Le taux de funding est déterminé par l'écart entre le prix des futures et le prix spot
- Si le taux de funding est positif — les longs paient les shorts
- S'il est négatif — les shorts paient les longs
- Taux typique : toutes les 8 heures (peut atteindre en conditions extrêmes)
Formule pour un paiement unique :
Avec un levier et un capital :
Pourquoi les backtests mentent sur le levier
La métrique standard MaxLev (Maximum Leverage) est le plafond théorique de levier auquel le drawdown ne dépasse pas le niveau cible :
Cette formule ne tient pas compte des coûts qui dépendent du levier. Avec un levier de 1x, le funding rate est un frais négligeable. À 58x — c'est une catastrophe.
Coûts linéaires vs quadratiques
Les commissions de trading (frais maker/taker) sont linéaires — elles sont proportionnelles au volume échangé et ne dépendent pas du levier. Les funding rates sont également linéaires par rapport à la taille de la position, mais lorsqu'on les recalcule par unité de capital, elles croissent proportionnellement au levier :
Avec une durée de détention jours et 3 paiements par jour :
Recalcul : exemples de stratégies en tenant compte du funding
À titre d'exemple, considérons trois stratégies hypothétiques avec des profils de risque différents. Paramètres : futures perpétuels, période de test de 25 mois, taux de funding typique de 0,01 % toutes les 8 heures.
Résultats originaux (sans funding)
| Stratégie | PnL | MaxDD | MaxLev | PnL@ML | Trades | Temps en position |
|---|---|---|---|---|---|---|
| Stratégie A | +55% | -0.9% | 55x | +3025% | ~500 | ~15% |
| Stratégie B | +25% | -0.75% | 66x | +1650% | ~40 | ~5% |
| Stratégie C | +300% | -17% | 3x | +900% | ~400 | ~45% |
Calcul du coût du funding
def funding_cost(
leverage: float,
trading_time_pct: float,
test_days: int = 750, # 25 months
funding_rate: float = 0.0001, # 0.01% per 8h
payments_per_day: int = 3,
) -> float:
"""
Calculate cumulative funding costs as % of capital.
Returns:
Funding cost as percentage of initial capital
"""
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 # in percent
Calculs :
a_funding = funding_cost(55, 0.15, 750)
b_funding = funding_cost(66, 0.05, 750)
c_funding = funding_cost(3, 0.45, 750)
Résultats en tenant compte du funding
| Stratégie | PnL@ML (sans funding) | Coût du funding | PnL@ML (avec funding) | Statut |
|---|---|---|---|---|
| Stratégie A | +3025% | -185.6% | +2839% | Dévore ~6% |
| Stratégie B | +1650% | -74.3% | +1576% | Dévore ~4.5% |
| Stratégie C | +900% | -30.4% | +870% | Dévore ~3% |
À première vue, cela semble tolérable : le funding dévore 3 à 6 % du PnL@ML final. Mais il s'agit du taux de funding moyen. Voyons ce qui se passe avec des taux élevés.
Le taux de funding n'est pas une constante
Le taux de funding typique de 0,01 % est une valeur médiane. En réalité, les taux fluctuent :
| Phase de marché | Taux de funding typique | Sur 8h à 55x | Par jour à 55x |
|---|---|---|---|
| Marché calme | 0.005% | 0.275% | 0.825% |
| Normal | 0.01% | 0.55% | 1.65% |
| Tendance haussière | 0.03% | 1.65% | 4.95% |
| Extrêmement haussier | 0.1% | 5.50% | 16.5% |
| Flash pump | 0.5% | 27.5% | — |
Avec un levier de 55x lors d'un marché haussier (0,03 %) : une journée en position longue coûte 4,95 % du capital rien qu'en funding.
PnL par jour actif vs funding par jour
Voici le calcul clé — rendement quotidien de la stratégie face aux coûts quotidiens :
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
Avec de tels chiffres, le funding semble non critique. Mais ce sont des moyennes. Le vrai problème se situe ailleurs.
Le vrai problème : le funding pendant le drawdown

Les coûts de funding s'accumulent continuellement tant que la position est ouverte — y compris pendant les périodes de drawdown. Par exemple : un drawdown maximal de 0,9 % (Stratégie A) avec un levier de 55x devient :
C'est déjà à la limite de la liquidation. Ajoutons maintenant le funding :
Si le drawdown dure 3 jours avec un taux de funding de 0,01 % :
Total : — liquidation au seuil standard de marge de maintien de 50 %.
Formule du levier sûr tenant compte du funding
où le Funding buffer est le funding attendu sur la durée typique du drawdown :
C'est une équation récursive (le buffer de funding dépend de ). La solution :
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:
"""
Safe leverage accounting for funding costs during drawdown.
"""
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)
Conclusion : avec le taux de funding typique, le levier sûr pour la Stratégie A est de 50x, pas 55x. Avec un funding élevé — 42x. La différence de PnL@ML :
- Naïf :
- Avec funding (0,01 %) :
- Avec funding (0,03 %) :
Intégration pratique du funding dans les backtests
Prendre en compte les funding rates dans les backtests n'est pas optionnel — c'est une nécessité. Voici une implémentation minimale :
import pandas as pd
import numpy as np
def load_funding_rates(symbol: str) -> pd.DataFrame:
"""Load historical funding rates from warehouse."""
path = f"warehouse/data/{symbol}/funding/"
return df # columns: [timestamp, rate]
def apply_funding_to_trades(trades, funding_rates, leverage: int = 1):
"""
Subtract real funding costs from each trade's 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
Dans un moteur de backtesting bien conçu, les funding rates sont chargés et appliqués automatiquement à chaque trade. Cela donne une image réaliste — et elle est souvent moins rose qu'on ne le souhaiterait.
Fourchette de levier réaliste

À titre d'exemple — comment le taux de funding affecte le levier sûr à différents niveaux de MaxDD :
| Régime de funding | Taux moyen | MaxLev à DD=0.9% | MaxLev à DD=17% |
|---|---|---|---|
| Faible (0.005%) | 0.005% | 53x | 3x |
| Typique (0.01%) | 0.01% | 50x | 3x |
| Élevé (0.03%) | 0.03% | 42x | 3x |
| Très élevé (0.05%) | 0.05% | 36x | 2x |
Observation clé : pour les stratégies à faible drawdown (Stratégie A, B), le funding réduit significativement le levier effectif. Pour les stratégies à drawdown élevé (Stratégie C), l'impact du funding est minime — car le levier est déjà limité à 3x.
Stratégies pour minimiser l'impact du funding
1. Positions neutres en hedge
Le taux de funding est déterminé par l'écart entre le prix des futures et le prix spot. Si votre stratégie permet de hedger via le spot — le funding est neutralisé :
- Futures long + spot short = exposition nette nulle au funding
- Mais : le short sur spot en crypto est limité (nécessite un compte sur marge ou du prêt)
2. Migrer vers des exchanges à funding plus bas
Différents exchanges ont des funding rates différents pour un même actif. Surveiller l'arbitrage de funding est une stratégie à part entière, décrite en détail dans l'article Funding Rate Arbitrage Across Exchanges.
3. Le timing des entrées
Le funding est payé à des heures fixes (00:00, 08:00, 16:00 UTC). Si un trade se clôture une minute avant un paiement — le funding n'est pas facturé. C'est une micro-optimisation, mais avec un levier de 58x, économiser 0,58 % en évitant un paiement est significatif.
4. Levier dynamique
Au lieu d'un levier fixe, utilisez un levier adaptatif :
Quand le funding est élevé, le levier diminue automatiquement, limitant les coûts.
Recommandations pour intégrer le funding dans le pipeline
Les funding rates doivent être un élément obligatoire du pipeline de backtesting :
- Charger les funding rates historiques pour chaque symbole
- Ajuster chaque trade avec le funding réel sur la durée de détention
- Calculer le MaxLev avec la formule incluant le buffer de funding
- Dans le rapport, afficher les deux chiffres : PnL@ML sans funding et avec funding
Règle pratique : si une stratégie cesse d'être rentable avec un taux de funding de 0,03 % (ce qui survient 20 à 30 % du temps pendant un marché haussier) — elle n'est pas prête pour la production avec un levier élevé. Réduisez le levier à un niveau où la stratégie reste rentable même dans le pire scénario de funding.
Conclusion
Les funding rates sont une taxe sur le levier. Comme une vraie taxe, elles sont imperceptibles pour de petits montants et dévastatrices pour de gros montants.
Trois règles :
-
Calculez toujours le PnL@ML en tenant compte du funding. La formule sans funding relève du marketing, pas du trading. Chargez les funding rates historiques et soustrayez les coûts réels de chaque trade.
-
Utilisez la formule du levier sûr :
- Testez à 3x le funding. Si la stratégie est rentable avec un funding de 0,03 % (et pas seulement 0,01 %) — elle est robuste. Sinon — réduisez le levier.
De beaux chiffres de PnL à 50-60x de levier ne sont qu'une agréable illusion. Les funding rates sont la froide réalité. Entre les deux se trouve la différence entre un backtest et un compte de trading.
Pour en savoir plus sur les mathématiques des drawdowns et du volatility drag à fort levier — consultez notre article Loss-Profit Asymmetry. Sur la façon d'obtenir des intervalles de confiance pour des résultats ajustés du funding — Monte Carlo Bootstrap for Backtests.
Liens utiles
- Binance — Funding Rate History
- Binance — Introduction to Funding Rates
- Bybit — Understanding Funding Rates
- Deribit Insights — The Hidden Cost of Perpetual Swaps
- Lopez de Prado — Advances in Financial Machine Learning, Chapter 14: Backtest Statistics
- Kevin Davey — Building Winning Algorithmic Trading Systems: Transaction Costs
Citation
@article{soloviov2026fundingratesleverage,
author = {Soloviov, Eugen},
title = {Funding Rates Kill Your Leverage: Why PnL×50x Is a Fiction},
year = {2026},
url = {https://marketmaker.cc/ru/blog/post/funding-rates-kill-leverage},
version = {0.1.0},
description = {How funding rates on Binance/Bybit turn beautiful high-leverage backtest results into guaranteed losses. Formulas, recalculation of real strategies, and the maximum leverage at which funding does not eat into profits.}
}
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.