VectorBT: Python için En Hızlı Backtesting Çerçevesi

VectorBT'ye genel bakış - NumPy ve Numba'nın gücü sayesinde backtesting yaklaşımını değiştiren yenilikçi bir kantitatif analiz kütüphanesi.

VectorBT Genel Bakış

Algotrading ve Python'da ticaret stratejilerini backtesting ile test etmeyle hiç uğraştıysanız, muhtemelen aynı sorunla karşılaşmışsınızdır: hız. Klasik kütüphaneler (örneğin Backtrader veya Zipline), olay tabanlı (event-driven) bir yaklaşım kullanarak geçmiş veriler üzerinde olay olay iterasyon yapar. Bu, mantık yazmak için kullanışlıdır; ancak binlerce kombinasyon üzerinde parametre optimizasyonu söz konusu olduğunda, saatlerce bekleme katlanılmaz hale gelir.

İşte tam burada VectorBT devreye girer — backtesting'e temelden farklı bir yaklaşım uygulayan bir kantitatif analiz kütüphanesi.

VectorBT Nedir?

VectorBT Nedir

VectorBT yalnızca pandas ve NumPy nesneleriyle çalışır ve hesaplamaları hızlandırmak için Numba derleyicisini kullanır. Bu sayede inanılmaz hız ve ölçeklenebilirlik ile her türlü veriyi analiz etmek ve kelimenin tam anlamıyla saniyeler içinde on binlerce strateji test etmek mümkün olur.

Her çubuğu veya tiki sırayla işlemek yerine (geleneksel backtest araçlarının yaptığı gibi), VectorBT karmaşık verileri yapılandırılmış diziler olarak temsil eder. Numba ile birleştirilmiş işlem vektörizasyonu (Python döngülerinin makine koduna derlenmesine izin vererek yol bağımlılığı sorununu çözen), C dili düzeyinde performans sağlar.

Temel Özellikler

VectorBT Temel Özellikler

  • Vektörize Backtesting: Birkaç satır kodla strateji testi. Yavaş Python döngüsü yok.
  • Büyük Ölçekli Optimizasyon: Ticaret stratejinizi aynı anda birçok parametre, zaman dilimi ve varlık üzerinde tek seferde optimize edin.
  • Etkileşimli Görselleştirme: Plotly ve Jupyter Widgets ile yerleşik entegrasyon, Jupyter Notebook'ta fark edilir bir render gecikmesi olmadan doğrudan son derece karmaşık grafikler ve gösterge panelleri (Tableau gibi) oluşturmaya olanak tanır.
  • Kontrol Kaybı Yok: TradingView gibi bulut platformlarının aksine, verileriniz ve algoritmalarınız yalnızca size ait kalır. Aynı zamanda hesaplama performansı, hazır platformlarla karşılaştırılabilir düzeyde hatta çoğu zaman onları geride bırakır.
  • Veri Hazırlama: Makine öğrenimi modelleri için zaman serisi analizi ve özellik mühendisliği konusunda mükemmel bir araç seti.

Nasıl Çalışır (Örnek)

Nasıl Çalışır - Strateji Pipeline

Bitcoin (BTC) üzerinde klasik Çift Hareketli Ortalama Kesişimi (DMAC) stratejisini test etmek istediğimizi varsayalım.

Klasik bir OOP çerçevesinde, bir strateji sınıfı oluşturmanız, her çubukta tetiklenen next() mantığını tanımlamanız ve tüm çubuklar üzerinde iterasyon yapmanız gerekirdi. VectorBT'de her şey çok daha zarif ve hızlıdır:

import vectorbt as vbt

# 1. Fiyat verilerini indir (yerleşik Yahoo Finance indirici kullanılarak)
btc_price = vbt.YFData.download('BTC-USD', start='2019-01-01 UTC', end='2020-01-01 UTC').get('Close')

# 2. Hızlı ve yavaş hareketli ortalamaları hesapla.
# Tüm kombinasyonları test etmek için bir anda periyot DİZİSİ geçirebilirsiniz!
fast_ma = vbt.MA.run(btc_price, [10, 20], short_name='fast')
slow_ma = vbt.MA.run(btc_price, [30, 30], short_name='slow')

# 3. Giriş ve çıkış sinyalleri oluştur (çizgi kesişimi)
entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)

# 4. Alınan sinyallere dayalı bir portföy oluştur ve sonucu gör
pf = vbt.Portfolio.from_signals(btc_price, entries, exits)

print(pf.total_return())

Bu örnekte DMAC stratejisinin birden fazla varyasyonunu tek bir anda test ettik: (10, 30) ve (20, 30) kombinasyonları. Sonuç (sütun biçiminde) her parametre varyantı için getiriyi gösterir:

fast_window  slow_window
10           30             0.848840
20           30             0.543411
Name: total_return, dtype: float64

Ethereum, Solana ve bir düzine daha fazla coin eklemek ister misiniz? Fiyatlarını tek bir DataFrame'de birleştirin. Farklı zaman aralıklarını test etmek ister misiniz? range_split fonksiyonunu kullanın. Vektör gösterimi, boyutları neredeyse sınırsız biçimde çoğaltmanıza olanak tanır (yeterli RAM olduğu sürece).

VectorBT PRO

VectorBT PRO Elite Araçlar

Kütüphanenin ticari bir sürümü de mevcuttur — VectorBT PRO, daha da güçlü araçlar ekler. Paralel işleme, gelişmiş portföy optimizasyonu, fiyat örüntüsü tanıma, olay projeksiyonu, marjin ticareti ve limit emir hesaplama ile gerçek ticaret için önemli yüzden fazla metrik sunar.

Neden VectorBT Kullanmalısınız?

Yalnızca tek bir enstrümanda tek bir stratejiyi "çalıştırmanız" gerekiyorsa, standart çerçeveler yeterli olabilir. Ancak hedefiniz keşif analizi, istatistiksel örüntüler (alfa) bulmak, aynı anda binlerce enstrümanda hipotezleri test etmekse, VectorBT sizin için gerçek bir keşif olacaktır.

Bu, ticarete uyarlanan veri bilimcilerinin bir aracıdır. Diğer piyasa katılımcılarının Python üzerinde yaptığından onlarca ve yüzlerce kat daha hızlı fikir kontrol etme kapasitesiyle rekabetçi bir bilgi avantajı sağlar.