I Funding Rate Distruggono la Tua Leva: Perché PnL×50x È una Finzione

Come i funding rate su Binance/Bybit trasformano i bellissimi risultati di backtest ad alta leva in perdite garantite. Formule, ricalcolo di strategie reali e la leva massima alla quale il funding non erode i profitti.

Supponiamo che tu abbia ottimizzato una strategia. Il backtest mostra PnL +55%, MaxDD -0,9%. Calcoli il MaxLev: ⌊50/0.9⌋=55×\lfloor 50 / 0.9 \rfloor = 55\times. Moltiplichi: 55%×55=+3025%55\% \times 55 = +3025\%. Tremila percento in due anni. Stai già mentalmente scegliendo la tua Lamborghini.

Tre mesi in produzione, il tuo capitale è sotto il punto di partenza. La strategia funziona esattamente come nel backtest — stessi ingressi, stesse uscite, stesso drawdown. Ma stai perdendo denaro. Ogni giorno. Costantemente.

Il motivo: i funding rate. Una commissione invisibile che il tuo backtest non ha considerato — o ha considerato in modo errato.

Come Funzionano i Funding Rate

Negli exchange di criptovalute, i perpetual swap non hanno una data di scadenza. Per mantenere il prezzo dei futures ancorato al prezzo spot, gli exchange utilizzano un meccanismo di funding — pagamenti periodici tra long e short.

Meccanica su Binance/Bybit:

  • Il funding viene pagato ogni 8 ore (00:00, 08:00, 16:00 UTC)
  • Il tasso di funding è determinato dalla differenza tra il prezzo dei futures e il prezzo spot
  • Se il tasso di funding è positivo — i long pagano gli short
  • Se negativo — gli short pagano i long
  • Tasso tipico: ±0.01%\pm 0.01\% ogni 8 ore (può raggiungere ±0.5%\pm 0.5\% in condizioni estreme)

Formula per un singolo pagamento:

Costo funding=Dimensione posizione×Tasso di funding\text{Costo funding} = \text{Dimensione posizione} \times \text{Tasso di funding}

Con leva LL e capitale CC:

Costo funding=C×L×Tasso\text{Costo funding} = C \times L \times \text{Tasso}

Perché i Backtest Mentono sulla Leva

La metrica standard MaxLev (Leva Massima) è il tetto teorico della leva alla quale il drawdown non supera il livello target:

MaxLev=⌊DD TargetMaxDD⌋\text{MaxLev} = \left\lfloor \frac{\text{DD Target}}{\text{MaxDD}} \right\rfloor

Questa formula non tiene conto dei costi che dipendono dalla leva. A 1x di leva, il tasso di funding è una commissione trascurabile. A 58x — è una catastrofe.

Costi Lineari vs Quadratici

Le commissioni di trading (maker/taker fee) sono lineari — sono proporzionali al volume degli scambi e non dipendono dalla leva. I funding rate sono anch'essi lineari rispetto alla dimensione della posizione, ma ricalcolati per unità di capitale, crescono proporzionalmente alla leva:

Costo funding per capitale=L×Tasso×Frequenza\text{Costo funding per capitale} = L \times \text{Tasso} \times \text{Frequenza}

Con periodo di detenzione HH giorni e 3 pagamenti al giorno:

Funding totale=L×Tasso×3×H\text{Funding totale} = L \times \text{Tasso} \times 3 \times H

Ricalcolo: Esempi di Strategie Considerando il Funding

Come esempio, consideriamo tre strategie ipotetiche con profili di rischio diversi. Parametri: perpetual futures, periodo di test di 25 mesi, tasso di funding tipico dello 0,01% ogni 8 ore.

Risultati Originali (Senza Funding)

StrategiaPnLMaxDDMaxLevPnL@MLTradeTempo di trading
Strategia A+55%-0,9%55x+3025%~500~15%
Strategia B+25%-0,75%66x+1650%~40~5%
Strategia C+300%-17%3x+900%~400~45%

Calcolo del Costo di Funding

def funding_cost(
    leverage: float,
    trading_time_pct: float,
    test_days: int = 750,  # 25 mesi
    funding_rate: float = 0.0001,  # 0.01% ogni 8h
    payments_per_day: int = 3,
) -> float:
    """
    Calcola i costi di funding cumulativi come % del capitale.

    Returns:
        Costo di funding come percentuale del capitale iniziale
    """
    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 percentuale

Calcoli:

# Strategia A: leva 55x, 15% tempo di trading, 750 giorni
a_funding = funding_cost(55, 0.15, 750)
# = 0.0001 * 3 * 55 * (750 * 0.15) = 0.0165 * 112.5 = 1.856 → 185.6%

# Strategia B: leva 66x, 5% tempo di trading, 750 giorni
b_funding = funding_cost(66, 0.05, 750)
# = 0.0001 * 3 * 66 * (750 * 0.05) = 0.0198 * 37.5 = 0.743 → 74.3%

# Strategia C: leva 3x, 45% tempo di trading, 750 giorni
c_funding = funding_cost(3, 0.45, 750)
# = 0.0001 * 3 * 3 * (750 * 0.45) = 0.0009 * 337.5 = 0.304 → 30.4%

Risultati Considerando il Funding

StrategiaPnL@ML (senza funding)Costo fundingPnL@ML (con funding)Stato
Strategia A+3025%-185,6%+2839%Erode ~6%
Strategia B+1650%-74,3%+1576%Erode ~4,5%
Strategia C+900%-30,4%+870%Erode ~3%

A prima vista questo sembra tollerabile: il funding erode il 3-6% del PnL@ML finale. Ma questo è il tasso di funding medio. Vediamo cosa succede con tassi elevati.

Il Funding Rate Non È una Costante

Il tipico 0,01% di funding rate è un valore mediano. In realtà i tassi fluttuano:

Fase di mercatoTasso di funding tipicoPer 8h a 55xPer giorno a 55x
Mercato calmo0,005%0,275%0,825%
Normale0,01%0,55%1,65%
Tendenza rialzista0,03%1,65%4,95%
Estremo rialzista0,1%5,50%16,5%
Flash pump0,5%27,5%—

A 55x di leva durante un mercato rialzista (0,03%): un giorno in una posizione long costa 4,95% del capitale solo di funding.

PnL per Giorno Attivo vs Funding per Giorno

Ecco il calcolo chiave — rendimento giornaliero della strategia rispetto ai costi giornalieri:

# Strategia A: PnL 55% su 112.5 giorni attivi
a_pnl_per_day = 55 * 55 / 112.5  # PnL@ML / giorni attivi = 26.9%/giorno

# Con funding 0.01%: 0.0001 * 3 * 55 = 1.65%/giorno
# Margine: 26.9% - 1.65% = +25.2%/giorno → OK

# Con funding 0.03%: 0.0001 * 3 * 3 * 55 = 4.95%/giorno
# Margine: 26.9% - 4.95% = +21.9%/giorno → ancora OK

# Strategia B: PnL 25% su 37.5 giorni attivi
b_pnl_per_day = 25 * 66 / 37.5  # = 44.0%/giorno

# Con funding 0.01%: 0.0001 * 3 * 66 = 1.98%/giorno
# Margine: 44.0% - 1.98% = +42.0%/giorno → OK

Con questi numeri, il funding sembra non critico. Ma questi sono valori medi. Il problema è altrove.

Il Vero Problema: Il Funding Durante il Drawdown

Superficie di impatto di leva, durata del drawdown e funding

I costi di funding si accumulano continuamente mentre la posizione è aperta — inclusi i periodi di drawdown. Ad esempio: un drawdown massimo dello 0,9% (Strategia A) a 55x di leva diventa:

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

Questo è già al limite della liquidazione. Ora aggiungiamo il funding:

DD con funding=49.3%+funding accumulato durante il periodo di DD\text{DD con funding} = 49.3\% + \text{funding accumulato durante il periodo di DD}

Se il drawdown dura 3 giorni con un tasso di funding dello 0,01%:

Funding in 3 giorni=0.0001×3×55×3=4.95%\text{Funding in 3 giorni} = 0.0001 \times 3 \times 55 \times 3 = 4.95\%

Totale: 49.5%+4.95%=54.45%49.5\% + 4.95\% = 54.45\% — liquidazione al margine di mantenimento standard del 50%.

Formula della Leva Sicura Considerando il Funding

Lsafe=DD Target−Buffer funding∣MaxDD∣L_{safe} = \frac{\text{DD Target} - \text{Buffer funding}}{|\text{MaxDD}|}

dove il Buffer funding è il funding atteso durante la tipica durata del drawdown:

Buffer funding=Tasso×3×L×Durata DD (giorni)\text{Buffer funding} = \text{Tasso} \times 3 \times L \times \text{Durata DD (giorni)}

Questa è un'equazione ricorsiva (il buffer funding dipende da LL). La soluzione:

Lsafe=DD Target∣MaxDD∣+Tasso×3×Durata DDL_{safe} = \frac{\text{DD Target}}{|\text{MaxDD}| + \text{Tasso} \times 3 \times \text{Durata DD}}

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:
    """
    Leva sicura considerando i costi di funding durante il drawdown.
    """
    denominator = max_dd_pct / 100 + funding_rate * 3 * dd_duration_days
    return target_dd_pct / 100 / denominator

# Strategia A: MaxDD=0.9%, durata DD ~3 giorni
a_safe = safe_leverage(0.9, 50.0, 0.0001, 3.0)
# = 0.50 / (0.009 + 0.0009) = 0.50 / 0.0099 = 50.5x

# Con funding elevato 0.03%:
a_safe_high = safe_leverage(0.9, 50.0, 0.0003, 3.0)
# = 0.50 / (0.009 + 0.0027) = 0.50 / 0.0117 = 42.7x

Conclusione: al tasso di funding tipico, la leva sicura per la Strategia A è 50x, non 55x. Con funding elevato — 42x. La differenza nel PnL@ML:

  • Naïve: 55%×55=+3025%55\% \times 55 = +3025\%
  • Con funding (0,01%): 55%×50−165%=+2585%55\% \times 50 - 165\% = +2585\%
  • Con funding (0,03%): 55%×42−400%=+1910%55\% \times 42 - 400\% = +1910\%

Integrazione Pratica del Funding nei Backtest

Considerare i funding rate nei backtest non è facoltativo — è una necessità. Ecco un'implementazione minima:

import pandas as pd
import numpy as np

def load_funding_rates(symbol: str) -> pd.DataFrame:
    """Carica i funding rate storici dal warehouse."""
    # I funding rate sono memorizzati in CSV: timestamp, rate
    # Binance pubblica ogni 8 ore
    path = f"warehouse/data/{symbol}/funding/"
    # ... caricamento e unione dei file
    return df  # colonne: [timestamp, rate]

def apply_funding_to_trades(trades, funding_rates, leverage: int = 1):
    """
    Sottrae i costi reali di funding dal PnL di ogni trade.
    """
    for trade in trades:
        # Trova tutti i pagamenti di funding durante il periodo di detenzione della posizione
        mask = (
            (funding_rates.index >= trade.entry_time) &
            (funding_rates.index <= trade.exit_time)
        )
        payments = funding_rates.loc[mask, 'rate']

        # Costo funding: somma dei tassi × leva × direzione
        # I long pagano il funding positivo, ricevono quello negativo
        direction = 1 if trade.side == 'long' else -1
        total_funding = payments.sum() * direction * leverage

        # Rettifica PnL
        trade.pnl_pct -= total_funding * 100

    return trades

In un motore di backtesting ben costruito, i funding rate vengono caricati e applicati automaticamente a ogni trade. Questo fornisce un quadro realistico — e spesso meno roseo di quanto si vorrebbe.

Intervallo di Leva Realistico

Confronto dei regimi di funding rate e della leva sicura

Come esempio — come il tasso di funding influisce sulla leva sicura a diversi livelli di MaxDD:

Regime di fundingTasso medioMaxLev con DD=0,9%MaxLev con DD=17%
Basso (0,005%)0,005%53x3x
Tipico (0,01%)0,01%50x3x
Elevato (0,03%)0,03%42x3x
Alto (0,05%)0,05%36x2x

Osservazione chiave: per le strategie con drawdown basso (Strategia A, B), il funding riduce significativamente la leva effettiva. Per le strategie con drawdown elevato (Strategia C), l'impatto del funding è minimo — perché la leva è già limitata a 3x.

Strategie per Minimizzare l'Impatto del Funding

1. Posizioni Hedge-Neutral

Il tasso di funding è determinato dalla differenza tra il prezzo dei futures e il prezzo spot. Se la tua strategia permette la copertura tramite spot — il funding viene neutralizzato:

  • Long futures + short spot = 0 esposizione netta al funding
  • Ma: lo shorting spot in crypto è limitato (richiede un conto a margine o lending)

2. Passare a Exchange con Funding Inferiore

Exchange diversi hanno tassi di funding diversi per lo stesso asset. Il monitoraggio dell'arbitraggio del funding è una strategia separata, descritta in dettaglio nell'articolo Funding Rate Arbitrage Across Exchanges.

3. Timing degli Ingressi

Il funding viene pagato a orari fissi (00:00, 08:00, 16:00 UTC). Se un trade si chiude un minuto prima di un pagamento — il funding non viene addebitato. Si tratta di una micro-ottimizzazione, ma a 58x di leva, risparmiare lo 0,58% da un singolo pagamento saltato è significativo.

4. Leva Dinamica

Invece di una leva fissa, usa la leva adattiva:

Ldynamic=Lbase×Tassomedianomax⁡(Tassocorrente,Tassomediano)L_{dynamic} = L_{base} \times \frac{\text{Tasso}_{mediano}}{\max(\text{Tasso}_{corrente}, \text{Tasso}_{mediano})}

Quando il funding è elevato, la leva diminuisce automaticamente, limitando i costi.

Raccomandazioni per Integrare il Funding nella Pipeline

I funding rate devono essere una parte obbligatoria della pipeline di backtesting:

  • Caricare i funding rate storici per ogni simbolo
  • Rettificare ogni trade per il funding effettivo durante il periodo di detenzione
  • Calcolare il MaxLev usando la formula con il buffer di funding
  • Nel report, mostrare entrambi i numeri: PnL@ML senza funding e con funding

Regola pratica: se una strategia cessa di essere redditizia con un tasso di funding dello 0,03% (che si verifica nel 20-30% dei casi durante un mercato rialzista) — non è pronta per la produzione ad alta leva. Riduci la leva a un livello al quale la strategia sia redditizia anche nello scenario di funding peggiore.

Conclusione

I funding rate sono una tassa sulla leva. Come una tassa reale, sono impercettibili a importi ridotti e devastanti a importi elevati.

Tre regole:

  1. Calcola sempre il PnL@ML considerando il funding. La formula senza funding è marketing, non trading. Carica i funding rate storici e sottrai i costi reali da ogni trade.

  2. Usa la formula della leva sicura:

Lsafe=DD Target∣MaxDD∣+Tasso×3×Durata DDL_{safe} = \frac{\text{DD Target}}{|\text{MaxDD}| + \text{Tasso} \times 3 \times \text{Durata DD}}

  1. Testa a 3x funding. Se la strategia è redditizia allo 0,03% di funding (non solo allo 0,01%) — è robusta. Se no — riduci la leva.

I bei numeri di PnL a 50-60x di leva sono una piacevole illusione. I funding rate sono la fredda realtà. Tra loro sta la differenza tra un backtest e un conto di trading.

Per approfondire la matematica dei drawdown e il volatility drag ad alta leva — vedi il nostro articolo Asimmetria Perdita-Profitto. Su come ottenere intervalli di confidenza per i risultati corretti per il funding — Monte Carlo Bootstrap per Backtest.


  1. Binance — Cronologia Funding Rate
  2. Binance — Introduzione ai Funding Rate
  3. Bybit — Comprendere i Funding Rate
  4. Deribit Insights — Il Costo Nascosto dei Perpetual Swap
  5. Lopez de Prado — Advances in Financial Machine Learning, Capitolo 14: Statistiche di Backtest
  6. Kevin Davey — Building Winning Algorithmic Trading Systems: Costi di Transazione

Citazione

@article{soloviov2026fundingratesleverage,
  author = {Soloviov, Eugen},
  title = {Funding Rates Kill Your Leverage: Why PnL×50x Is a Fiction},
  year = {2026},
  url = {https://marketmaker.cc/it/blog/post/funding-rates-kill-leverage},
  version = {0.1.0},
  description = {Come i funding rate su Binance/Bybit trasformano i bellissimi risultati di backtest ad alta leva in perdite garantite. Formule, ricalcolo di strategie reali e la leva massima alla quale il funding non erode i profitti.}
}