Files
Trademind/deploy/trademind.container
T
Tobias Zimmermann 65ed73977e Initial commit: TradeMind – Krypto-Trading-Bot mit Lernmodus
Per Podman deploybarer Bot, der Käufe und Verkäufe simuliert ausführt und sich
aus den Ergebnissen weiter antrainiert.

Aufbau
- Einheitliche Bar-Verarbeitung für paper, backtest und live; ausgetauscht werden
  nur Datenquelle und Broker.
- Börsenanbindung über ccxt: rund 100 Börsen allein über exchange.id erreichbar.
  Zugangsdaten kommen über ENV-Platzhalter, der Live-Modus ist doppelt abgesichert.
- Paper-Broker mit Gebühren, Slippage, Börsenpräzision und Volumengrenzen.
- Online trainierte logistische Regression bewertet jedes Einstiegssignal. Sie lernt
  aus realen Trade-Ergebnissen, aus Shadow-Labels aller Kandidaten – auch der
  abgelehnten – und aus Hintergrund-Stichproben; beim Kaltstart wird sie aus der
  Kurshistorie vorgelernt.
- Risikomanagement: Positions- und Exposure-Grenzen, ATR-Stops, Cooldown sowie
  Tagesverlust- und Drawdown-Notbremsen.
- SQLite-Persistenz, HTTP-Status mit Prometheus-Metriken und Dashboard, Webhooks.

Deployment
- Containerfile (zweistufig, non-root UID 10001), podman-compose, systemd-Quadlet.
- Modell und Datenbank liegen im Volume /data und überleben Neustarts.

128 Tests, ruff sauber. Verifiziert gegen echte Marktdaten sowie im gebauten
Container inklusive Healthcheck und Zustandswiederherstellung.
2026-08-22 08:53:04 +02:00

60 lines
1.7 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Podman-Quadlet-Einheit der sauberste Weg, TradeMind dauerhaft laufen zu lassen.
#
# Installation (rootless, empfohlen):
# mkdir -p ~/.config/containers/systemd
# cp deploy/trademind.container ~/.config/containers/systemd/
# mkdir -p ~/.config/trademind && cp config/config.yaml config/trademind.env ~/.config/trademind/
# systemctl --user daemon-reload
# systemctl --user start trademind
# systemctl --user status trademind
# journalctl --user -u trademind -f
#
# Damit der Dienst auch ohne aktive Anmeldung läuft:
# loginctl enable-linger $USER
#
# Für den systemweiten Betrieb stattdessen nach /etc/containers/systemd/ kopieren
# und "systemctl" ohne --user verwenden.
[Unit]
Description=TradeMind selbstlernender Krypto-Trading-Bot
Documentation=https://github.com/tlt-turbo/trademind
After=network-online.target
Wants=network-online.target
[Container]
Image=localhost/trademind:latest
ContainerName=trademind
AutoUpdate=local
# Konfiguration schreibgeschützt, Daten persistent
Volume=%h/.config/trademind:/config:ro,Z
Volume=trademind-data.volume:/data:Z
EnvironmentFile=%h/.config/trademind/trademind.env
Environment=TRADEMIND_CONFIG=/config/config.yaml
Exec=run --config /config/config.yaml
# Dashboard/Metriken nur auf dem Loopback-Interface
PublishPort=127.0.0.1:8080:8080
# Härtung
NoNewPrivileges=true
DropCapability=ALL
UserNS=keep-id
HealthCmd=python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=4).status==200 else 1)"
HealthInterval=30s
HealthTimeout=5s
HealthRetries=3
HealthStartPeriod=45s
[Service]
Restart=always
RestartSec=15
# SIGTERM zuerst die Engine beendet den laufenden Durchlauf und speichert das Modell.
TimeoutStopSec=90
[Install]
WantedBy=default.target