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.
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
# Persistentes Volume für SQLite-Datenbank und trainiertes Modell.
|
||||
# Zusammen mit trademind.container nach ~/.config/containers/systemd/ kopieren.
|
||||
|
||||
[Unit]
|
||||
Description=TradeMind – Datenvolume (Datenbank und Modellgewichte)
|
||||
|
||||
[Volume]
|
||||
VolumeName=trademind-data
|
||||
@@ -0,0 +1,59 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user