Backtesting — Stratejiyi Gecmis Verilerle Test Etme

🟣 Ileri Seviye · 2025-03-25

Backtesting, bir trading stratejisini gecmis fiyat verileri uzerinde simule ederek “bu strateji gecmiste nasil sonuc verirdi?” sorusuna cevap aramaktir.

Backtesting Nedir?

Diyelim su grid ayarlarini dusunuyorsunuz:

  • SOL, grid $120-$140, 20 seviye, $50 order size

Soru su: Bu ayarlar son 30 gunde ne kadar kar ederdi?

Backtesting, gecmis fiyat verilerini alip bu grid’i sanal olarak calistirarak cevap verir. Her fiyat hareketinde:

  • Fiyat grid seviyesinin altina dustu mu? → Sanal alim
  • Fiyat bir ust seviyeye cikti mi? → Sanal satim (TP)
  • Toplam kar, zarar, fee, drawdown hesaplama

Neden Onemli?

1. Parametre optimizasyonu: Farkli grid_low, grid_high, seviye sayisi kombinasyonlarini test ederek en iyi parametreleri bulabilirsiniz.

2. Risk tahmini: Maksimum drawdown, en uzun karsiz donem, toplam fee yuku gibi metrikleri onceden gorebilirsiniz.

3. Beklenti yonetimi: “Ayda %5 kar ederim” gibi gercekci olmayan beklentileri engellersiniz.

4. Strateji karsilastirma: Dar aralik vs genis aralik, 10 seviye vs 30 seviye gibi alternatifleri veriye dayali kiyaslayabilirsiniz.

Backtesting Nasil Yapilir?

Adim 1: Gecmis veri toplayin

OHLCV (Open, High, Low, Close, Volume) mum verileri gerekir. Kaynaklar:

  • Borsa API’leri (Binance, Pacifica)
  • TradingView export
  • CoinGecko / CoinMarketCap

En az 30 gunluk veri, ideal olarak 90+ gun kullanin.

Adim 2: Grid parametrelerini belirleyin

Test etmek istediginiz parametreleri sec:

  • Grid low ve high
  • Seviye sayisi
  • Order size
  • Leverage
  • Fee orani

Adim 3: Simulasyon calistirin

Her mum icin:

  1. Fiyat grid seviyesinin altina dustuyse → alim emri dolduruldu say
  2. Doldurulan seviyenin TP’si (ust seviye) fiyata ulastiysa → satim dolduruldu say
  3. Her islem icin fee hesapla
  4. PnL, drawdown, pozisyon buyuklugu kaydet

Adim 4: Sonuclari analiz edin

Onemli metrikler:

MetrikNe Gosterir
Toplam Net PnLStrateji karli mi zararli mi
Max DrawdownEn kotu donemde ne kadar kaybedersiniz
Toplam TradeNe siklikta islem olusuyor
Win RateKarli trade yuzdesi
Fee / Kar OraniFee’ler karin yuzde kacini yiyor
Sharpe RatioRisk-ayarli getiri

Gridera’da Backtesting

Gridera’nin paper mode’u canli fiyatlarla ileriye donuk test yapar (forward testing). Gecmise donuk backtesting icin:

  1. Paper mode ile forward test: Botu paper modda calistirin, gercek piyasa kosullarinda test edin. En gercekci yontem.

  2. Learning Engine: Gridera’nin ogrenme motoru, gecmis session verilerinden otomatik olarak ogrenir ve gelecek parametreleri icin oneriler uretir. Bu dolayili bir backtesting mekanizmasidir.

  3. Grid Kar Hesaplayici: Academy’deki hesaplayici ile farkli parametrelerin tahmini sonuclarini hizlica karsilastirabilirsiniz.

Backtesting’in Sinirlari

1. Gecmis gelecegi garanti etmez: Son 30 gunde iyi calisan parametreler gelecek 30 gunde kotu calisabilir.

2. Slippage dahil degil: Backtesting’de emirler tam fiyattan doldurulur. Gercekte slippage olabilir.

3. Likidite farki: Gecmiste likidite yuksek olabilir ama gelecekte dusebilir.

4. Overfitting riski: Parametreleri gecmis veriye cok fazla optimize ederseniz (overfitting), gelecekte kotu performans gosterirler.

5. Market rejim degisimi: Yatay piyasa verileriyle optimize ettiginiz grid, trend piyasasinda basarisiz olur.

Backtesting Yapilmamasi Gereken Hatalar

  • Sadece karli donemleri secmek (cherry-picking)
  • Fee’leri hesaba katmamak
  • Cok kisa veri kullanmak (1-2 gun yetersiz)
  • Tek bir parametreyi sonuca gore surekli degistirmek
  • Sonuclari garantili kar olarak kabul etmek

Ozet

  • Backtesting, stratejiyi gecmis verilerle test ederek risk ve kar tahminleri yapar
  • Parametre optimizasyonu ve beklenti yonetimi icin kritiktir
  • Paper mode en gercekci test yontemidir (canli veri, simule islem)
  • Gecmis verilere asiri guvenmeyin — overfitting ve rejim degisimi riskleri var
  • Fee, slippage ve likiditeyi her zaman hesaba katin

Sonraki Adim

AI ile Grid Ayarlama ile otomatik parametre optimizasyonunu ogrenin.

✨ Bu makale faydali oldu mu?

Sorularini Discord'ta sor →