Zum Inhalt

Frontend und API Architektur Trade Optimizer

ID: REQ-TO-005 · Service: trade-optimizer · Status: 🟢 aktiv · Use Case: UC-TO-001, UC-TO-008


Technische Spezifikation des FastAPI Backends und React Frontends für den Trade Optimizer. Der Service aggregiert Daten aus bestehenden Services und stellt einen neuen Navigationspunkt bereit.


Backend

Framework: FastAPI

Language: Python 3.11+

Port: 8004

Endpoints

Analyze

Path: GET /api/v1/trade-optimizer/analyze

Parameter
Pair
string
Beschreibung

Hauptendpunkt – ruft Trend, Fundamental und MTF parallel ab (asyncio.gather), berechnet Trade-Setup und erkennt Muster wenn Setup != neutral.

Response Felder
  • pair, trend, fundamental, mtf, setup, patterns
Datenquellen
  • Trend Analysis API (intern) – 1h Score und Indikator-Zusammenfassung
  • Fundamental Analysis API (intern)
  • Trend Analysis API (intern) × 4 – MTF Scores parallel (15min, 1h, 4h, daily)
  • PostgreSQL market_data.forex_ohlcv (nur wenn Setup != neutral)

Bibliothek

Feld Wert
Path GET /api/v1/trade-optimizer/library
Beschreibung Gibt alle 14 Muster aus PATTERN_LIBRARY zurück inkl. SVG-Pfade und vollständiger Erklärungsmetadata. Wird einmalig beim Seitenaufruf geladen.

Summary

Path: GET /api/v1/trade-optimizer/summary

Parameter
Pair
string

Beschreibung: Nur Trend + Fundamental-Zusammenfassung (ohne MTF, Setup, Muster)

Setup

Path: GET /api/v1/trade-optimizer/setup

Parameter
Pair
string

Beschreibung: Berechnet Trade-Setup aus kombinierten Scores

Patterns

Path: GET /api/v1/trade-optimizer/patterns

Parameter
Eintrag 1
Feld Wert
Pair string
Eintrag 2
Feld Wert
Setup enum [long, short]

Beschreibung: Erkennt Top 3 Einstiegsmuster auf 5min-Daten (eigenständig aufrufbar)

Health

Feld Wert
Path GET /health
Beschreibung Gibt Datenbankstatus zurück

Abhängigkeiten

  • Trend Analysis Service (intern, HTTP) – Score + Indikator-Zusammenfassung + Trade-Setup
  • Fundamental Analysis Service (intern, HTTP)
  • PostgreSQL (market_data.forex_ohlcv, 5min)

Frontend

Framework: React

Styling: Eigenes CSS (TradeOptimizer.css + shared/TradingAnalysis.css)

Feld Wert
Label Trade Optimizer
Icon 🎯
Position Hauptnavigation (nach Trend Analysis)

Layout

Sektion 1

Name: Währungspaar + Kalender-Hinweis

Komponenten
  • Pair Selector (Tabs)
  • Wirtschaftskalender Badge + Hinweisbox
  • Aktualisieren-Button

Sektion 2

Name: Trendanalyse (1h)

Komponenten
  • InterpretationPanel (Score, Kategorie, Indikator-Liste)

Sektion 3

Name: Multi-Timeframe-Ausrichtung

Sichtbar Wenn: immer (wenn data vorhanden)

Komponenten
Eintrag 1
Feld Wert
Mtftable (4 Spalten 15min, 1h, 4h, Daily)
Eintrag 2
Feld Wert
Je Zeitrahmen Dot, Score, Kategorie-Label
  • Alignment-Text (z.B. "3/4 bullish – starkes Signal")

Sektion 4

Name: Fundamentalanalyse

Komponenten
  • FundamentalScoreCard (Score, Kategorie, Treiber)

Sektion 5

Name: Trade-Setup

Komponenten
  • TradeSetupCard
Eintrag 2
Feld Wert
Long/Short Entry, SL, TP, RR-Ratio, Begründung, Disclaimer
  • Neutral: "= Neutral" Badge + S/R Referenzlevel (BB, SuperTrend, ATR)

Sektion 6

Name: Erkannte Einstiegsmuster

Sichtbar Wenn: Setup != NEUTRAL und mindestens 1 Muster erkannt

Komponenten
  • PatternCard (#1–3) mit Match Score Bar + ℹ-Button

Sektion 7

Name: Musterbibliothek

Sichtbar Wenn: immer (library.length > 0)

Label
Feld Wert
Long Long-Muster – Referenz
Short Short-Muster – Referenz
Neutral Musterbibliothek
Komponenten
  • LibraryCard je Muster (SVG + "Was ist es?" + ℹ-Button)

Responsive

Feld Wert
Mobile ja (Portrait-Modus, Muster-Body flex-direction column)
Desktop ja

Docker

Feld Wert
Image python:3.11-slim
Port Staging 8014
Port Production 8004

Abnahmekriterien

  • [ ] Navigationspunkt "Trade Optimizer" ist in der Hauptnavigation sichtbar
  • [ ] Alle 7 Sektionen werden korrekt dargestellt
  • [ ] Layout ist responsiv auf Desktop und Mobile
  • [ ] Bei NEUTRAL wird Sektion 6 (Erkannte Muster) ausgeblendet, Bibliothek bleibt sichtbar
  • [ ] MTF-Tabelle zeigt Scores für alle 4 Zeitrahmen
  • [ ] /analyze-Endpunkt aggregiert alle Daten in einem Request (parallel)
  • [ ] /library-Endpunkt liefert vollständige Muster-Metadaten
  • [ ] Ladezeit der gesamten Seite unter 3 Sekunden
  • [ ] API Dokumentation via Swagger unter /docs erreichbar

Changelog

Eintrag 1

Version: 1.0

Changes: Initiale Version

Eintrag 2

Version: 1.1

Changes

Layout auf 7 Sektionen erweitert (MTF + Musterbibliothek immer sichtbar); /analyze als Haupt-Endpoint; /library Endpoint; Styling-Info korrigiert (eigenes CSS statt Tailwind)