🌕 MOON

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

MetrikWert (BTC 540d, Adaptive Default)
Trades48
Win-Rate54.2%
PnL+0.32% (+$3.16 auf $1000)
Profit-Factor1.09
Max Drawdown1.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-Pfaddynamic_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:

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

BefehlZweck
pm2 start ecosystem.config.jsAlles starten
pm2 stop kraken-botBot stoppen
pm2 restart kraken-botBot neu starten
pm2 logs kraken-bot --lines 50Live-Logs
pm2 monitEchtzeit-Dashboard
pm2 save && pm2 startupAuto-Start nach Reboot

Erfolgskriterien für die ersten 4 Wochen Live

Live-PFBedeutung
> 1.0System überlebt Slippage, Capital langsam erhöhen
0.8 – 1.0grenzwertig — Trade-Volumen + Slippage analysieren
< 0.8Strategie 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

Strategien, Walk-Forward-Resultate, Lektionen und Negativ-Befunde


Built with HOPIUM × Claude — März 2026, Walk-Forward-validiert April 2026