Projeler

Finansal Strateji Backtesting Motoru

Python + Backtrader ile geliştirilen, finansal stratejileri tarihsel veriler üzerinde test eden backtesting motoru ve web dashboard.

PythonBacktraderPandasNumPyNumbaPlotlyYAMLWeb Dashboard

G-Risk, yatırım stratejilerinin tarihsel piyasa verileri üzerinde test edilmesine olanak tanıyan Python tabanlı bir backtesting motoru ve web dashboard panelidir. Proje, finansal karar vericilerin strateji doğrulamasını sistematik bir süreç haline getirmelerini sağlamak amacıyla iki ayrı iterasyon halinde geliştirildi.

Problem

Yatırım stratejisi geliştiren analistler ve portföy yöneticileri için temel sorun şuydu: bir stratejinin gerçek piyasada nasıl performans göstereceğini önceden test etmek son derece zordu. Mevcut araçlar ya çok basitti ve özel strateji mantığını ifade edemiyordu, ya da büyük veri setlerinde kabul edilemez biçimde yavaş çalışıyordu. Strateji parametrelerini değiştirip tekrar test etmek zaman alıcı bir döngüydü. Sonuçları görselleştirmek ve farklı stratejileri karşılaştırmak için ayrı araçlara ihtiyaç duyuluyordu.

Çözüm

Backtrader kütüphanesi temel motor olarak seçildi. Strateji tanımlamaları YAML konfigürasyon dosyalarına taşındı; bu sayede analistler Python kodu yazmadan parametre setlerini değiştirebilir ve yeni stratejiler tanımlayabilir. Büyük tarihsel veri setlerinde hesaplama darboğazlarını ortadan kaldırmak için Numba ile JIT derleme entegre edildi. Sonuçlar Plotly tabanlı interaktif grafiklerle görselleştiriliyor; web dashboard üzerinden farklı strateji çalışmaları yan yana karşılaştırılabiliyor. Projenin ikinci versiyonunda mimari yeniden düzenlendi, hesaplama performansı artırıldı ve kullanıcı arayüzü iyileştirildi.

Öne Çıkan Özellikler

  • YAML Tabanlı Strateji Konfigürasyonu: Giriş/çıkış kuralları, pozisyon büyüklüğü ve risk parametreleri YAML dosyasında tanımlanır; kod değişikliği gerekmez
  • Backtrader Motoru: Komisyon, slipaj ve çoklu pozisyon yönetimi dahil gerçekçi piyasa simülasyonu
  • Numba JIT Optimizasyonu: Kritik hesaplama döngülerinde CPU düzeyinde hız artışı; büyük veri setleri için pratik çalışma süreleri
  • Pandas + NumPy Veri İşleme: Çok kaynaklı tarihsel fiyat verilerinin temizlenmesi, yeniden örneklenmesi ve özellik üretimi
  • Plotly İnteraktif Grafikler: Equity curve, drawdown analizi, işlem geçmişi ve risk metrikleri; yakınlaştırılabilir ve filtrelenebilir görünümler
  • Web Dashboard: Farklı strateji çalışmalarını karşılaştıran özet tablo; performans metrikleri ve backtest parametreleri yan yana

Teknik Altyapı

Python ekosistemi bu proje için doğal bir seçimdi: finans kütüphaneleri açısından en zengin ortam olmakla birlikte Backtrader, Pandas ve Numba’nın aynı dilde birlikte çalışması geliştirme karmaşıklığını azalttı. Numba’nın @jit dekoratörü, vektörel hesaplamalar için NumPy’ın tek başına ulaşamadığı hız düzeylerine erişilmesini sağladı. YAML konfigürasyon katmanı, stratejinin teknik tanımını uygulama kodundan ayırarak farklı parametre setlerini hızla denemeyi mümkün kıldı. Plotly, statik grafik kütüphanelerine kıyasla analistlerin sonuçları etkileşimli olarak araştırmasına olanak tanıması nedeniyle tercih edildi.

Sonuçlar

G-Risk, strateji test döngüsünü manüel süreçlere kıyasla dramatik biçimde kısalttı. YAML tabanlı yapı sayesinde analistler yeni bir strateji hipotezini dakikalar içinde konfigüre edip çalıştırabiliyor. Numba optimizasyonu, daha önce saatler süren geniş tarihsel veri setleri üzerindeki testleri dakikalara indirdi. İki iterasyonlu geliştirme süreci her aşamada gerçek kullanıcı geri bildirimiyle yönlendirildi; sonuçta hem teknik sağlamlığı hem de pratik kullanılabilirliği bir arada sunan bir araç ortaya çıktı.