No description
- Python 97.6%
- PLpgSQL 1.8%
- Shell 0.6%
|
Some checks failed
test-and-deploy.yml / v1.13.7: MQTT import os gefixt (push) Failing after 0s
|
||
|---|---|---|
| .claude | ||
| .gitea/workflows | ||
| config | ||
| db | ||
| docs | ||
| migrations | ||
| Phase1 | ||
| scripts | ||
| src | ||
| systemd | ||
| tests | ||
| .aiderignore | ||
| .env.example | ||
| .gitignore | ||
| ANALYSE_WIN_RATE_V1_8_2_FINAL.md | ||
| CHANGELOG.md | ||
| CODE_REVIEW.md | ||
| CONTEXT.md | ||
| DEPLOY.md | ||
| LIVE_READINESS_CHECKLIST.md | ||
| Makefile | ||
| PROJEKT_PLAN_WIN_RATE_OPTIMIERUNG.md | ||
| pyproject.toml | ||
| README.md | ||
| README_TEST.md | ||
| requirements.txt | ||
| TECHNICAL_LIVE_ASSESSMENT.md | ||
| WORKFLOW.md | ||
Grashuepfer
Autonomes Intraday-Trading-System auf Basis eines LLM (Claude Haiku 4.5). Handelt GER40 und EURUSD CFDs über Pepperstone (cTrader, Razor Demo).
Regelwerk: docs/trading_rulebook_v8.md
Stack
| Komponente | Technologie |
|---|---|
| Broker | Pepperstone (cTrader Razor Demo) |
| Broker-API | cTrader Open API (Python, ctrader-open-api) |
| LLM | Claude Haiku 4.5 (Anthropic API) |
| News / Kalender | Finnhub Free Tier |
| Datenbank | PostgreSQL 16 |
| Infrastruktur | Proxmox LXC, Ubuntu 24, lokal |
| Python | ≥ 3.11 |
Projektstruktur
grashuepfer/
├── db/
│ └── schema.sql PostgreSQL-Schema
├── docs/
│ ├── trading_rulebook_v8.md
│ └── todo_testlaeufe.md
├── src/
│ ├── config.py Konfiguration aus Umgebungsvariablen
│ ├── main.py Einstiegspunkt, 5-min-Poll-Loop
│ ├── broker/ cTrader API Client
│ ├── db/ asyncpg-Repository
│ ├── analysis/ Technische Analyse, Checkliste, Guardrails
│ ├── llm/ LLM-Entscheidungs-Engine
│ ├── news/ Finnhub-Client, Kalender-Sync
│ └── trading/ Executor, Hard Stop, Overnight, Notifications
├── .env.example
├── CHANGELOG.md
├── pyproject.toml
└── requirements.txt
Setup
1. Abhängigkeiten installieren
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
2. Umgebungsvariablen konfigurieren
cp .env.example .env
# .env befüllen (cTrader-Credentials, DB-URL, Finnhub-Key, SMTP, Anthropic-Key)
3. Datenbank einrichten
psql -U postgres -c "CREATE DATABASE trading;"
psql -U postgres -d trading -f db/schema.sql
4. System starten
trading
# oder direkt:
python -m src.main
Konfiguration (.env)
| Variable | Beschreibung |
|---|---|
CTRADER_CLIENT_ID |
cTrader App Client ID |
CTRADER_CLIENT_SECRET |
cTrader App Client Secret |
CTRADER_ACCESS_TOKEN |
OAuth Access Token |
CTRADER_REFRESH_TOKEN |
OAuth Refresh Token |
CTRADER_ACCOUNT_ID |
Pepperstone Account ID (Live/Demo wird automatisch erkannt) |
DATABASE_URL |
PostgreSQL DSN |
FINNHUB_API_KEY |
Finnhub API Key (Free Tier) |
ANTHROPIC_API_KEY |
Anthropic API Key |
SMTP_HOST |
SMTP-Server für Alerts |
SMTP_PORT |
SMTP-Port (default: 587) |
SMTP_USER |
SMTP-Benutzername |
SMTP_PASSWORD |
SMTP-Passwort |
ALERT_EMAIL |
Empfänger-Adresse für Alerts |
Architektur
main.py (5-min-Loop)
│
├── news/FinnhubClient → Wirtschaftskalender + News (stündlich)
├── broker/CTraderClient → Spot-Preise, H4/M5-Kerzen, Account-Info
│
├── analysis/
│ ├── update_h4_trend() → EMA20/EMA50, Trend-Status (§3.2)
│ ├── calc_avg_5min() → Ø-Bewegung für Event-Proximity (§3.3)
│ └── run_checklist() → 15 Pflichtvoraussetzungen (§5)
│
├── llm/DecisionEngine → LONG / SHORT / NO_TRADE + Parameter
│
└── trading/TradeExecutor
├── execute() → Checkliste → DB → Broker-Order
├── close_trade() → Exit → PnL → Steuerprovision → Milestone
└── GuardrailMonitor → Hard Stop §8, Tagesverlust §7
Wichtige Regelwerk-Referenzen
| Modul | Regelwerk |
|---|---|
| Instrumente, Spreads, Kosten | §1, §2 |
| Handelszeitfenster | §3.1 |
| H4-Trend-Filter | §3.2 |
| Event-Proximity, Vortags-Sperre | §3.3 |
| Spread-Filter | §3.4 |
| Overnight-Regime | §3.5 |
| Post-GAP-Protokoll | §3.6 |
| Positionsgrößen-Berechnung | §4 |
| Pflichtvoraussetzungen (15 Punkte) | §5 |
| Risikomanagement | §6 |
| Dynamische Guardrails | §7 |
| Kapitalschutz-Trigger, Hard Stop | §8 |
| Notfall- und Fehlerprozeduren | §9 |
| Lernprozess, Lernzyklen | §10 |
| Gewinnabschöpfung (Milestones) | §11 |
Hard Stop
Bei verfügbares_kapital < 500 €:
- Keine neuen Trades
- SL aller offenen Positionen auf 50 % nachziehen
- Mail an konfigurierte
ALERT_EMAIL - Warten auf manuellen Restart
Restart: Datei /state/restart.flag anlegen.
Backup
Tägliches pg_dump um 00:00 CET nach /var/backups/trading/.
30 Tage Rolling-Aufbewahrung.
Bei Fehler: Mail-Alert (§9.4).
Für Cloud-Sync (empfohlen):
# Beispiel: rclone → Backblaze B2
rclone copy /var/backups/trading/ b2:mein-bucket/trading/
Steuern (Deutschland)
Das System hält eine laufende Steuerprovision vor:
steuerprovision = max(0, (jahres_brutto_pnl − verlustvortrag_vorjahre) × 0,26375)
verfügbares_kapital = pepperstone_kontostand − reserviertes_kapital − steuerprovision
Jahreswechsel (1. Januar): verlustvortrag und jahres_brutto_pnl werden automatisch aktualisiert.
Details: docs/trading_rulebook_v8.md §2.2.