Stat-Arb-Lab adalah sebuah framework trading algoritmik berbasis Python yang dirancang khusus untuk penelitian, pengembangan, dan eksekusi strategi Statistical Arbitrage.
Sistem ini dibangun dengan arsitektur yang modular, memisahkan secara jelas antara lingkungan riset (backtesting, data ingestion, eksplorasi) dan lingkungan eksekusi produksi (live trading, risk management, OMS).
- ** Core Trading Logic**: Dilengkapi dengan modul matematika dan sinyal built-in, termasuk implementasi strategi Kalman Filter Mean Reversion (
kalman_mr.py). - ** Research Environment**: Ekosistem riset yang tangguh menggunakan Jupyter Notebooks, data ingestion (mendukung Yahoo Finance), dan penyimpanan berbasis Parquet/DuckDB.
- ** Live Execution Engine**: Mesin eksekusi real-time dengan Order Management System (OMS) dan pelaporan (Reporter).
- ** Guardian & Risk Management**: Sistem manajemen risiko yang ketat untuk sesi live, dilengkapi dengan fitur Circuit Breaker, Monitor, dan Sanitizer untuk melindungi modal.
- ** Modern Tooling**: Dikelola menggunakan
uvuntuk resolusi dependency Python yang sangat cepat.
Proyek ini terorganisir dalam beberapa modul utama:
/core/: Jantung dari aplikasi. Berisi logika perhitungan matematika (/math), manajemen risiko (/risk), pembuatan sinyal (/signals), dan Sistem Manajemen Pesanan/OMS (/execution/oms)./live/: Modul untuk eksekusi perdagangan secara langsung. Berisi Engine utama (engine.py), Stream data, dan sistem pelindung (/guardian)./research/: Laboratorium untuk Quantitative Researcher. Berisi pipeline analisis, data ingestion, Jupyter Notebooks untuk validasi ide, dan skrip backtesting (/strategy)./ops/: Kumpulan skrip operasional dan maintenance untuk menjaga kesehatan sistem (misal: fix imports, check environment).main.py: Titik masuk (entry point) utama untuk menjalankan aplikasi.config.yaml: File konfigurasi utama untuk mengatur parameter strategi dan sistem.
Sebelum memulai, pastikan sistem kamu memiliki perangkat lunak berikut:
- Python: Pastikan versi Python yang sesuai sudah terinstal (sesuai dengan
.python-version). - uv: Proyek ini menggunakan
uvsebagai package manager (terlihat dariuv.lockdanpyproject.toml).- Install
uv(jika belum):curl -LsSf https://astral.sh/uv/install.sh | sh(MacOS/Linux) atau baca dokumentasi resmi Astral.
- Install
-
Clone repositori ini:
git clone <url-repositori-kamu> cd stat-arb-lab
-
Sinkronisasi Dependency: Gunakan uv untuk membuat virtual environment dan menginstal semua paket yang dibutuhkan secara otomatis:
uv sync
-
Konfigurasi: Sesuaikan parameter API, batas risiko, dan pengaturan database pada file config.yaml sebelum menjalankan aplikasi.
-
Mode Riset & Analisis Untuk melakukan riset, kamu bisa menelusuri folder /research/notebooks/ dan menjalankan Jupyter Notebook (seperti Lake_Inspector.ipynb atau Signal_Sandbox.ipynb) untuk melihat visualisasi dan memvalidasi model Statistical Arbitrage (ADF Test, Half-life, dll).
-
Mode Live Execution Untuk menjalankan bot dalam mode eksekusi langsung (dengan guardian pelindung aktif), jalankan titik masuk utamanya:
uv run main.pyDisklaimer
Aplikasi ini dibuat murni untuk tujuan riset, edukasi, dan eksperimen kuantitatif. Segala bentuk kerugian finansial yang terjadi akibat penggunaan software ini dalam perdagangan (trading) di pasar nyata adalah tanggung jawab pengguna sepenuhnya. Pastikan untuk selalu melakukan forward-testing dan paper trading sebelum mempertaruhkan modal asli.