← All Collections
4 parts

High-Performance Backtest Engines

How to build a backtest engine that runs hundreds of times faster without changing a single PnL number — data layout, caching, adaptive resolution, and architecture, from first speedups to production internals.

  1. 01
    Backtest Hız Merdiveni: Dizüstü CPU'da 298x, Son İşleme Kadar Birebir Aynı PnL
    Jul 1, 2026 #algotrading

    Backtest Hız Merdiveni: Dizüstü CPU'da 298x, Son İşleme Kadar Birebir Aynı PnL

    Aynı 80 kombinasyonluk parametre taramasının, hepsinin aynı PnL'i ürettiği doğrulanmış beş uygulaması: pandas rolling.apply 69.9 saniye sürüyor, numpy 3.1, numba 2.0, paralel numba 0.23 — donanımda sıfır değişiklikle Apple M2 Max üzerinde ölçülen 298x'lik bir hızlanma ve yetkin bir vektörize edilmiş referansa karşı bile hâlâ ~13x. Her basamağın ne kazandırdığı, bir GPU'nun neden eksik parça olmadığı ve kitlesel parametre aramasındaki gerçek darboğazın nerede yaşadığı.

  2. 02
    Toplu Parquet Önbelleği: Çoklu Zaman Dilimi Backtestlerini Yüzlerce Kat Nasıl Hızlandırırsınız
    Mar 16, 2026 #algotrading

    Toplu Parquet Önbelleği: Çoklu Zaman Dilimi Backtestlerini Yüzlerce Kat Nasıl Hızlandırırsınız

    Dakikalık mumlardan zaman dilimlerini ve göstergeleri önceden hesaplama, parquet'e kaydetme ve gereksiz yeniden hesaplamalar olmadan toplu strateji testi için kullanma yöntemi.

  3. 03
    Uyarlanabilir Drill-Down: Dakikadan Ham İşlemlere Değişken Granülerlikle Backtest
    Mar 17, 2026 #algotrading

    Uyarlanabilir Drill-Down: Dakikadan Ham İşlemlere Değişken Granülerlikle Backtest

    Uyarlanabilir veri granülerliğinin backtestleri nasıl hızlandırdığı ve depolama alanını nasıl tasarruf ettirdiği: yalnızca fiyatın önemli ölçüde hareket ettiği veya hacmin ani yükseldiği yerlerde 1m'den 1s, 100ms ve ham işlemlere drill-down; tüm tarihsel seri boyunca değil.

  4. 04
    IPC Vergisi: Backtest Motorunu Bir Soketin Arkasına Koyun ve %13 Kaybedin — Kaybın Neredeyse Hiçbiri Sokete Ait Değil
    Jul 2, 2026 #algotrading

    IPC Vergisi: Backtest Motorunu Bir Soketin Arkasına Koyun ve %13 Kaybedin — Kaybın Neredeyse Hiçbiri Sokete Ait Değil

    Bir numba backtest çekirdeğini satır satır Rust'a taşıdık ve onu bir process sınırı üzerinden dört farklı şekilde çağırdık; bir eşdeğerlik kapısı son işleme kadar aynı PnL'i doğruladı. 1.2 MB'lık fiyat serisinin tamamını bir Unix soketi üzerinden göndermek ~2 ms'ye mal oluyor — işin yaklaşık %0.1'i. Aynı payload'ı JSON ile kodlamak ham byte'lardan 1348 kat daha pahalıya mal oluyor, kombinasyon başına gevezelik eden çağrılar veriyi 80 kez yeniden gönderiyor ve bar başına bir çağrı deseni 2.0 saniyelik bir işte 2.1 saniyelik saf IPC'ye mal olurdu. Sınır ucuz; vergi onu nasıl geçtiğinizde.