Fonlama Oranları Kaldıracınızı Öldürür: Neden PnL×50x Bir Kurgu
Diyelim ki bir strateji optimize ettiniz. Backtest sonucu PnL +55%, MaxDD -0.9% gösteriyor. MaxLev hesaplıyorsunuz: . Çarpıyorsunuz: . İki yılda yüzde üç bin. Zihinsel olarak Lamborghini'nizi seçmeye başlıyorsunuz.
Üç ay sonra üretimde sermayeniz başlangıç noktasının altına düşüyor. Strateji backtest ile birebir aynı çalışıyor — aynı girişler, aynı çıkışlar, aynı düşüş. Ama para kaybediyorsunuz. Her gün. Sürekli olarak.
Nedeni: fonlama oranları. Backtest'inizin hesaba katmadığı — ya da yanlış hesaba kattığı — görünmez bir ücret.
Fonlama Oranları Nasıl Çalışır
Kripto para borsalarında sürekli swapların vade tarihi yoktur. Vadeli fiyatı spot fiyata bağlı tutmak için borsalar, uzun ve kısa pozisyonlar arasında periyodik ödemeleri içeren bir fonlama mekanizması kullanır.
Binance/Bybit'teki mekanik:
- Fonlama her 8 saatte bir ödenir (00:00, 08:00, 16:00 UTC)
- Fonlama oranı, vadeli fiyat ile spot fiyat arasındaki fark tarafından belirlenir
- Fonlama oranı pozitifse — uzunlar kısalara öder
- Negatifse — kısalar uzunlara öder
- Tipik oran: (8 saatte bir (aşırı koşullarda 'ye ulaşabilir)
Tek ödeme formülü:
kaldıracı ve sermayesi ile:
Backtestler Neden Kaldıraç Hakkında Yalan Söyler
Standart MaxLev (Maksimum Kaldıraç) metriği, düşüşün hedef seviyeyi aşmadığı teorik kaldıraç tavanıdır:
Bu formül kaldıraca bağlı maliyetleri hesaba katmaz. 1x kaldıraçta fonlama oranı önemsiz bir ücrettir. 58x kaldıraçta ise bir felakettir.
Doğrusal ve İkinci Dereceden Maliyetler
İşlem komisyonları (maker/taker ücretleri) doğrusaldır — işlem hacmiyle orantılıdır ve kaldıraçtan bağımsızdır. Fonlama oranları da pozisyon büyüklüğüne göre doğrusaldır, ancak birim sermaye başına yeniden hesaplandığında kaldıraçla orantılı olarak büyürler:
gün elde tutma süresi ve günde 3 ödeme ile:
Yeniden Hesaplama: Fonlamayı Hesaba Katan Strateji Örnekleri
Örnek olarak, farklı risk profillerine sahip üç varsayımsal stratejiyi ele alalım. Parametreler: sürekli vadeli işlemler, 25 aylık test süresi, 8 saatte bir 0.01%'lik tipik fonlama oranı.
Orijinal Sonuçlar (Fonlama Olmadan)
| Strateji | PnL | MaxDD | MaxLev | PnL@ML | İşlemler | İşlem süresi |
|---|---|---|---|---|---|---|
| Strateji A | +55% | -0.9% | 55x | +3025% | ~500 | ~15% |
| Strateji B | +25% | -0.75% | 66x | +1650% | ~40 | ~5% |
| Strateji C | +300% | -17% | 3x | +900% | ~400 | ~45% |
Fonlama Maliyetinin Hesaplanması
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
Hesaplamalar:
a_funding = funding_cost(55, 0.15, 750)
b_funding = funding_cost(66, 0.05, 750)
c_funding = funding_cost(3, 0.45, 750)
Fonlamayı Hesaba Katan Sonuçlar
| Strateji | PnL@ML (fonlama yok) | Fonlama maliyeti | PnL@ML (fonlama ile) | Durum |
|---|---|---|---|---|
| Strateji A | +3025% | -185.6% | +2839% | ~%6 yiyor |
| Strateji B | +1650% | -74.3% | +1576% | ~%4.5 yiyor |
| Strateji C | +900% | -30.4% | +870% | ~%3 yiyor |
İlk bakışta bu tolere edilebilir görünüyor: fonlama, PnL@ML'nin yalnızca %3-6'sını yiyor. Ancak bu ortalama fonlama oranı. Yüksek oranlarda ne olduğuna bakalım.
Fonlama Oranı Sabit Değil
Tipik 0.01%'lik fonlama oranı bir medyan değeridir. Gerçekte oranlar dalgalanır:
| Piyasa Aşaması | Tipik fonlama oranı | 55x'te 8 saatte | 55x'te günde |
|---|---|---|---|
| Sakin piyasa | 0.005% | 0.275% | 0.825% |
| Normal | 0.01% | 0.55% | 1.65% |
| Yükseliş trendi | 0.03% | 1.65% | 4.95% |
| Aşırı yükseliş | 0.1% | 5.50% | 16.5% |
| Ani yükseliş | 0.5% | 27.5% | — |
Yükseliş piyasasında (0.03%) 55x kaldıraçta: uzun pozisyonda tek bir gün, yalnızca fonlamada sermayenin %4.95'ine mal olur.
Aktif Gün Başına PnL ile Gün Başına Fonlama Karşılaştırması
İşte temel hesaplama — günlük strateji getirisi ile günlük maliyetler:
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
Bu sayılarla fonlama kritik görünmüyor. Ancak bunlar ortalama değerler. Sorun başka yerde.
Asıl Sorun: Düşüş Döneminde Fonlama

Fonlama maliyetleri pozisyon açıkken sürekli birikir — düşüş dönemleri dahil. Örnek olarak: Strateji A'nın %0.9'luk maksimum düşüşü 55x kaldıraçta şu hale gelir:
Bu zaten likidasyonun eşiğindedir. Şimdi fonlamayı ekleyin:
Düşüş, 0.01%'lik fonlama oranıyla 3 gün sürerse:
Toplam: — standart %50 bakım marjında likadasyon.
Fonlamayı Hesaba Katan Güvenli Kaldıraç Formülü
burada Fonlama tamponu, tipik düşüş süresi boyunca beklenen fonlamadır:
Bu, özyinelemeli bir denklemdir (fonlama tamponu 'ye bağlıdır). Çözüm:
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)
Sonuç: tipik fonlama oranında Strateji A için güvenli kaldıraç 55x değil 50x'tir. Yüksek fonlamada ise 42x. PnL@ML farkı:
- Naif:
- Fonlamayla (0.01%):
- Fonlamayla (0.03%):
Backtest'e Fonlamanın Pratik Entegrasyonu
Backtest'lerde fonlama oranlarını hesaba katmak isteğe bağlı değil — bir zorunluluktur. İşte minimal bir uygulama:
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
İyi kurulmuş bir backtest motorunda fonlama oranları yüklenir ve her işleme otomatik olarak uygulanır. Bu gerçekçi bir tablo sunar — ve çoğu zaman istenilenden daha az güllük olur.
Gerçekçi Kaldıraç Aralığı

Bir örnek olarak — fonlama oranının farklı MaxDD seviyelerinde güvenli kaldıracı nasıl etkilediği:
| Fonlama rejimi | Ortalama oran | DD=%0.9'da MaxLev | DD=%17'de MaxLev |
|---|---|---|---|
| Düşük (0.005%) | 0.005% | 53x | 3x |
| Tipik (0.01%) | 0.01% | 50x | 3x |
| Yüksek (0.03%) | 0.03% | 42x | 3x |
| Çok yüksek (0.05%) | 0.05% | 36x | 2x |
Temel gözlem: düşük düşüşlü stratejilerde (Strateji A, B) fonlama, efektif kaldıracı önemli ölçüde azaltır. Yüksek düşüşlü stratejilerde (Strateji C), fonlamanın etkisi minimaldir — çünkü kaldıraç zaten 3x ile sınırlıdır.
Fonlama Etkisini Minimize Etme Stratejileri
1. Hedge-Nötr Pozisyonlar
Fonlama oranı, vadeli fiyat ile spot fiyat arasındaki fark tarafından belirlenir. Stratejiniz spot üzerinden hedging'e izin veriyorsa — fonlama nötralize edilir:
- Uzun vadeli işlem + kısa spot = fonlamaya karşı 0 net maruz kalma
- Ancak: kripto'da spotu kısaltmak sınırlıdır (marjin hesabı veya borç verme gerektirir)
2. Daha Düşük Fonlamalı Borsalara Geçiş
Farklı borsaların aynı varlık için farklı fonlama oranları vardır. Fonlama arbitrajını izlemek, Borsalar Arası Fonlama Oranı Arbitrajı makalesinde ayrıntılı olarak açıklanan ayrı bir stratejidir.
3. Giriş Zamanlaması
Fonlama sabit zamanlarda ödenir (00:00, 08:00, 16:00 UTC). Bir işlem ödemeden bir dakika önce kapanırsa — fonlama alınmaz. Bu bir mikro optimizasyon, ancak 58x kaldıraçta atlanan tek ödemeden 0.58% tasarruf etmek önemlidir.
4. Dinamik Kaldıraç
Sabit kaldıraç yerine uyarlanabilir kaldıraç kullanın:
Fonlama yüksek olduğunda kaldıraç otomatik olarak azalır, maliyetleri sınırlar.
Fonlamayı Pipeline'a Entegre Etmek İçin Öneriler
Fonlama oranları, backtest pipeline'ının zorunlu bir parçası olmalıdır:
- Her sembol için tarihsel fonlama oranlarını yükleyin
- Her işlemi, elde tutma süresi boyunca gerçek fonlama için ayarlayın
- Fonlama tamponu ile formülü kullanarak MaxLev hesaplayın
- Raporda her iki sayıyı da gösterin: fonlama olmadan ve fonlamayla PnL@ML
Pratik kural: bir strateji 0.03%'lik fonlama oranında (boğa piyasasında zamanın %20-30'unda gerçekleşen) kârlı olmayı bırakırsa — yüksek kaldıraçta üretime hazır değildir. Kaldıracı, stratejinin en kötü fonlama senaryosunda bile kârlı olduğu bir seviyeye düşürün.
Sonuç
Fonlama oranları, kaldıraç üzerindeki bir vergidir. Gerçek bir vergi gibi, küçük miktarlarda fark edilmez ve büyük miktarlarda yıkıcıdır.
Üç kural:
-
Her zaman fonlamayı hesaba katarak PnL@ML hesaplayın. Fonlama olmadan formula, trading değil pazarlamadır. Tarihsel fonlama oranlarını yükleyin ve her işlemden gerçek maliyetleri çıkarın.
-
Güvenli kaldıraç formülünü kullanın:
- 3x fonlamada test edin. Strateji, 0.03%'lük fonlamada (yalnızca 0.01% değil) kârlıysa — sağlamdır. Değilse — kaldıracı azaltın.
50-60x kaldıraçtaki güzel PnL sayıları hoş bir yanılsamadır. Fonlama oranları soğuk gerçektir. İkisi arasında backtest ile işlem hesabı arasındaki fark yatar.
Yüksek kaldıraçta düşüşlerin ve oynaklık sürüklenmesinin matematiği hakkında daha fazlası için — Kayıp-Kâr Asimetrisi makalemize bakın. Fonlama ayarlı sonuçlar için güven aralıklarının nasıl elde edileceği hakkında — Backtest'ler için Monte Carlo Bootstrap.
Faydalı Bağlantılar
- Binance — Fonlama Oranı Geçmişi
- Binance — Fonlama Oranlarına Giriş
- Bybit — Fonlama Oranlarını Anlama
- Deribit Insights — Sürekli Swapların Gizli Maliyeti
- Lopez de Prado — Finansal Makine Öğrenmesinde İlerlemeler, Bölüm 14: Backtest İstatistikleri
- Kevin Davey — Kazanan Algoritmik İşlem Sistemleri Oluşturma: İşlem Maliyetleri
Alıntı
@article{soloviov2026fundingratesleverage,
author = {Soloviov, Eugen},
title = {Funding Rates Kill Your Leverage: Why PnL×50x Is a Fiction},
year = {2026},
url = {https://marketmaker.cc/tr/blog/post/funding-rates-kill-leverage},
version = {0.1.0},
description = {Binance/Bybit'teki fonlama oranları, güzel yüksek kaldıraçlı backtest sonuçlarını nasıl garantili kayba dönüştürür. Formüller, gerçek stratejilerin yeniden hesaplanması ve fonlamanın kâra zarar vermediği maksimum kaldıraç seviyesi.}
}
Yazarlar
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.