Kraken RBI Bot
Algorithmischer Trading-Bot für Kraken nach dem RBI-Framework (Research → Backtest → Incubate). Gestartet als Adaption eines Polymarket- Bot-Guides, inzwischen auf Kraken (FINMA-reguliert, CH-legal) zugeschnitten mit regime-adaptiver Strategie-Auswahl, Multi-Timeframe-Confluence, asymmetrischen Exits und Funding-Rate-Filter.
Aktueller Stand: 2026-04-16 Strategie ist Walk-Forward-validiert auf 540 Tagen BTC/USD-1h-Historie. Backtest-Performance: PF 1.09 (FULL), PF 1.74 auf den letzten 9 Monaten Out-of-Sample, WR 63.6% OOS. Volle Architektur und alle Resultate: STRATEGIES.md
Stand der Dinge in einer Tabelle
| Metrik | Wert (BTC 540d, Adaptive Default) |
|---|---|
| Trades | 48 |
| Win-Rate | 54.2% |
| PnL | +0.32% (+$3.16 auf $1000) |
| Profit-Factor | 1.09 |
| Max Drawdown | 1.58% |
| Out-of-Sample (9 Monate) | PF 1.74, WR 63.6%, Sharpe 1.10 |
Die alte README-Tabelle (PF 2.85, +$140) basierte auf 30 Tagen Daten und war Sample-Glück, nicht Edge — siehe STRATEGIES.md Sektion 9 für die ehrliche Aufarbeitung.
Architektur in einer Zeile
data/downloader → strategies/adaptive_strategy → backtesting/engine
↘ bot/run_bot_v2 (live)
Backtest und Live laufen über denselben Code-Pfad — dynamic_risk-Profile, ATR-SL/TP, Funding-Filter sind in beiden Welten identisch konfiguriert.
kraken-rbi-bot/
├── data/
│ ├── downloader.py # Kraken-live + Binance-history + Funding
│ └── *.csv # OHLCV + Funding-Snapshots
├── strategies/
│ ├── adaptive_strategy.py ★ # Engine-Default (Regime + MACD + Funding)
│ ├── regime_detector.py # ADX/ATR/EMA/Squeeze
│ ├── multi_timeframe.py # 4h-Confluence
│ ├── macd_strategy.py # standalone für Backtest-Vergleich
│ ├── rsi_strategy.py # standalone für Backtest-Vergleich
│ └── cvd_strategy.py # standalone (experimentell)
├── backtesting/
│ ├── engine.py # Long+Short, Pro-Trade-SL/TP, Metriken
│ ├── real_data_runner.py # Step-by-step Vergleich aller Hebel
│ ├── portfolio_runner.py # Multi-Asset (BTC/ETH/SOL) + Korrelationen
│ └── timeframe_runner.py # 5m vs 1h vs 4h
├── bot/
│ ├── run_bot_v2.py ★ # Live-Bot (PM2-ready, dynamische Risiken)
│ ├── dynamic_risk.py # ATR-SL/TP-Profile pro Signal-Source
│ ├── funding.py # Binance-Perp-Funding-Feed (gecacht)
│ ├── notify.py # Telegram/Webhook
│ ├── monitor.py # Performance-Dashboard
│ └── signal_status.py # State-Persistenz für Dashboard
├── logs/ # Trade-Logs, Bot-Logs, position_state.json
├── STRATEGIES.md # ★ Vollständige Doku der Strategien & Engine
├── CHANGELOG.md # Versionshistorie
├── ecosystem.config.js # PM2-Konfiguration
└── requirements.txt
Quick-Start
1. Dependencies installieren
pip install -r requirements.txt
npm install -g pm2
2. Daten laden (einmalig)
# 540 Tage BTC OHLCV (Binance, paginiert)
python3 data/downloader.py --source binance --symbol BTC/USDT --days 540
# Funding-Rate-Historie
python3 data/downloader.py --source binance-funding --days 540
3. Backtest reproduzieren
python3 backtesting/real_data_runner.py
Erwartete Ausgabe (letzte Zeilen):
Adaptive [+funding] ★ 48 54.2% $ 3.16 1.09 1.58 0.25 ✓
4. Kraken-API-Key konfigurieren
cp .env.example .env
nano .env # KRAKEN_API_KEY, KRAKEN_API_SECRET
Kraken-API-Key-Permissions:
- ✅ Query Funds, Query Open/Closed Orders, Modify Orders
- ❌ Withdraw NIEMALS aktivieren
- IP-Whitelist auf deine VPS-IP setzen
5. Dry-Run validieren
python3 bot/run_bot_v2.py --dry-run
Du solltest sehen:
Bot v2 initialized: BTC/USD 1h | Dry-run: True
Funding filter: ON (Binance BTC/USDT perp)
Price: $74,676.30 | Signal: 0 | Regime: trending_up | Funding: -0.0013%
6. Live mit Mini-Capital ($50–100)
pm2 start ecosystem.config.js --only kraken-bot
pm2 logs kraken-bot
PM2-Operations
| Befehl | Zweck |
|---|---|
pm2 start ecosystem.config.js | Alles starten |
pm2 stop kraken-bot | Bot stoppen |
pm2 restart kraken-bot | Bot neu starten |
pm2 logs kraken-bot --lines 50 | Live-Logs |
pm2 monit | Echtzeit-Dashboard |
pm2 save && pm2 startup | Auto-Start nach Reboot |
Erfolgskriterien für die ersten 4 Wochen Live
| Live-PF | Bedeutung |
|---|---|
| > 1.0 | System überlebt Slippage, Capital langsam erhöhen |
| 0.8 – 1.0 | grenzwertig — Trade-Volumen + Slippage analysieren |
| < 0.8 | Strategie tot, Backtest-Edge geht real verloren |
Trade-Log auswerten:
python3 bot/monitor.py
cat logs/trades.json | python3 -m json.tool
Strategie hinzufügen
# strategies/my_strategy.py
def generate_signals(df):
df = df.copy()
df['signal'] = 0
df['signal_source'] = ''
df['side'] = 'long'
df['sl_price'] = ... # optional: per-trade SL
df['tp_price'] = ... # optional: per-trade TP
# Logik hier
return df
def get_name():
return "My Strategy"
In backtesting/real_data_runner.py zum Vergleich aufnehmen. Pro-Trade-SL/TP-Spalten werden von der Engine respektiert (Backtest = Live).
Risikohinweis
Experimentelle Software, ausschließlich zu Bildungszwecken. Trading birgt substanzielles Verlustrisiko. Backtest-Performance ist keine Garantie für Live-Performance — siehe STRATEGIES.md Sektion 9, Lektion 7. Nur mit Capital handeln, dessen Verlust man verkraften kann.
Weiterlesen
- STRATEGIES.md — vollständige Architektur, alle
Strategien, Walk-Forward-Resultate, Lektionen und Negativ-Befunde
- CHANGELOG.md — Versionshistorie
bot/dynamic_risk.pyDocstring — Risk-Profile-Detailsstrategies/adaptive_strategy.pyDocstring — Pipeline-Details
Built with HOPIUM × Claude — März 2026, Walk-Forward-validiert April 2026