As Funding Rates matam sua alavancagem: por que PnL×50x é uma ficção

Como as funding rates na Binance/Bybit transformam belos resultados de backtest com alta alavancagem em perdas garantidas. Fórmulas, recálculo de estratégias reais e a alavancagem máxima na qual o funding não consome os lucros.

Suponha que você otimizou uma estratégia. O backtest mostra PnL +55%, MaxDD -0,9%. Você calcula o MaxLev: ⌊50/0.9⌋=55×\lfloor 50 / 0.9 \rfloor = 55\times. Você multiplica: 55%×55=+3025%55\% \times 55 = +3025\%. Três mil por cento em dois anos. Você já está escolhendo mentalmente sua Lamborghini.

Três meses após entrar em produção, seu capital está abaixo do ponto de partida. A estratégia funciona exatamente como no backtest — mesmas entradas, mesmas saídas, mesmo drawdown. Mas você está perdendo dinheiro. Todos os dias. Consistentemente.

O motivo: as funding rates. Uma taxa invisível que seu backtest não considerou — ou considerou de forma incorreta.

Como funcionam as funding rates

Nas exchanges de criptomoedas, os swaps perpétuos não têm data de vencimento. Para manter o preço dos futuros ancorado ao preço à vista (spot), as exchanges usam um mecanismo de funding — pagamentos periódicos entre posições compradas (long) e vendidas (short).

Mecânica na Binance/Bybit:

  • O funding é pago a cada 8 horas (00:00, 08:00, 16:00 UTC)
  • A funding rate é determinada pela diferença entre o preço dos futuros e o preço spot
  • Se a funding rate for positiva — os longs pagam aos shorts
  • Se for negativa — os shorts pagam aos longs
  • Taxa típica: ±0.01%\pm 0.01\% a cada 8 horas (pode chegar a ±0.5%\pm 0.5\% em condições extremas)

Fórmula para um único pagamento:

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

Com alavancagem LL e capital CC:

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

Por que os backtests mentem sobre a alavancagem

A métrica padrão MaxLev (Maximum Leverage) é o teto teórico de alavancagem no qual o drawdown não excede o nível-alvo:

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

Esta fórmula não leva em conta os custos que dependem da alavancagem. Com alavancagem de 1x, a funding rate é uma taxa insignificante. Com 58x — é uma catástrofe.

Custos lineares vs. quadráticos

As comissões de trading (taxas maker/taker) são lineares — são proporcionais ao volume negociado e não dependem da alavancagem. As funding rates também são lineares em relação ao tamanho da posição, mas ao serem recalculadas por unidade de capital, crescem proporcionalmente à alavancagem:

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

Com um período de manutenção de HH dias e 3 pagamentos por dia:

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

Recálculo: exemplos de estratégias considerando o funding

Como exemplo, vamos considerar três estratégias hipotéticas com diferentes perfis de risco. Parâmetros: futuros perpétuos, período de teste de 25 meses, funding rate típica de 0,01% a cada 8 horas.

Resultados originais (sem funding)

EstratégiaPnLMaxDDMaxLevPnL@MLTradesTempo em mercado
Estratégia A+55%-0.9%55x+3025%~500~15%
Estratégia B+25%-0.75%66x+1650%~40~5%
Estratégia C+300%-17%3x+900%~400~45%

Cálculo do custo de 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

Cálculos:

# Strategy A: 55x leverage, 15% trading time, 750 days
a_funding = funding_cost(55, 0.15, 750)
# = 0.0001 * 3 * 55 * (750 * 0.15) = 0.0165 * 112.5 = 1.856 → 185.6%

# Strategy B: 66x leverage, 5% trading time, 750 days
b_funding = funding_cost(66, 0.05, 750)
# = 0.0001 * 3 * 66 * (750 * 0.05) = 0.0198 * 37.5 = 0.743 → 74.3%

# Strategy C: 3x leverage, 45% trading time, 750 days
c_funding = funding_cost(3, 0.45, 750)
# = 0.0001 * 3 * 3 * (750 * 0.45) = 0.0009 * 337.5 = 0.304 → 30.4%

Resultados considerando o funding

EstratégiaPnL@ML (sem funding)Custo de fundingPnL@ML (com funding)Status
Estratégia A+3025%-185.6%+2839%Consome ~6%
Estratégia B+1650%-74.3%+1576%Consome ~4.5%
Estratégia C+900%-30.4%+870%Consome ~3%

À primeira vista, isso parece tolerável: o funding consome 3-6% do PnL@ML final. Mas essa é a funding rate média. Vejamos o que acontece com taxas elevadas.

A funding rate não é uma constante

A funding rate típica de 0,01% é um valor mediano. Na realidade, as taxas flutuam:

Fase do mercadoFunding rate típicaPor 8h a 55xPor dia a 55x
Mercado calmo0.005%0.275%0.825%
Normal0.01%0.55%1.65%
Tendência de alta0.03%1.65%4.95%
Alta extrema0.1%5.50%16.5%
Flash pump0.5%27.5%—

Com alavancagem de 55x durante um mercado em alta (0,03%): um dia em posição comprada custa 4,95% do capital apenas em funding.

PnL por dia ativo vs. funding por dia

Aqui está o cálculo essencial — retorno diário da estratégia versus custos diários:

# Strategy A: 55% PnL over 112.5 active days
a_pnl_per_day = 55 * 55 / 112.5  # PnL@ML / active days = 26.9%/day

# At funding 0.01%: 0.0001 * 3 * 55 = 1.65%/day
# Margin: 26.9% - 1.65% = +25.2%/day → OK

# At funding 0.03%: 0.0001 * 3 * 3 * 55 = 4.95%/day
# Margin: 26.9% - 4.95% = +21.9%/day → still OK

# Strategy B: 25% PnL over 37.5 active days
b_pnl_per_day = 25 * 66 / 37.5  # = 44.0%/day

# At funding 0.01%: 0.0001 * 3 * 66 = 1.98%/day
# Margin: 44.0% - 1.98% = +42.0%/day → OK

Com números assim, o funding parece não ser crítico. Mas esses são valores médios. O problema real está em outro lugar.

O problema real: o funding durante o drawdown

Leverage, drawdown duration, and funding impact surface

Os custos de funding se acumulam continuamente enquanto a posição estiver aberta — inclusive durante os períodos de drawdown. Por exemplo: um drawdown máximo de 0,9% (Estratégia A) com alavancagem de 55x se torna:

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

Isso já está no limite da liquidação. Agora adicione o funding:

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

Se o drawdown durar 3 dias com uma funding rate de 0,01%:

Funding over 3 days=0.0001×3×55×3=4.95%\text{Funding over 3 days} = 0.0001 \times 3 \times 55 \times 3 = 4.95\%

Total: 49.5%+4.95%=54.45%49.5\% + 4.95\% = 54.45\% — liquidação na margem de manutenção padrão de 50%.

Fórmula de alavancagem segura considerando o funding

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

onde o Funding buffer é o funding esperado ao longo da duração típica do drawdown:

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

Esta é uma equação recursiva (o buffer de funding depende de LL). A solução:

Lsafe=Target DD∣MaxDD∣+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:
    """
    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

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

# At elevated funding 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

Conclusão: com a funding rate típica, a alavancagem segura para a Estratégia A é 50x, não 55x. Com funding elevado — 42x. A diferença no PnL@ML:

  • Ingênuo: 55%×55=+3025%55\% \times 55 = +3025\%
  • Com funding (0,01%): 55%×50−165%=+2585%55\% \times 50 - 165\% = +2585\%
  • Com funding (0,03%): 55%×42−400%=+1910%55\% \times 42 - 400\% = +1910\%

Integração prática do funding em backtests

Considerar as funding rates em backtests não é opcional — é uma necessidade. Aqui está uma implementação mínima:

import pandas as pd
import numpy as np

def load_funding_rates(symbol: str) -> pd.DataFrame:
    """Load historical funding rates from warehouse."""
    # Funding rates are stored in CSV: timestamp, rate
    # Binance publishes every 8 hours
    path = f"warehouse/data/{symbol}/funding/"
    # ... loading and merging files
    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:
        # Find all funding payments during the position holding period
        mask = (
            (funding_rates.index >= trade.entry_time) &
            (funding_rates.index <= trade.exit_time)
        )
        payments = funding_rates.loc[mask, 'rate']

        # Funding cost: sum of rates × leverage × direction
        # Long pays positive funding, receives negative
        direction = 1 if trade.side == 'long' else -1
        total_funding = payments.sum() * direction * leverage

        # PnL adjustment
        trade.pnl_pct -= total_funding * 100

    return trades

Em um motor de backtesting bem construído, as funding rates são carregadas e aplicadas automaticamente a cada trade. Isso fornece uma imagem realista — e ela costuma ser menos otimista do que se gostaria.

Faixa de alavancagem realista

Funding rate regimes and safe leverage comparison

Como exemplo — como a funding rate afeta a alavancagem segura em diferentes níveis de MaxDD:

Regime de fundingTaxa médiaMaxLev com DD=0.9%MaxLev com DD=17%
Baixo (0.005%)0.005%53x3x
Típico (0.01%)0.01%50x3x
Elevado (0.03%)0.03%42x3x
Alto (0.05%)0.05%36x2x

Observação-chave: para estratégias com baixo drawdown (Estratégia A, B), o funding reduz significativamente a alavancagem efetiva. Para estratégias com alto drawdown (Estratégia C), o impacto do funding é mínimo — porque a alavancagem já está limitada a 3x.

Estratégias para minimizar o impacto do funding

1. Posições hedge-neutras

A funding rate é determinada pela diferença entre o preço dos futuros e o preço spot. Se sua estratégia permitir hedge via spot — o funding é neutralizado:

  • Futuros comprados + spot vendido = exposição líquida zero ao funding
  • Mas: vender a descoberto (short) no spot em cripto é limitado (requer uma conta de margem ou empréstimo)

2. Migrar para exchanges com funding mais baixo

Diferentes exchanges têm funding rates diferentes para o mesmo ativo. Monitorar a arbitragem de funding é uma estratégia à parte, descrita em detalhes no artigo Funding Rate Arbitrage Across Exchanges.

3. Timing das entradas

O funding é pago em horários fixos (00:00, 08:00, 16:00 UTC). Se um trade fechar um minuto antes de um pagamento — o funding não é cobrado. Isso é uma micro-otimização, mas com alavancagem de 58x, economizar 0,58% ao evitar um único pagamento é significativo.

4. Alavancagem dinâmica

Em vez de uma alavancagem fixa, use uma alavancagem adaptativa:

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

Quando o funding está elevado, a alavancagem diminui automaticamente, limitando os custos.

Recomendações para integrar o funding no pipeline

As funding rates devem ser parte obrigatória do pipeline de backtesting:

  • Carregar as funding rates históricas de cada símbolo
  • Ajustar cada trade pelo funding real ao longo do período de manutenção
  • Calcular o MaxLev com a fórmula que inclui o buffer de funding
  • No relatório, exibir ambos os números: PnL@ML sem funding e com funding

Regra prática: se uma estratégia deixa de ser lucrativa com uma funding rate de 0,03% (o que ocorre 20-30% do tempo durante um mercado em alta) — ela não está pronta para produção com alta alavancagem. Reduza a alavancagem a um nível em que a estratégia seja lucrativa mesmo no pior cenário de funding.

Conclusão

As funding rates são um imposto sobre a alavancagem. Assim como um imposto real, são imperceptíveis em valores pequenos e devastadoras em valores grandes.

Três regras:

  1. Sempre calcule o PnL@ML considerando o funding. A fórmula sem funding é marketing, não trading. Carregue as funding rates históricas e subtraia os custos reais de cada trade.

  2. Use a fórmula de alavancagem segura:

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

  1. Teste com 3x o funding. Se a estratégia for lucrativa com um funding de 0,03% (não apenas 0,01%) — ela é robusta. Se não for — reduza a alavancagem.

Belos números de PnL com alavancagem de 50-60x são uma ilusão agradável. As funding rates são a fria realidade. Entre elas está a diferença entre um backtest e uma conta de trading real.

Para mais sobre a matemática de drawdowns e volatility drag em alta alavancagem, veja nosso artigo Loss-Profit Asymmetry. Sobre como obter intervalos de confiança para resultados ajustados pelo funding — Monte Carlo Bootstrap for Backtests.


  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. Lopez de Prado — Advances in Financial Machine Learning, Chapter 14: Backtest Statistics
  6. Kevin Davey — Building Winning Algorithmic Trading Systems: Transaction Costs

Citação

@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.}
}