CT 128 bot — Trading Bot (Freqtrade)

Zweck: Automatisierter Krypto-Trading-Bot mit Freqtrade auf Binance Spot/USDC. Inklusive Live-Dashboard und Web-basierter Container-Steuerung.

Rolle

CT 128 ist der dedizierte Trading-Container. Hier läuft Freqtrade — ein Open-Source-Crypto-Trading-Bot — als Docker-Stack mit drei Services:

  • freqtrade: der eigentliche Trading-Bot (Strategie-Execution, Order-Management)
  • dashboard: Nginx-Webserver mit Live-Trading-Übersicht
  • ctrl: Leichtgewichtiger Docker-Control-Proxy für Web-basierte Container-Steuerung

Basisdaten

  • CT-ID: 128
  • Hostname: bot
  • IP: 192.168.178.97
  • OS: Ubuntu 24.04
  • Ressourcen: 2 Cores, 2 GB RAM, 20 GB Disk
  • Öffentliche URLs:
    • https://bot.ls-cloud.biz — Trading-Dashboard (via Authelia geschützt)
    • https://ui.bot.ls-cloud.biz — Bot-Steuerungs-UI

Technischer Aufbau

CT 128 (bot) · 192.168.178.97
├── freqtrade (Docker)         → localhost:8080  (API)
├── dashboard (nginx)          → 0.0.0.0:5001    (Web-Dashboard)
├── ctrl (Python/Docker)       → intern:5003     (Steuer-Proxy)
└── Caddy Reverse Proxy (auf Host lscloud)
    ├── bot.ls-cloud.biz       → Authelia → :5001
    └── ui.bot.ls-cloud.biz    → :5002
  • Freqtrade-Image: freqtradeorg/freqtrade:stable
  • Dashboard: nginx:alpine mit statischem HTML (keine externen CDN-Abhängigkeiten)
  • Ctrl: Alpine-basierter Python-Microservice mit Docker-Socket-Zugriff

Alle Pfade

/opt/freqtrade/                         ← Hauptverzeichnis (docker-compose root)
├── config.json                          ← ⭐ Freqtrade-Konfiguration
├── docker-compose.yml                   ← Docker Stack Definition
├── nginx.conf                           ← Dashboard Nginx-Konfiguration
├── dashboard.html                       ← Dashboard HTML (selbst enthalten)
│
├── user_data/                           ← Freqtrade Datenverzeichnis
│   ├── strategies/                      ← Trading-Strategien (.py)
│   │   ├── MrXScalper.py               ← Aktive Strategie
│   │   ├── MrXStrategy.py              ← Frühere Strategie (langsamer)
│   │   ├── MyStrategy.py               ← Erste Eigenentwicklung
│   │   └── sample_strategy.py          ← Freqtrade-Beispiel
│   ├── logs/
│   │   └── freqtrade.log               ← Bot-Logdatei
│   └── tradesv3.sqlite                 ← Trade-Datenbank
│
└── ctrl/                                ← Docker-Control-Microservice
    ├── Dockerfile
    └── ctrl.py

Config-Erklärung (config.json)

Trading-Parameter

Parameter Wert Bedeutung
max_open_trades 6 Maximal 6 gleichzeitige Trades
stake_amount 15 15 USDC pro Trade
stake_currency USDC Basiswährung
tradable_balance_ratio 0.95 95% des Guthabens nutzbar
dry_run false LIVE-Trading (echte Orders!)
timeframe 5m 5-Minuten-Kerzen
cancel_open_orders_on_exit false Orders bei Bot-Stopp behalten

Exchange (Binance)

json5
{
  exchange: {
    name: "binance",
    key: "***",                    // Binance API-Key
    secret: "***",                 // Binance API-Secret
    ccxt_config: { enableRateLimit: true },
    pair_whitelist: [".*/USDC"],  // Alle USDC-Paare
    pair_blacklist: [
      "BNB/USDC", "USDT/USDC",    // Stablecoins & BNB ausgeschlossen
      "FDUSD/USDC", "USDP/USDC",
      "TUSD/USDC", "EUR/USDC"
    ]
  }
}

Pair-Filter (Dynamische Paarauswahl)

Jeder Zyklus wählt automatisch die 12 liquidesten USDC-Paare:

  1. VolumePairList — Top 12 nach Quote-Volume, refresh alle 30 min
  2. AgeFilter — Nur Coins >60 Tage gelistet
  3. SpreadFilter — Max 0.35% Spread
  4. RangeStabilityFilter — Min 3% Bewegung in 7 Tagen
  5. VolatilityFilter — 2-50% Volatilität (vermeidet tote und zu wilde Märkte)

Pricing

  • Nutzt Order Book (Top-Level) für Entry/Exit-Preisermittlung
  • price_side: "same" → gleiche Seite wie Orderrichtung

API-Server

Einstellung Wert
Port 8080 (intern, nur localhost)
Auth Username/Password + JWT
OpenAPI deaktiviert
CORS * (für Dashboard)

Telegram-Alerts

Freqtrade hat einen eigenen Telegram-Bot für Trade-Benachrichtigungen (getrennt vom OpenClaw-Bot).

Sonstiges

  • force_entry_enable: true → Manuelle Trade-Einstiege per API möglich
  • process_throttle_secs: 5 → 5s Verarbeitungsintervall
  • initial_state: "running" → Startet automatisch mit Trading

Strategie: MrXScalper

Typ: Long-only Spot-Scalping auf 5m-Kerzen

Signale:

  • EMA9/EMA21 — Lokaler Trendfilter
  • RSI-Cross-Up — Momentum-Trigger (schneller Einstieg)
  • BB-Width — Volatilitätsfilter (keine toten Märkte)
  • Volume > 20-MA — Volumen-Confirmation

Risk-Management:

Parameter Wert
Stoploss -2.5% (Tight-Stop)
Trailing Stop Ja, ab +1.2%
Trailing Offset 0.5%
ROI Stufe 1 1.5% sofort
ROI Stufe 2 0.8% nach 20 min
ROI Stufe 3 0.3% nach 1 h
ROI Stufe 4 jeder Profit nach 3 h

Order-Typen: Limit-Orders (Entry + Exit), Market bei Stoploss

Hyperopt-fähig: RSI-Parameter sind optimierbar

Dashboard

Erreichbar unter https://bot.ls-cloud.biz (nach Authelia-Login).

Funktionen:

  • Wallet-Übersicht (Gesamtwert, investiert, Profit)
  • Offene Trades (Pair, Einstieg, aktueller Kurs, PnL)
  • Tages-Chart (Canvas-basiert, keine externen Abhängigkeiten)
  • Wichtig: Zeigt Bot-interne Werte, nicht das echte Binance-Wallet!

Architektur:

  • Nginx liefert dashboard.html aus
  • /api/ → Proxy zu Freqtrade API (Port 8080) mit Basic Auth
  • /admin/ → Proxy zu ctrl-Service (Container-Steuerung)
  • Vollständig selbst enthaltenes HTML/CSS/JS (mobil-tauglich)

Betrieb & Wartung

Container-Status

# Auf dem Proxmox-Host
pct status 128
pct exec 128 -- docker compose -f /opt/freqtrade/docker-compose.yml ps

Docker-Services steuern

# In CT128
cd /opt/freqtrade

# Alle Services neustarten
docker compose down && docker compose up -d

# Logs einsehen
docker compose logs -f freqtrade
docker compose logs -f --tail 50 freqtrade

# Nur Config neu laden (ohne Neustart)
docker compose restart freqtrade

Config ändern

  1. Config editieren: nano /opt/freqtrade/config.json
  2. Strategie-Datei editieren: nano /opt/freqtrade/user_data/strategies/MrXScalper.py
  3. Bei Config-Änderung: docker compose restart freqtrade
  4. Bei Strategie-Änderung: docker compose restart freqtrade
  5. Bei docker-compose.yml-Änderung: docker compose down && docker compose up -d

⚠️ Live-Trading-Hinweise

  • dry_run: falseEchte Orders auf Binance!
  • API-Keys haben Trade-Berechtigung
  • Vor Änderungen immer prüfen, ob offene Trades existieren
  • Bei Unsicherheit vorher: docker compose stop freqtrade

Backup

  • Gesamtes /opt/freqtrade/ regelmäßig sichern
  • Wichtigste Dateien: config.json, user_data/strategies/, tradesv3.sqlite

Verknüpfte Dienste

Dienst CT Zweck
Authelia 113 Schützt bot.ls-cloud.biz
Caddy Host TLS + Reverse Proxy
OpenClaw 109 KI-Assistent (verwaltet/analysiert den Bot)

Troubleshooting

Problem Check
Bot traded nicht docker compose logs freqtrade \| grep -i error
Dashboard leer docker compose logs dashboard
Keine Internetverbindung DNS-Check in CT128: cat /etc/resolv.conf (sollte 8.8.8.8 sein)
API nicht erreichbar curl http://localhost:8080/api/v1/ping
Config-Fehler docker compose logs freqtrade \| head -20