← Maqolalarga qaytish
March 9, 2026
5 daqiqa o'qish

Funding Rate'lar sizning leverage'ingizni o'ldiradi: nega PnL×50x fantastika

Funding Rate'lar sizning leverage'ingizni o'ldiradi: nega PnL×50x fantastika
#algo trading
#backtesting
#funding rates
#leverage
#risk management
#crypto
#Binance

Aytaylik, siz strategiyani optimallashtirdingiz. Backtest PnL +55%, MaxDD -0,9% ko'rsatadi. Siz MaxLev'ni hisoblaysiz: 50/0.9=55×\lfloor 50 / 0.9 \rfloor = 55\times. Ko'paytirasiz: 55%×55=+3025%55\% \times 55 = +3025\%. Ikki yilda uch ming foiz. Siz aqlan allaqachon Lamborghini tanlayotgan bo'lasiz.

Productionga chiqqaningizdan uch oy o'tgach, kapitalingiz boshlang'ich nuqtadan pastda. Strategiya aynan backtestdagidek ishlaydi — xuddi shu kirishlar, xuddi shu chiqishlar, xuddi shu drawdown. Lekin siz pul yo'qotyapsiz. Har kuni. Doimiy ravishda.

Sababi — funding rate'lar. Backtestingiz hisobga olmagan yoki noto'g'ri hisobga olgan ko'rinmas komissiya.

Funding Rate'lar qanday ishlaydi

Kriptovalyuta birjalarida perpetual swap'larning amal qilish muddati yo'q. Fyuchers narxini spot narxiga yaqin ushlab turish uchun birjalar funding mexanizmidan foydalanadi — long va short pozitsiyalar o'rtasidagi davriy to'lovlar.

Binance/Bybit'dagi mexanizm:

  • Funding har 8 soatda to'lanadi (00:00, 08:00, 16:00 UTC)
  • Funding rate fyuchers narxi va spot narxi o'rtasidagi farq bilan aniqlanadi
  • Funding rate musbat bo'lsa — long'lar short'larga to'laydi
  • Manfiy bo'lsa — short'lar long'larga to'laydi
  • Odatiy stavka: 8 soatga ±0.01%\pm 0.01\% (ekstremal sharoitlarda ±0.5%\pm 0.5\% gacha yetishi mumkin)

Bitta to'lov uchun formula:

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

LL leverage va CC kapital bilan:

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

Nega backtest'lar leverage haqida yolg'on gapiradi

Standart MaxLev (Maximum Leverage) metrikasi — drawdown maqsadli darajadan oshmaydigan leverage'ning nazariy chegarasi:

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

Bu formula leverage'ga bog'liq bo'lgan xarajatlarni hisobga olmaydi. 1x leverage'da funding rate arzimas komissiya hisoblanadi. 58x'da — bu falokat.

Chiziqli va kvadratik xarajatlar

Savdo komissiyalari (maker/taker to'lovlari) chiziqli — ular savdo hajmiga proportsional va leverage'ga bog'liq emas. Funding rate'lar ham pozitsiya hajmiga nisbatan chiziqli, lekin kapital birligiga qayta hisoblanganda leverage'ga proportsional ravishda o'sadi:

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

HH kun ushlab turish muddati va kuniga 3 ta to'lov bilan:

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

Qayta hisoblash: funding'ni hisobga olgan strategiya misollari

Misol tariqasida turli xavf profillariga ega uchta gipotetik strategiyani ko'rib chiqamiz. Parametrlar: perpetual fyuchers, 25 oylik test davri, 8 soatga 0,01% odatiy funding rate.

Dastlabki natijalar (funding'siz)

Strategiya PnL MaxDD MaxLev PnL@ML Trade'lar Savdo vaqti
A strategiyasi +55% -0.9% 55x +3025% ~500 ~15%
B strategiyasi +25% -0.75% 66x +1650% ~40 ~5%
C strategiyasi +300% -17% 3x +900% ~400 ~45%

Funding xarajatini hisoblash

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

Hisob-kitoblar:

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'ni hisobga olgan natijalar

Strategiya PnL@ML (funding'siz) Funding xarajati PnL@ML (funding bilan) Holat
A strategiyasi +3025% -185.6% +2839% ~6% yeydi
B strategiyasi +1650% -74.3% +1576% ~4.5% yeydi
C strategiyasi +900% -30.4% +870% ~3% yeydi

Birinchi qarashda bu chidab bo'ladigandek ko'rinadi: funding yakuniy PnL@ML'ning 3-6%'ini yeydi. Lekin bu — o'rtacha funding rate. Yuqori stavkalarda nima bo'lishini ko'raylik.

Funding rate doimiy kattalik emas

Odatiy 0,01% funding rate — median qiymat. Aslida stavkalar o'zgarib turadi:

Bozor fazasi Odatiy funding rate 55x'da 8 soatga 55x'da kuniga
Tinch bozor 0.005% 0.275% 0.825%
Normal 0.01% 0.55% 1.65%
O'sish trendi 0.03% 1.65% 4.95%
Ekstremal o'sish 0.1% 5.50% 16.5%
Flash pump 0.5% 27.5%

O'sish bozorida (0,03%) 55x leverage'da: long pozitsiyadagi bir kun faqat funding uchun kapitalning 4,95%'ini yeydi.

Faol kunga PnL va kunlik funding solishtiruvi

Mana asosiy hisob-kitob — kunlik xarajatlarga nisbatan strategiyaning kunlik daromadi:

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

Bunday raqamlar bilan funding kritik emasdek ko'rinadi. Lekin bu — o'rtacha qiymatlar. Haqiqiy muammo boshqa joyda.

Haqiqiy muammo: drawdown paytidagi funding

Leverage, drawdown duration, and funding impact surface

Funding xarajatlari pozitsiya ochiq turgan vaqtda uzluksiz to'planadi — drawdown davrlarida ham. Masalan: 0,9% maksimal drawdown (A strategiyasi) 55x leverage'da quyidagicha bo'ladi:

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

Bu allaqachon likvidatsiya chegarasida turibdi. Endi funding'ni qo'shing:

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

Agar drawdown 0,01% funding rate'da 3 kun davom etsa:

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\%

Jami: 49.5%+4.95%=54.45%49.5\% + 4.95\% = 54.45\% — standart 50% maintenance margin'da likvidatsiya.

Funding'ni hisobga olgan xavfsiz leverage formulasi

Lsafe=Target DDFunding bufferMaxDDL_{safe} = \frac{\text{Target DD} - \text{Funding buffer}}{|\text{MaxDD}|}

bu yerda Funding buffer — drawdown'ning odatiy davomiyligi davomidagi kutilayotgan funding:

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

Bu rekursiv tenglama (funding buffer LL'ga bog'liq). Yechimi:

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)

Xulosa: odatiy funding rate'da A strategiyasi uchun xavfsiz leverage 55x emas, 50x. Yuqori funding'da — 42x. PnL@ML'dagi farq:

  • Sodda: 55%×55=+3025%55\% \times 55 = +3025\%
  • Funding bilan (0,01%): 55%×50165%=+2585%55\% \times 50 - 165\% = +2585\%
  • Funding bilan (0,03%): 55%×42400%=+1910%55\% \times 42 - 400\% = +1910\%

Funding'ni backtest'larga amaliy integratsiya qilish

Backtest'larda funding rate'larni hisobga olish ixtiyoriy emas — bu zaruriyat. Mana minimal implementatsiya:

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

Yaxshi qurilgan backtesting dvigatelida funding rate'lar avtomatik ravishda yuklanadi va har bir trade'ga qo'llaniladi. Bu real manzarani beradi — va bu ko'pincha xohlagandan ancha kam yoqimli bo'ladi.

Realistik leverage diapazoni

Funding rate regimes and safe leverage comparison

Misol tariqasida — funding rate turli MaxDD darajalarida xavfsiz leverage'ga qanday ta'sir qilishini ko'rsatamiz:

Funding rejimi O'rtacha stavka DD=0.9%'da MaxLev DD=17%'da MaxLev
Past (0.005%) 0.005% 53x 3x
Odatiy (0.01%) 0.01% 50x 3x
Yuqori (0.03%) 0.03% 42x 3x
Juda yuqori (0.05%) 0.05% 36x 2x

Asosiy kuzatuv: past drawdown'li strategiyalar (A, B strategiyalari) uchun funding samarali leverage'ni sezilarli darajada kamaytiradi. Yuqori drawdown'li strategiyalar (C strategiyasi) uchun funding ta'siri minimal — chunki leverage allaqachon 3x bilan cheklangan.

Funding ta'sirini minimallashtirish strategiyalari

1. Hedge-neytral pozitsiyalar

Funding rate fyuchers narxi va spot narxi o'rtasidagi farq bilan aniqlanadi. Agar strategiyangiz spot orqali hedging qilishga imkon bersa — funding neytrallashadi:

  • Long fyuchers + short spot = funding'ga nisbatan 0 sof ekspozitsiya
  • Lekin: kriptoda spot'ni short qilish cheklangan (margin hisob yoki lending talab qilinadi)

2. Funding pastroq bo'lgan birjalarga o'tish

Turli birjalarda bir xil aktiv uchun turli funding rate'lar mavjud. Funding arbitrajini kuzatish alohida strategiya bo'lib, u Funding Rate Arbitrage Across Exchanges maqolasida batafsil tasvirlangan.

3. Kirishlarni vaqtlash

Funding belgilangan vaqtlarda to'lanadi (00:00, 08:00, 16:00 UTC). Agar trade to'lovdan bir daqiqa oldin yopilsa — funding olinmaydi. Bu mikro-optimallashtirish, lekin 58x leverage'da bitta o'tkazib yuborilgan to'lovdan 0,58% tejash muhim ahamiyatga ega.

4. Dinamik leverage

Qat'iy leverage o'rniga moslashuvchan leverage'dan foydalaning:

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

Funding yuqori bo'lganda, leverage avtomatik ravishda pasayadi va xarajatlarni cheklaydi.

Funding'ni pipeline'ga integratsiya qilish bo'yicha tavsiyalar

Funding rate'lar backtesting pipeline'ining majburiy qismi bo'lishi kerak:

  • Har bir simvol uchun tarixiy funding rate'larni yuklash
  • Har bir trade'ni ushlab turish davridagi real funding'ga moslab tuzatish
  • Funding buferi bo'lgan formula bo'yicha MaxLev'ni hisoblash
  • Hisobotda ikkala raqamni ham ko'rsatish: funding'siz va funding bilan PnL@ML

Amaliy qoida: agar strategiya 0,03% funding rate'da (bu bull bozorida vaqtning 20-30%'ida yuz beradi) foydali bo'lishni to'xtatsa — u yuqori leverage bilan productionga tayyor emas. Leverage'ni strategiya eng yomon funding stsenariysida ham foydali bo'ladigan darajaga kamaytiring.

Xulosa

Funding rate'lar — leverage'ga solinadigan soliq. Haqiqiy soliq kabi, ular kichik summalarda sezilmaydi va katta summalarda halokatli bo'ladi.

Uchta qoida:

  1. PnL@ML'ni har doim funding'ni hisobga olgan holda hisoblang. Funding'siz formula — marketing, savdo emas. Tarixiy funding rate'larni yuklang va har bir trade'dan real xarajatlarni ayiring.

  2. Xavfsiz leverage formulasidan foydalaning:

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

  1. 3x funding'da test qiling. Agar strategiya 0,03% funding'da (faqat 0,01%'da emas) foydali bo'lsa — u barqaror. Bo'lmasa — leverage'ni kamaytiring.

50-60x leverage'dagi chiroyli PnL raqamlari — yoqimli illyuziya. Funding rate'lar — sovuq haqiqat. Ular orasida backtest va savdo hisobi o'rtasidagi farq yotibdi.

Yuqori leverage'dagi drawdown va volatility drag matematikasi haqida ko'proq ma'lumot uchun — Loss-Profit Asymmetry maqolamizga qarang. Funding'ga moslashtirilgan natijalar uchun ishonch intervallarini qanday olish haqida — Monte Carlo Bootstrap for Backtests.


Foydali havolalar

  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

Iqtibos

@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

Bozordan bir qadam oldinda bo'ling

Sun'iy intellekt savdo tahlillari, bozor tahlili va platforma yangiliklari uchun bizning xabarnomaga obuna bo'ling.

Biz sizning maxfiyligingizni hurmat qilamiz. Istalgan vaqtda obunadan chiqishingiz mumkin.