APOLLOHELIX

Makale · 3 dk okuma

Kripto Futures'ta Backtest ve Sinyal Değerlendirme: Fonlama, Kaldıraç, Tasfiye

Kripto vadeli (perpetual futures) işlemlerde backtest nasıl yapılır? Fonlama oranı, kaldıraç, tasfiye fiyatı, komisyon ve sinyalleri güvenle değerlendirme yöntemleri.

Kripto piyasasında vadeli işlemler (futures), özellikle vadesiz sürekli kontratlar (perpetual), hacmin büyük kısmını oluşturur. Kaldıraç sayesinde küçük sermayeyle büyük pozisyon açılabilir; ama aynı kaldıraç, spot piyasada olmayan bir riski getirir: tasfiye (pozisyonun zorla kapatılması). Bu yüzden spot için yazılmış bir backtest kodu futures'ta yanıltıcıdır. Bu yazı futures stratejilerini doğru test etmenin ve dışarıdan gelen sinyalleri doğru okumanın yolunu anlatır.

Kaldıraçlı işlemler başlangıç sermayenin tamamını kaybettirebilir. Bu yazı eğitim amaçlıdır, yatırım tavsiyesi değildir.

Spot ve futures backtest'i arasındaki farklar

  • Kaldıraç ve teminat: Pozisyon büyüklüğü sermayenin katıdır; kayıplar da katlanır.
  • Tasfiye: Fiyat belirli bir seviyeye gelince pozisyon kapanır; strateji "bekleyip toparlanma" şansı bulamaz.
  • Fonlama oranı (funding): Perpetual kontratlarda uzun ve kısa taraflar belirli aralıklarla (çoğu borsada 8 saatte bir) birbirine ödeme yapar. Pozisyonu uzun tutan strateji bu maliyeti taşır ya da kazanır.
  • Mark fiyat ve son fiyat: Tasfiye genellikle son işlem fiyatına değil mark fiyata göre hesaplanır; ani iğne hareketleri farklı sonuç doğurur.
  • 7/24 piyasa: Hafta sonu ve gece hareketleri de stratejinin parçasıdır. Bot altyapısı için kripto botlarını 7/24 çalıştırma yazısına bak.

Tasfiye fiyatını backtest'e kat

Basit bir yaklaşımla, izole marjinli uzun pozisyonda tasfiye fiyatı şöyle tahmin edilir (bakım marjı oranı borsaya ve kontrata göre değişir; aşağıdaki değer yalnızca örnektir):

def liquidation_price_long(entry: float, leverage: float, maint_margin: float = 0.005) -> float:
    """Izole marjin, uzun pozisyon icin yaklasik tasfiye fiyati (ogretici)."""
    return entry * (1 - 1 / leverage + maint_margin)

def liquidation_price_short(entry: float, leverage: float, maint_margin: float = 0.005) -> float:
    return entry * (1 + 1 / leverage - maint_margin)

for lev in (2, 5, 10, 20):
    liq = liquidation_price_long(100.0, lev)
    print(f"{lev:>2}x kaldirac -> tasfiye ~ {liq:.2f}  (giriste -%{(1 - liq / 100) * 100:.1f})")

Çıktının mantığı: 10x kaldıraçta fiyat yaklaşık %9,5 ters giderse marjın biter; 20x'te bu yaklaşık %4,5'tir. Kripto'da bir günde %5-10 hareket nadir değildir. Backtest'te bir mumun düşük (low) / yüksek (high) değeri tasfiye fiyatına değdiyse pozisyonu o mumda kapat; sadece kapanışa bakarsan iğneleri kaçırırsın ve sonuç gerçekçi olmaz.

Fonlama ve komisyonu ekle

Fonlama oranı pozitifken uzun taraf kısa tarafa öder. Sürekli uzun tutan bir strateji için bu bir maliyettir:

import pandas as pd

def net_pnl(price_ret: pd.Series, position: pd.Series, funding: pd.Series,
            taker_fee: float = 0.0005, leverage: float = 3.0) -> pd.Series:
    """price_ret: mum getirisi, position: -1/0/+1, funding: mum basina fonlama orani (+ = uzun oder)."""
    gross = position.shift(1).fillna(0) * price_ret * leverage
    fees = position.diff().abs().fillna(0) * taker_fee * leverage    # pozisyon degisince ucret
    carry = -position.shift(1).fillna(0) * funding * leverage        # uzun odeme yapar
    return gross - fees + carry

Örnekteki oranlar öğretici varsayımdır; gerçek komisyon ve fonlama borsaya, üyelik seviyesine ve döneme göre değişir. Ana ilke: her zaman brüt ve fonlama+komisyon sonrası net sonucu birlikte göster. Maliyetlerin etkisi için komisyon ve kayma yazısına bak.

Sinyalleri güvenle değerlendirme

Kaldıraçlı piyasada "sinyal" paylaşan kaynakların çoğu şu hataları yapar. Bir sinyale güvenmeden önce şunları sor:

  1. Doğrulanabilir geçmiş var mı? Paylaşılan sonuçlar zaman damgalı ve değiştirilemez bir kayıtla mı tutuluyor, yoksa sonradan seçilmiş ekran görüntüleri mi?
  2. Net mi, brüt mü? Komisyon, fonlama ve kayma sonrası sonuç gösteriliyor mu?
  3. Kaldıraç belirtilmiş mi? Aynı sinyalde 3x ile 20x'in sonucu tamamen farklıdır; tasfiye riski sinyalin içinde konuşulmalı.
  4. Stop ve pozisyon büyüklüğü var mı? Stop'suz sinyal, tasfiyeye giden sinyaldir.
  5. Garanti vaat ediyor mu? "Kesin kazanç", "%X garanti" diyen her kaynak uzak durulması gereken bir işarettir.

Sinyallerin nasıl okunacağına dair genel çerçeve için yapay zekâ sinyallerini okuma rehberine bak. ApolloHelix'te sinyaller, bağımsız ve zaman damgalı bir paper (sanal) doğrulama süreci tamamlanmadan yayınlanmaz; bu sürecin mantığı backtest ve paper trading rehberinde anlatılıyor.

Güvenli bir futures test akışı

  1. Önce spot mantığıyla stratejinin kenarı (edge) var mı bak; kaldıraç kötü bir stratejiyi iyi yapmaz, sadece kaybı büyütür.
  2. Backtest'e tasfiye, fonlama ve komisyon ekle; mum içi low/high'ı kullan.
  3. Düşük kaldıraçla (örneğin 1x-3x) paper aşamasına geç; test ağı (testnet) bunun için idealdir.
  4. Gerçek sermayeye geçersen yalnızca kaybetmeyi göze alabileceğin küçük bir tutarla başla. Risk yönetimi ilkeleri için risk yönetimi rehberine ve kaldıraç yazımıza bak.

Bu yazı eğitim amaçlıdır, yatırım tavsiyesi değildir. Geçmiş sonuçlar geleceği garanti etmez; kaldıraçlı işlem yapmak sermayenin tamamının kaybına yol açabilir.