Modüler, test edilebilir ve production-ready bir algoritmik trading research platformu. BTC/USD çifti üzerinde makine öğrenmesi tabanlı sinyal üretimi, event-driven backtesting ve Alpaca paper trading entegrasyonu sunar.
- Data Pipeline: Binance/CoinGecko'dan OHLCV verisi çekme, feature engineering, label generation
- ML Pipeline: Walk-forward validation ile model eğitimi, kalibrasyon, registry
- Backtesting: Event-driven, lookahead-free backtest engine
- Live Trading: Alpaca Paper Trading entegrasyonu ile gerçek zamanlı sinyal çalıştırma
algo-trade-bot/
├── src/algo_trader/ # Ana kaynak kod
│ ├── common/ # Ortak yardımcı modüller (config, logger, storage)
│ ├── interfaces/ # Abstract base class'lar (broker, model, strategy)
│ ├── data/ # Veri ingestion ve feature engineering
│ ├── models/ # ML modelleri (SklearnBaseline, Calibrator)
│ ├── research/ # Eğitim pipeline (dataset, train, evaluate, registry)
│ ├── backtest/ # Event-driven backtest engine
│ ├── strategy/ # Sinyal ve pozisyon yönetimi
│ ├── broker/ # Alpaca broker implementasyonu
│ ├── live/ # Canlı paper trading runner
│ ├── bot/ # Legacy PyBroker bot
│ └── tests/ # Pytest test suite
├── data/raw/ # Ham OHLCV verileri (parquet)
├── artifacts/ # Model registry, backtest raporları, live state
├── docs/ # Detaylı dokümantasyon
├── notebooks/ # Jupyter araştırma notları
└── ai_memory/ # AI asistan kalıcı notları
| Kategori | Teknoloji |
|---|---|
| Data | pandas, numpy, pyarrow |
| ML | scikit-learn, joblib |
| Config | pydantic, pydantic-settings |
| Logging | loguru |
| Backtesting | Custom event-driven engine, PyBroker |
| Broker | alpaca-trade-api |
| Scheduling | APScheduler |
| Testing | pytest |
Bu projede data leakage önlenmesi kritik öneme sahiptir:
- Temporal Ordering: Tüm split'ler kronolojik sırada, random shuffle yok
- Feature Computation: Sadece geçmiş veriden hesaplama (lookahead yok)
- Label Shifting: Label'lar geleceğe kaydırılmış (t+n dönemine ait)
- Walk-Forward Validation: Train < Validation < Test zaman sırası garanti
- Backtest Execution: Karar bar kapanışında, uygulama gelecek bar'da
make install
make ingest # Binance'ten BTC OHLCV make ingest-coingecko # CoinGecko'dan BTC tarihsel veri
make features make labels
make test
make backtest # Backtest çalıştır
### Paper Trading
```bash
# Alpaca credentials ayarla
export ALGO_TRADER_ALPACA_API_KEY="your-key"
export ALGO_TRADER_ALPACA_API_SECRET="your-secret"
# Paper trading başlat
make paper-run
# Tek bir decision cycle çalıştır
make paper-once
# Durumu kontrol et
make paper-status
# Pozisyonları kapat ve durdur
make paper-stop
| Komut | Açıklama |
|---|---|
make install |
Paketi editable mode'da kur |
make ingest |
Binance'ten BTC OHLCV verisi indir |
make features |
37 teknik gösterge hesapla |
make labels |
Target label'ları oluştur |
make train |
Walk-forward validation ile model eğit |
make backtest |
Event-driven backtest çalıştır |
make test |
Pytest test suite çalıştır |
make paper-run |
Paper trading başlat |
make paper-once |
Tek decision cycle |
make paper-stop |
Pozisyonları kapat |
make pipeline |
Tam pipeline (ingest → train) |
Detaylı dokümantasyon için docs/ klasörüne bakın:
- Paper Trading Only: Bu sistem şu anda sadece paper trading destekliyor
- Risk Limitleri: Varsayılan %20 max position, %10 max drawdown
- Credentials: API anahtarlarını environment variable olarak saklayın
Environment variable olarak ayarlanabilir:
ALGO_TRADER_ALPACA_API_KEYALGO_TRADER_ALPACA_API_SECRETALGO_TRADER_ALPACA_BASE_URL