Memilih library backtesting pada dasarnya adalah taruhan pada pemeliharaan. Kode yang menilai strategi Anda harus tetap hidup saat sebuah bursa mengubah API, rilis pandas merusak sebuah import, atau Anda menemukan bug pukul 2 dini hari. Jadi ulasan ini mengawali dengan sinyal yang paling tidak glamor namun paling menentukan — apakah proyeknya benar-benar dipelihara? — dan baru setelah itu masuk ke arsitektur, kecepatan, dan fitur.
Setiap angka GitHub di bawah ini diambil langsung dari GitHub API pada 2026-06-22, dan klaim-klaim yang lebih sulit diperiksa silang terhadap sumber primer (repo proyek, dokumentasi resmi) serta diverifikasi secara adversarial. Bila sebuah angka adalah skenario terbaik yang dilaporkan sendiri oleh vendor, hal itu ditandai.
Pemeriksaan realita pemeliharaan
Berikut seluruh ekosistemnya diurutkan berdasarkan bintang GitHub, diberi kode warna sesuai apakah proyeknya benar-benar dikerjakan:

Kesimpulan yang tidak menyenangkan: dua dari nama paling banyak dibintangi dan paling banyak ditulis di blog sebenarnya sudah menjadi warisan lama.
- Backtrader (22.1k ⭐) adalah yang terkenal dan direkomendasikan semua orang — namun commit terakhirnya ke default branch adalah April 2023, dengan nol rilis GitHub yang pernah dipublikasikan. Proyek ini bukan ditinggalkan (isu masih sesekali mendapat perhatian), tetapi tidak aktif. Katalog kurasi menandainya
INACTIVE. - Zipline (19.9k ⭐), mesin lama milik Quantopian, ditinggalkan pada 2020 saat Quantopian tutup. Daftar alternatif milik kernc sendiri menggolongkannya sebagai "Obsolete / Unmaintained." Penerus yang dipelihara adalah fork terpisah,
zipline-reloaded(1.8k ⭐), oleh Stefan Jansen. - PyAlgoTrade (4.7k ⭐) sudah diarsipkan — resmi hanya-baca. QSTrader (3.4k ⭐) serta framework crypto lama
blanklydanqtpylibditandai tidak dipelihara.
Sementara itu, proyek yang merilis versi nyata pada 2026 adalah Freqtrade (51.7k ⭐), NautilusTrader (24.1k ⭐), LEAN (20k ⭐), backtesting.py (8.5k ⭐), Jesse (8.1k ⭐), vectorbt (8.0k ⭐), PyBroker (3.4k ⭐), bt (2.9k ⭐), dan Lumibot (1.7k ⭐). Bintang mengukur sejarah; tanggal commit mengukur apakah ada yang akan memperbaiki bug Anda.
Dua arsitektur: event-driven vs vektorized
Percabangan lain yang menentukan segalanya adalah bagaimana mesin menjalankan strategi Anda.
- Mesin event-driven melakukan loop bar demi bar, memanggil strategi Anda pada setiap candle baru. Mesin ini memodelkan order fill, slippage, dan risiko intrabar secara realistis, dan — yang krusial — kode yang sama bisa dijalankan secara live. Backtrader, NautilusTrader, backtesting.py, Freqtrade, Lumibot, dan Zipline bersifat event-driven.
- Mesin vektorized (yang menonjol adalah vectorbt) melewatkan loop sepenuhnya: mereka mengemas ribuan konfigurasi strategi ke dalam array NumPy dan menghitung semuanya sekaligus. Pendekatan ini sangat cepat untuk pencarian parameter, tetapi mengasumsikan fill pada bar berikutnya serta mengabaikan slippage intrabar, partial fill, dan pemeriksaan risiko di tengah bar.
Tidak ada yang menang mutlak. Anda meneliti dengan yang cepat dan memvalidasi dengan yang realistis. Lebih lanjut soal trade-off ini di bawah.
Para pemimpin yang aktif dipelihara
NautilusTrader — kelas produksi, event-driven, inti Rust
NautilusTrader (24.1k ⭐, LGPL-3.0) menyebut dirinya sebagai "mesin trading native-Rust kelas produksi dengan arsitektur event-driven yang deterministik" — basis kodenya sekitar 70% Rust dengan binding Python. Ia melakukan backtest di berbagai venue dan instrumen pada resolusi nanodetik menggunakan data tick dan order-book, serta menyertakan sekitar 20 integrasi live (Binance, Coinbase, Kraken, OKX, Bybit, Interactive Brokers, Betfair, dan lainnya). Janji utamanya: kode strategi yang identik dari riset hingga penerapan live. Ini adalah pilihan terkuat untuk audiens crypto+saham yang membutuhkan realisme level tick dan jalur nyata menuju produksi. Biayanya: kurva belajar yang lebih curam dan arsitektur yang lebih berat dibanding library sederhana.
vectorbt — riset vektorized dalam skala besar
vectorbt (8.0k ⭐, Apache-2.0 + Commons Clause) adalah mesin vektorized. README-nya: "alih-alih melakukan loop melalui bar satu strategi pada satu waktu, ia mengemas ribuan konfigurasi ke dalam array NumPy, mempercepat hot path dengan Numba dan Rust, dan menjalankan semuanya sekaligus, mengubah grid search yang butuh berjam-jam menjadi hitungan detik." Menguji 10.000 kombinasi window dual-SMA dalam hitungan detik adalah contoh kanoniknya; pihak ketiga melaporkan percepatan sekitar 1000× dibanding Backtrader pada beberapa beban kerja (angka dari vendor/pihak ketiga, bukan benchmark independen). Parameter sweep di bawah ini — 25 backtest di berbagai window SMA — persis seperti yang diindustrikan oleh vectorbt:

Dua catatan penting yang perlu diketahui: Commons Clause membatasi penjualan ulang komersial (relevan jika Anda membangun produk), dan vectorbt PRO yang berbayar dan lebih matang adalah produk terpisah dari build open-source-nya. vectorbt hanya untuk backtest — tanpa live trading.
backtesting.py — favorit yang ringan
backtesting.py (8.5k ⭐, AGPL-3.0) adalah pilihan saat Anda ingin backtest yang bersih, cepat, dan mudah dibaca tanpa keribetan sebuah framework. Definisikan init() dan next(), jalankan, dapatkan objek statistik dan plot Bokeh interaktif. Lisensi AGPL-3.0 penting: ini adalah copyleft kuat dengan ketentuan penggunaan jaringan, sehingga merepotkan di dalam SaaS tertutup. Ia hanya untuk backtest. Kurva ekuitas pada halaman ini (cover) dan statistik di bawah ini berasal dari sebuah run backtesting.py yang nyata — crossover SMA(20/50) sederhana pada deret sintetis:

Perhatikan hasil yang jujur ini: crossover naif menghasilkan +1,6% dibanding +46% untuk buy & hold, dengan drawdown −38% yang brutal. Itulah hasil pertama yang normal dari sebuah backtest nyata, dan persis alasan mengapa Anda menyapu parameter dan memvalidasi asumsi sebelum memercayai apa pun.
Freqtrade — pilihan default untuk crypto
Freqtrade (51.7k ⭐, GPL-3.0) adalah proyek dengan bintang terbanyak dalam daftar ini dan secara de facto merupakan bot trading crypto open-source. Ia menyediakan backtesting, dry-run (paper trading), dan live trading di bursa-bursa besar, dikendalikan melalui Telegram atau UI web bawaan, serta merilis versi setiap bulan. Ia khusus crypto — tanpa saham — tetapi untuk crypto, inilah standar yang dipelihara dan didukung komunitas.
Lumibot, bt, PyBroker, Jesse, LEAN, zipline-reloaded
- Lumibot (1.7k ⭐, GPL-3.0) — multi-aset (saham, opsi, crypto, futures, forex) dengan kode yang sama untuk backtest, paper, dan live di Alpaca, Interactive Brokers, Tradier, Schwab, Tradovate, dan CCXT. Onboarding broker yang ramah pemula; waspadai jebakan kesenjangan paritas backtest-vs-live yang terdokumentasi (zona waktu, waktu masuk, margin).
- bt (2.9k ⭐, MIT) — framework tree-of-algos yang fleksibel, ditujukan untuk strategi alokasi portofolio dan berbasis bobot alih-alih eksekusi per-tick. Berlisensi permisif, aktif dipelihara, hanya untuk backtest.
- PyBroker (3.4k ⭐) — dibangun untuk strategi machine learning, dengan akselerasi Numba dan validasi walk-forward yang sudah tersedia. Hanya untuk backtest.
- Jesse (8.1k ⭐, MIT) — framework crypto dengan API strategi yang bersih dan live trading; lisensi permisif.
- LEAN / QuantConnect (20k ⭐, Apache-2.0) — mesin multi-aset kelas berat di balik cloud QuantConnect. Inti C#/.NET dengan API Python; backtest dan live. Bertenaga, tetapi merupakan komitmen terbesar di sini.
- zipline-reloaded (1.8k ⭐, Apache-2.0) — fork Zipline milik Quantopian yang aktif dipelihara, populer di kalangan akademisi dan buku Machine Learning for Trading. Hanya untuk backtest; gunakan ini, bukan
quantopian/ziplineyang asli.
Kuburan — hindari untuk proyek baru
Nama-nama ini masih muncul di hasil pencarian dan posting blog lama, tetapi jangan memulai dari sini pada 2026:
- Zipline (asli,
quantopian/zipline) — ditinggalkan 2020. Gunakanzipline-reloaded. - PyAlgoTrade — repo diarsipkan (hanya-baca).
- QSTrader — ditandai tidak dipelihara; push terakhir pertengahan 2024.
- blankly — platform tutup; qtpylib — diarsipkan sejak 2021.
- fastquant (1.8k ⭐) — wrapper tipis yang ditujukan untuk backtest satu baris, tetapi mandek sejak 2023.
Arsitektur itu penting: trade-off realisme
Pembagian vektorized-vs-event-driven bukan sekadar teori. Kecepatan vectorbt berasal dari asumsi bahwa setiap fill terjadi pada harga bar berikutnya tanpa slippage. Untuk screen momentum di 500 aset, itu tidak masalah. Untuk strategi yang keunggulannya berada di eksekusi intrabar — penempatan stop, partial fill, posisi antrean — backtest vektorized akan diam-diam membohongi Anda, dan Anda butuh mesin event-driven (NautilusTrader, Backtrader) atau dry-run live (Freqtrade, Lumibot) untuk mendapatkan angka yang jujur. Alur kerja profesional menggunakan keduanya: vectorbt untuk menjelajahi ruang parameter, mesin event-driven untuk memvalidasi yang lolos.
Lisensi — baca ini sebelum Anda membangun produk
Library backtesting tergolong sangat sarat lisensi, dan beberapa di antaranya bersifat copyleft:
| Lisensi | Library | Yang perlu diketahui |
|---|---|---|
| AGPL-3.0 | backtesting.py | Copyleft terkuat; penggunaan jaringan/SaaS dapat memicu kewajiban membuka source |
| Apache-2.0 + Commons Clause | vectorbt (build OSS) | Permisif kecuali Anda tidak boleh menjualnya sebagai produk |
| GPL-3.0 | Backtrader, Freqtrade, Lumibot | Copyleft; mendistribusikan turunannya berarti harus open-source |
| LGPL-3.0 | NautilusTrader | Copyleft lebih lemah; linking umumnya tidak masalah |
| MIT | bt, Jesse, QSTrader, fastquant | Permisif — bisa melakukan hampir apa saja |
| Apache-2.0 | LEAN, zipline-reloaded, finmarketpy | Permisif, termasuk hibah paten |
Jika Anda membangun sesuatu yang komersial dan tertutup, tool MIT/Apache adalah pilihan tanpa hambatan; AGPL dan Commons Clause perlu ditinjau oleh pengacara.
Perbandingan sekilas
| Tool | ⭐ Bintang | Arsitektur | Lisensi | Pemeliharaan | Live trading | Paling cocok untuk |
|---|---|---|---|---|---|---|
| NautilusTrader | 24.1k | Event-driven (Rust) | LGPL-3.0 | 🟢 Aktif | Ya | Produksi, realisme tick/order-book |
| vectorbt | 8.0k | Vektorized | Apache+CC | 🟢 Aktif | Tidak | Pencarian parameter massal |
| backtesting.py | 8.5k | Event-driven | AGPL-3.0 | 🟢 Aktif | Tidak | Backtest tunggal cepat dan bersih |
| Freqtrade | 51.7k | Event-driven | GPL-3.0 | 🟢 Aktif | Ya (crypto) | Bot crypto yang dipelihara |
| Backtrader | 22.1k | Event-driven | GPL-3.0 | 🟡 Tidak aktif | Ya | Proyek warisan (perhatikan kemandekan) |
| Lumibot | 1.7k | Event-driven | GPL-3.0 | 🟢 Aktif | Ya | Multi-aset, backtest/live terpadu |
| LEAN | 20k | Event-driven | Apache-2.0 | 🟢 Aktif | Ya | Platform multi-aset kelas berat |
| bt | 2.9k | Vektorized/bobot | MIT | 🟢 Aktif | Tidak | Strategi alokasi portofolio |
| PyBroker | 3.4k | Event-driven | OSS | 🟢 Aktif | Tidak | Strategi ML + walk-forward |
| zipline-reloaded | 1.8k | Event-driven | Apache-2.0 | 🟢 Aktif | Tidak | Akademik, buku ML4T |
| Zipline (asli) | 19.9k | Event-driven | Apache-2.0 | 🔴 Ditinggalkan | — | Tidak ada — gunakan reloaded |
| PyAlgoTrade | 4.7k | Event-driven | — | 🔴 Diarsipkan | — | Tidak ada yang baru |
Bintang dan status adalah snapshot 2026-06-22 dan akan bergeser; pemeliharaan adalah dimensi yang paling fluktuatif, jadi periksa ulang aktivitas commit sebelum Anda berkomitmen.
Cara memilih, dalam satu tarikan napas
- Meneliti strategi di ribuan parameter → vectorbt.
- Backtest tunggal yang cepat dan bersih di notebook → backtesting.py (perhatikan AGPL).
- Produksi crypto+saham dengan paritas riset→live dan realisme tick → NautilusTrader.
- Bot crypto yang dipelihara dengan backtest/dry-run/live → Freqtrade.
- Algo trading ritel multi-aset, ramah pemula → Lumibot.
- Strategi alokasi portofolio / pembobotan → bt.
- Strategi machine learning dengan walk-forward → PyBroker.
- Tugas kuliah akademik / ML-for-Trading → zipline-reloaded.
- Anda mewarisi basis kode Backtrader → tidak masalah, tetapi sadari ia tidak aktif; proyek baru sebaiknya mencari yang lain.
Satu aturan yang bertahan di setiap rezim pasar: periksa tanggal commit terakhir sebelum Anda memeriksa jumlah bintang. Library 22k bintang yang belum merilis apa pun sejak 2023 adalah jalur yang lebih lambat menuju produksi dibanding library 8k bintang yang merilis minggu lalu.
Metodologi: metrik GitHub diambil langsung dari GitHub API pada 2026-06-22; klaim arsitektur, pemeliharaan, lisensi, dan live trading diperiksa silang terhadap repositori proyek dan dokumentasi resmi serta diverifikasi secara adversarial, dengan mengacu pada katalog kurasi (PyTrade.org, awesome-systematic-trading) dan daftar alternatif milik kernc. Kurva ekuitas, statistik, dan heatmap parameter adalah output nyata dari sebuah run backtesting.py pada deret harga sintetis yang dapat direproduksi — bersifat ilustratif, bukan rekomendasi strategi. Angka performa yang diatribusikan kepada vendor (percepatan vectorbt, resolusi nanodetik NautilusTrader) dilaporkan sendiri, bukan benchmark independen.