Deterministik, düşük riskli Binance Spot trading botu. Rejim filtresi (EMA20/EMA50 + ADX), volatiliteye uyarlamalı bantlar (ATR/Bollinger), maker-öncelikli yürütme (LIMIT_MAKER), TTL/cancel-replace, katı risk kontrolleri (işlem/portföy/günlük DD), slippage/korelasyon "gating", haber penceresi durdurma, SQLite işlem logları, User Data Stream ile gerçek zamanlı dolum/hesap takibi, dinamik sermaye (USDT + diğer varlıkların USDT karşılığı) ve günlük raporlama (opsiyonel Telegram) içerir.
- Özellikler
- Mimari Özet
- Kurulum
- .env Konfigürasyonu
- Çalışma Modları
- Paper Test
- GPT Araçları
- Raporlama ve Bildirimler
- Konfigürasyon Referansı
- Veri ve Log Yapısı
- Güvenlik Notları
- Teknik Terimler Sözlüğü
- Desteklenen Çiftler: ETH/USDT (varsayılan), BTC/USDT, SOL/USDT ve diğer /USDT çiftleri
- Binance Spot API: REST ve WebSocket entegrasyonu
- Real-time Veri: Depth stream (L1-L5) ve User Data Stream
- Rejim Filtresi: Trend (EMA20/EMA50 + ADX) vs yatay piyasa algılama
- Volatilite Bantları: ATR ve Bollinger Bands kombinasyonu
- Onay İndikatörleri: RSI ve VWAP ile sinyal doğrulama
- Microprice: Bid-ask spread içinde optimal fiyatlama
- Maker-First: Post-only LIMIT_MAKER emirleri
- TTL (Time-To-Live): 5-10 saniye otomatik iptal
- Cancel/Replace: Akıllı emir yenileme
- Kısmi Dolum: Kademeli pozisyon inşası
- Take Profit: ATR tabanlı, maker cancel/replace
- Stop Loss: ATR tabanlı, agresif limit emirleri
- Dinamik Seviyeler: Volatiliteye göre otomatik ayarlama
- Çok Katmanlı Risk: İşlem, portföy ve günlük seviyede kontrol
- Drawdown Protection: Günlük DD stop ve cooldown mekanizması
- Korelasyon Filtresi: Benzer varlıklarda aynı anda pozisyon engelleme
- Slippage Gating: Yüksek slippage durumunda işlem durdurma
- Spread Kontrolü: Aşırı spread durumunda işlem engelleme
- SQLite Veritabanı: Tüm işlem geçmişi ve metrikleri
- Real-time Takip: User Data Stream ile dolum ve hesap güncellemeleri
- Performans Metrikleri: Slippage, PnL, win rate analizi
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Market Data │───▶│ Strategy Engine │───▶│ Execution Engine│
│ (WebSocket) │ │ (EMA/ATR/RSI) │ │ (LIMIT_MAKER) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Risk Manager │◀───│ Portfolio │◀───│ User Stream │
│ (Multi-layer) │ │ (Positions) │ │ (Real-time) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ DB Logger │
│ (SQLite) │
└─────────────────┘
- Python 3.8+
- NumPy 2.x uyumlu ortam (sanal ortam önerilir)
- Binance API anahtarları (opsiyonel - paper test için gerekli değil)
git clone <repository-url>
cd binance-traderpython -m venv venv
source venv/bin/activate # Linux/Mac
# veya
venv\Scripts\activate # WindowsNot: Sanal ortam kullanımı NumPy 2.x uyumluluğu için kritik önem taşır.
pip install -r requirements.txt# Konfigürasyon dosyasını kopyalayın
cp config/config.example.json config/config.json
# Haber takvimi dosyasını kopyalayın (opsiyonel)
cp config/news_calendar.example.json config/news_calendar.json
# .env dosyasını oluşturun (opsiyonel)
touch .envmkdir -p storageBot, aşağıdaki ortam değişkenlerini destekler:
# Binance API Anahtarları (opsiyonel - paper test için gerekli değil)
BINANCE_API_KEY=your_api_key_here
BINANCE_API_SECRET=your_api_secret_here
# Telegram Bildirimleri (opsiyonel)
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
# OpenAI API (GPT araçları için)
OPENAI_API_KEY=your_openai_key_here
OPENAI_BASE_URL=https://api.openai.com/v1 # opsiyonelNot: API anahtarları olmadan da bot paper test modunda çalışabilir.
# Sanal ortamı aktifleştirin
source venv/bin/activate
# PYTHONPATH ayarlayın ve çalıştırın
PYTHONPATH=/path/to/binance-trader python main.py- Gerçek para kullanmaz
- Simüle edilmiş fiyat verileri ile çalışır
- Tüm strateji ve risk kontrolleri aktif
- SQLite veritabanında işlem logları tutar
# Sanal ortamı aktifleştirin
source venv/bin/activate
# .env dosyasında API anahtarlarınızı ayarlayın
BINANCE_API_KEY=your_key
BINANCE_API_SECRET=your_secret
# config.json'da dry_run: false yapın
PYTHONPATH=/path/to/binance-trader python main.py# Sanal ortamı aktifleştirin
source venv/bin/activate
# config.json'da use_testnet: true yapın
PYTHONPATH=/path/to/binance-trader python main.pyPaper Test, trading botunuzun stratejisini gerçek para kullanmadan geçmiş veriler üzerinde simüle ederek performansını değerlendirmenizi sağlar. Bu sayede:
- Risk-Free Test: Gerçek para kaybetme riski olmadan strateji testi
- Performans Analizi: Botun karlılığını, win rate'ini ve risk metriklerini ölçme
- Strateji Optimizasyonu: Farklı parametrelerle test yaparak en iyi ayarları bulma
- Güven Testi: Live trading'e geçmeden önce botun güvenilirliğini doğrulama
Paper test, tüm teknik indikatörleri (EMA, RSI, ATR, Bollinger Bands, ADX), risk yönetimi kontrollerini (stop loss, take profit, drawdown) ve emir yürütme mekanizmalarını simüle eder.
# Sanal ortamı aktifleştirin
source venv/bin/activate
# PYTHONPATH ayarlayın ve testi çalıştırın
PYTHONPATH=/path/to/binance-trader python tools/paper_test.py --symbols "ETH/USDT,BTC/USDT" --bars 1000 --spread-bps 0.1--symbols: Test edilecek semboller (virgülle ayrılmış, tırnak içinde)--bars: Kullanılacak geçmiş veri miktarı--spread-bps: Simüle edilecek spread (bps cinsinden)
# Tek sembol testi
PYTHONPATH=/path/to/binance-trader python tools/paper_test.py --symbols "ETH/USDT" --bars 500 --spread-bps 2.0
# Çoklu sembol testi
PYTHONPATH=/path/to/binance-trader python tools/paper_test.py --symbols "ETH/USDT,BTC/USDT,SOL/USDT" --bars 1000 --spread-bps 1.5- Detaylı performans metrikleri
- Win rate ve PnL analizi
- Risk metrikleri
- Slippage analizi
# Sanal ortamı aktifleştirin
source venv/bin/activate
# PYTHONPATH ayarlayın ve çalıştırın
PYTHONPATH=/path/to/binance-trader python tools/nl2config.py "Daha agresif bir strateji istiyorum, RSI 80'de sat"source venv/bin/activate
PYTHONPATH=/path/to/binance-trader python tools/summarize_day.pysource venv/bin/activate
PYTHONPATH=/path/to/binance-trader python tools/what_if.pyconfig.json dosyasında GPT ayarları:
{
"gpt": {
"enabled": true,
"model": "gpt-4o-mini",
"temperature": 0.2,
"base_url": "https://api.openai.com/v1"
}
}- Otomatik olarak her gün UTC 00:00'da oluşturulur
- Performans metrikleri, PnL, win rate
- Risk metrikleri ve uyarılar
- Telegram'a otomatik gönderim (yapılandırılmışsa)
# .env dosyasında
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id- Günlük performans raporları
- Risk limiti aşımları
- Cooldown tetiklenmeleri
- Günlük drawdown durdurmaları
- Haber penceresi uyarıları
python -c "
from reporting.reporter import generate_daily_report
from core.db import DBLogger
from datetime import datetime, timezone
db = DBLogger('storage/trading.db')
report = generate_daily_report(db, datetime.now(timezone.utc))
print(report)
"{
"risk": {
"per_trade_risk_pct": 0.004, // İşlem başına risk (%)
"portfolio_risk_pct": 0.01, // Portföy riski (%)
"daily_dd_stop_pct": 0.015, // Günlük DD durdurma (%)
"cooldown_minutes": 20, // Cooldown süresi (dakika)
"max_spread_bps": 3, // Maksimum spread (bps)
"max_consecutive_losses": 3, // Maksimum ardışık kayıp
"slippage_window": 20, // Slippage pencere boyutu
"slippage_threshold_bps": 2.0, // Slippage eşiği (bps)
"correlation_threshold": 0.8, // Korelasyon eşiği
"correlation_cache_seconds": 300 // Korelasyon cache süresi
}
}{
"strategy": {
"use_atr_band": true, // ATR bant kullanımı
"atr_period": 14, // ATR periyodu
"atr_k": 0.6, // ATR katsayısı
"bb_period": 20, // Bollinger Bands periyodu
"bb_k": 2.0, // Bollinger Bands katsayısı
"ema_fast": 20, // Hızlı EMA periyodu
"ema_slow": 50, // Yavaş EMA periyodu
"adx_period": 14, // ADX periyodu
"adx_trend_threshold": 18, // ADX trend eşiği
"rsi_period": 14, // RSI periyodu
"rsi_overbought": 70, // RSI aşırı alım seviyesi
"rsi_oversold": 30, // RSI aşırı satım seviyesi
"vwap_confirmation": true, // VWAP onayı
"microprice_k": 0.25, // Microprice katsayısı
"ttl_seconds": 7, // Emir TTL (saniye)
"min_depth_notional": 5000 // Minimum derinlik (USDT)
}
}{
"ops": {
"prometheus_port": 9108, // Prometheus portu
"log_level": "INFO", // Log seviyesi
"api_base_url": "https://api.binance.com",
"ws_base_url": "wss://stream.binance.com:9443",
"use_testnet": false // Testnet kullanımı
}
}{
"capital": {
"base_capital_usd": 2000, // Temel sermaye (USDT)
"max_symbols_concurrent": 1 // Maksimum eşzamanlı sembol
}
}[
{
"name": "FOMC Rate Decision",
"start_utc": "2025-09-17T18:00:00Z",
"end_utc": "2025-09-17T19:30:00Z",
"severity": "high"
}
]- Dosya Konumu:
storage/trading.db - Tablo Yapısı:
signals: Sinyal loglarıfills: Dolum loglarıpnl: PnL kayıtlarıerrors: Hata loglarıorders: Emir logları
- Konum:
logs/klasörü - Format: Günlük rotasyon
- Seviyeler: DEBUG, INFO, WARNING, ERROR
storage/
├── trading.db # Ana veritabanı
├── test_trading.db # Test veritabanı
└── logs/ # Log dosyaları
├── trading_2024-01-01.log
└── trading_2024-01-02.log
- Win Rate: Kazançlı işlem oranı
- Sharpe Ratio: Risk-ayarlı getiri
- Maximum Drawdown: Maksimum düşüş
- Slippage: Ortalama slippage (bps)
- Correlation: Sembol korelasyonları
- IP Kısıtlaması: Binance API'de IP kısıtlaması kullanın
- İzin Sınırları: Sadece Spot Trading izinleri verin
- Testnet: Önce testnet'te test edin
- Küçük Miktarlar: Başlangıçta küçük miktarlarla test edin
- Stop Loss: Her zaman stop loss kullanın
- Pozisyon Boyutu: Sermayenizin %1-2'sinden fazla risk almayın
- Diversifikasyon: Tek sembole odaklanmayın
- Monitoring: Botu düzenli olarak izleyin
- Backup: Veritabanını düzenli yedekleyin
- Encryption: Hassas verileri şifreleyin
- Access Control: Dosya izinlerini sınırlayın
- Uptime: Sunucu uptime'ını izleyin
- Alerts: Kritik durumlar için uyarılar kurun
- Updates: Sistemi güncel tutun
- Documentation: Değişiklikleri dokümante edin
- API (Application Programming Interface): Uygulamalar arası iletişim arayüzü
- Arbitraj: Farklı borsalarda fiyat farkından kar elde etme
- Ask Price: Satış fiyatı (en düşük satış teklifi)
- Bid Price: Alış fiyatı (en yüksek alış teklifi)
- Spread: Bid-ask fiyat farkı
- Volume: İşlem hacmi
- Market Cap: Piyasa değeri
- ATR (Average True Range): Ortalama gerçek aralık, volatilite ölçümü
- Bollinger Bands: Fiyat bantları, volatilite ve aşırı alım/satım göstergesi
- EMA (Exponential Moving Average): Üstel hareketli ortalama
- RSI (Relative Strength Index): Göreceli güç endeksi, momentum göstergesi
- VWAP (Volume Weighted Average Price): Hacim ağırlıklı ortalama fiyat
- ADX (Average Directional Index): Trend gücü göstergesi
- MACD: Hareketli ortalama yakınsama/ıraksama göstergesi
- Long Position: Uzun pozisyon (alış)
- Short Position: Kısa pozisyon (satış)
- Liquidity: Likidite, piyasa derinliği
- Slippage: Beklenen fiyat ile gerçekleşen fiyat arasındaki fark
- Maker: Likidite sağlayan (emir defterine emir koyan)
- Taker: Likidite alan (mevcut emri eşleştiren)
- Order Book: Emir defteri
- Depth: Piyasa derinliği
- Drawdown (DD): Maksimum düşüş, portföy değerindeki en büşük düşüş
- Stop Loss: Zarar durdurma emri
- Take Profit: Kar alma emri
- Position Sizing: Pozisyon boyutlandırma
- Correlation: Korelasyon, varlıklar arası ilişki
- Volatility: Volatilite, fiyat değişkenliği
- Sharpe Ratio: Risk-ayarlı getiri oranı
- Paper Trading: Sanal trading, gerçek para kullanmadan test
- Backtesting: Geçmiş verilerle strateji testi
- Live Trading: Gerçek para ile trading
- Dry Run: Test modu
- TTL (Time To Live): Emir yaşam süresi
- Cancel/Replace: Emir iptal etme ve yenileme
- Microprice: Bid-ask arası optimal fiyat
- Kline/Candlestick: Mum grafik verisi
- OHLCV: Open, High, Low, Close, Volume
- WebSocket: Gerçek zamanlı veri akışı
- REST API: HTTP tabanlı API
- JSON: Veri formatı
- SQLite: Hafif veritabanı sistemi
- Spot Trading: Anında teslimat trading
- Futures: Vadeli işlemler
- Margin Trading: Kaldıraçlı trading
- Liquidation: Tasfiye, pozisyon kapatma
- Funding Rate: Finansman oranı
- Open Interest: Açık pozisyon hacmi
- USDT: Tether, USD'ye sabitlenmiş kripto para
- BNB: Binance Coin
- Testnet: Test ağı
- Mainnet: Ana ağ
- API Key: API anahtarı
- API Secret: API gizli anahtarı
- User Data Stream: Kullanıcı veri akışı
- Depth Stream: Derinlik akışı
- PnL (Profit and Loss): Kar/zarar
- Win Rate: Kazanma oranı
- Average Win: Ortalama kazanç
- Average Loss: Ortalama kayıp
- Profit Factor: Kar faktörü
- Maximum Drawdown: Maksimum düşüş
- Recovery Factor: Toparlanma faktörü
- Calmar Ratio: Calmar oranı
- UTC: Koordineli evrensel zaman
- Timezone: Zaman dilimi
- Cron: Zamanlanmış görev
- Real-time: Gerçek zamanlı
- Historical Data: Geçmiş veri
- Live Data: Canlı veri
- Batch Processing: Toplu işlem
Bu sözlük, trading bot projesinde kullanılan teknik terimleri kapsamlı bir şekilde açıklamaktadır. Yeni terimler eklendikçe bu sözlük güncellenebilir.