← Voltar aos artigos
March 9, 2026
5 min read

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

As Funding Rates matam sua alavancagem: por que PnL×50x é uma ficção
#algo trading
#backtesting
#funding rates
#leverage
#risk management
#crypto
#Binance

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égia PnL MaxDD MaxLev PnL@ML Trades Tempo 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:

a_funding = funding_cost(55, 0.15, 750)

b_funding = funding_cost(66, 0.05, 750)

c_funding = funding_cost(3, 0.45, 750)

Resultados considerando o funding

Estratégia PnL@ML (sem funding) Custo de funding PnL@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 mercado Funding rate típica Por 8h a 55x Por dia a 55x
Mercado calmo 0.005% 0.275% 0.825%
Normal 0.01% 0.55% 1.65%
Tendência de alta 0.03% 1.65% 4.95%
Alta extrema 0.1% 5.50% 16.5%
Flash pump 0.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:

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

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 DDFunding bufferMaxDDL_{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 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:
    """
    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)

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%×50165%=+2585%55\% \times 50 - 165\% = +2585\%
  • Com funding (0,03%): 55%×42400%=+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."""
    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

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 funding Taxa média MaxLev com DD=0.9% MaxLev com DD=17%
Baixo (0.005%) 0.005% 53x 3x
Típico (0.01%) 0.01% 50x 3x
Elevado (0.03%) 0.03% 42x 3x
Alto (0.05%) 0.05% 36x 2x

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 DDMaxDD+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.


Links úteis

  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.}
}
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

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.

Newsletter

Fique à frente do mercado

Assine nossa newsletter para insights exclusivos sobre trading com IA, análises de mercado e atualizações da plataforma.

Respeitamos sua privacidade. Cancele a inscrição a qualquer momento.