Files
Trademind_OpenCode/README.md
T

4.1 KiB
Raw Blame History

TradeMind

Krypto-Tradingbot (Python) mit Paper-/Simulationsmodus, Live-Trading und Antrainierung der Strategie.

Per Podman deploybar. Alle API-Keys werden aus der config.yaml oder aus Environment-Variablen gelesen.

Features

  • Paper / Simulation: führt Käufe & Verkäufe gegen einen Candles-Feed durch, ohne echtes Geld.
  • Live: platziert reale Markerorders über ccxt (Binance, Kraken, Coinbase, KuCoin, OKX, Bybit, BitMEX …).
  • Antrainieren (train): evolutionäre Optimierung der Strategie-Parameter + Signalgewichte auf Simulationsdaten (Fitness = gewichteter Return + Sharpe Max-Drawdown).
  • Kernstrategie: MACD-Cross + RSI + ATR-Stop-Loss.
  • Konfiguration: eine config.yaml, mehrere Exchanges in state/weights.json persistierbar.

Installation (lokal / Dev)

python -m venv .venv
.venv\Scripts\activate        # Windows
pip install -r requirements.txt
python -m trademind --help

Podman (empfohlener Deploy)

# 1. Build
podman build -t trademind:latest -f Podmanfile .

# 2. Paper-Modus (kein API-Key nötig)
podman run --rm trademind:latest paper --config /app/config.yaml

# 3. Training (Strategie wird antrainiert)
podman run --rm -v $PWD/state:/app/state trademind:latest train --config /app/config.yaml

# 4. Live-Trading (NUR mit echten Keys + sandbox: false)
podman run -it --rm \
  -e BINANCE_API_KEY=... \
  -e BINANCE_API_SECRET=... \
  trademind:latest live --config /app/config.yaml

Mit podman-compose (optional)

pip install podman-compose        # ein Mal
podman-compose build
podman-compose up paper           # Simulationslauf
podman-compose run --rm train     # Antrainieren
podman-compose run --rm live      # Live-Zyklus

Konfiguration (config.yaml)

trading:
  base_currency: BTC
  quote_currency: USDT
  initial_balance: 10000
  position_size_pct: 0.10
  fee_pct: 0.001
  slippage_pct: 0.0005
  timeframe: 1h
  candles: 500

strategy:
  fast_period: 12
  slow_period: 26
  rsi_overbought: 70
  rsi_oversold: 30
  atr_stop_mult: 2.5
  allow_long: true
  allow_short: false

training:
  generations: 15
  population: 30
  seed: 42
  state_file: state/weights.json

exchanges:
  binance:
    api_key: ${BINANCE_API_KEY}
    api_secret: ${BINANCE_API_SECRET}
    sandbox: true
  kraken:
    api_key: ${KRAKEN_API_KEY}
    api_secret: ${KRAKEN_API_SECRET}
    sandbox: true
  coinbase:
    api_key: ${COINBASE_API_KEY}
    api_secret: ${COINBASE_API_SECRET}
    sandbox: true
  kucoin:
    api_key: ${KUCOIN_API_KEY}
    api_secret: ${KUCOIN_API_SECRET}
    password: ${KUCOIN_PASSPHRASE}
    sandbox: true

CLI

trademind paper   # Paper-/Simulationslauf (Echte Marktkurse, Orders nur simuliert)
trademind live    # ein Live-Zyklus (echte Orders)
trademind train   # optimiert die Strategie-Parameter & -gewichte
trademind show    # zeigt die geladene Konfiguration (Keys maskiert)

Kursdatenquellen (paper & train)

Die Standard-Modus --data auto nutzt echte Marktkurse über die öffentliche ccxt-API (Binance ist default) keine API-Keys nötig. Bei Erreichbarkeitsproblemen fällt automatisch auf generierte mock-Daten zurück.

trademind paper --data live --exchange kraken     # zwingend live (sonst Fehler)
trademind paper --data mock                       # deterministische Offline-Daten
trademind train --data live --exchange coinbase   # Training auf echten Kursdaten

Antrainieren im Detail

trademind train erzeugt eine Population randomisierter Parameter (fast/slow/signal, rsi_*, atr_stop_mult, Signalgewichte) und optimiert sie per Elitismus + Crossover + Mutation so, dass die gewichtete Fitness gestiegen ist:

Fitness  =  0.6 × TotalReturn  +  0.3 × (Sharpe/10)    0.1 × MaxDrawdown

Das Ergebnis wird in state/weights.json gespeichert und bei paper / live automatisch geladen.

Sicherheit / Haftung

  • Paper-/Simulationsmodus nutzt keine echten Order.
  • Live-Orders sind auf eigenes Risiko. Es gibt keine Garantie für Erträge.
  • API-Keys niemals committen.

Tests

pip install pytest
python -m pytest