No description
  • Python 97.6%
  • PLpgSQL 1.8%
  • Shell 0.6%
Find a file
Thoralf Will c3c8d7afff
Some checks failed
test-and-deploy.yml / v1.13.7: MQTT import os gefixt (push) Failing after 0s
v1.13.7: MQTT import os gefixt
2026-06-26 13:40:52 +00:00
.claude fix: v1.3.29 – Event-Blackouts: FOMC/GDP-Matching + tier1-Sicherheitsnetz 2026-05-29 05:50:07 +00:00
.gitea/workflows v1.9.0: ci-gated sys-reload, mqtt-fix 30s, prod-profile, gap-risk, adaptive-rr fix, hard-rule §4.2, migration-runner, config-validator, health-endpoint, circuit-breaker, structured-logging 2026-06-24 09:40:01 +00:00
config v1.9.0: ci-gated sys-reload, mqtt-fix 30s, prod-profile, gap-risk, adaptive-rr fix, hard-rule §4.2, migration-runner, config-validator, health-endpoint, circuit-breaker, structured-logging 2026-06-24 09:40:01 +00:00
db v1.9.0: ci-gated sys-reload, mqtt-fix 30s, prod-profile, gap-risk, adaptive-rr fix, hard-rule §4.2, migration-runner, config-validator, health-endpoint, circuit-breaker, structured-logging 2026-06-24 09:40:01 +00:00
docs feat: v1.8.0 – Champion-Live, Produktiv-Vorbereitung & Stabilität 2026-06-12 23:42:36 +00:00
migrations feat: v1.5.12 – Regeloptimierung voll per-Profil (#64) 2026-06-03 04:44:44 +00:00
Phase1 feat: Win-Rate-Optimierung - Phase 1 Vorbereitungen & Instrument-Analyse 2026-06-16 14:56:35 +00:00
scripts v1.12.0: Strukturelle Meta-Tests – 13 Invarianten verhindern Datenverlust-Bugs für immer 2026-06-24 18:13:20 +00:00
src v1.13.7: MQTT import os gefixt 2026-06-26 13:40:52 +00:00
systemd fix: Shutdown-Timeout – cTrader-Disconnect 30s Timeout + systemd TimeoutStopSec=120 2026-05-26 17:58:19 +00:00
tests v1.13.0: 27 neue Tests – Korpus, Migration-Idempotenz, Prompt-Injektion, structlog→logging fix 2026-06-24 19:11:10 +00:00
.aiderignore fix: v1.3.9 – YAML-Schutz: .aiderignore + pre-commit Hook + CI-Guard 2026-05-27 19:35:36 +00:00
.env.example fix: Code-Review-Fixes — Locks, Backoff, Tagesgrenze, .env.example 2026-06-11 05:39:08 +00:00
.gitignore fix: v1.3.29 – Event-Blackouts: FOMC/GDP-Matching + tier1-Sicherheitsnetz 2026-05-29 05:50:07 +00:00
ANALYSE_WIN_RATE_V1_8_2_FINAL.md feat: Win-Rate-Optimierung - Phase 1 Vorbereitungen & Instrument-Analyse 2026-06-16 14:56:35 +00:00
CHANGELOG.md fix: Code Review v1.8.12 - 6 kritische Fehler behoben (v1.8.13) 2026-06-22 21:45:37 +00:00
CODE_REVIEW.md
CONTEXT.md
DEPLOY.md
LIVE_READINESS_CHECKLIST.md v1.9.0: ci-gated sys-reload, mqtt-fix 30s, prod-profile, gap-risk, adaptive-rr fix, hard-rule §4.2, migration-runner, config-validator, health-endpoint, circuit-breaker, structured-logging 2026-06-24 09:40:01 +00:00
Makefile
PROJEKT_PLAN_WIN_RATE_OPTIMIERUNG.md feat: Win-Rate-Optimierung - Phase 1 Vorbereitungen & Instrument-Analyse 2026-06-16 14:56:35 +00:00
pyproject.toml v1.13.7: MQTT import os gefixt 2026-06-26 13:40:52 +00:00
README.md fix: v1.5.1 – Config evaluiert & bereinigt (.env/.env.example/README) + Drift-Guard-Test 2026-05-31 09:12:54 +00:00
README_TEST.md
requirements.txt ci: Python 3.13 in CI-Pipeline; aiomqtt zu requirements.txt hinzugefügt 2026-05-24 09:32:15 +00:00
TECHNICAL_LIVE_ASSESSMENT.md v1.9.0: ci-gated sys-reload, mqtt-fix 30s, prod-profile, gap-risk, adaptive-rr fix, hard-rule §4.2, migration-runner, config-validator, health-endpoint, circuit-breaker, structured-logging 2026-06-24 09:40:01 +00:00
WORKFLOW.md fix: v1.3.20 – pyproject.toml Version auf 1.3.20 + CP3.5 im Workflow 2026-05-28 15:51:24 +00:00

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 €:

  1. Keine neuen Trades
  2. SL aller offenen Positionen auf 50 % nachziehen
  3. Mail an konfigurierte ALERT_EMAIL
  4. 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.