Zum Inhalt

Trend Analysis Service – Overview

Ziel

Der Trend Analysis Service analysiert kontinuierlich die Preisbewegungen der gehandelten Währungspaare anhand technischer Indikatoren. Ziel ist es, dem Nutzer eine visuell nachvollziehbare und datenbasierte Entscheidungsgrundlage für potenzielle Trades zu liefern – ohne automatische Handelssignale oder Alerts.


Kernfunktionen

  • Berechnung technischer Indikatoren auf Basis der vom Data Layer bereitgestellten OHLCV-Daten
  • Visuelle Darstellung von Candlestick-Charts mit überlagerten Indikatoren im Browser
  • Unterstützung mehrerer Zeitrahmen (15min, 1h, 4h, Daily)
  • Darstellung klassischer und kreativer Indikatoren zur Trendanalyse
  • Leichtgewichtige Architektur optimiert für Raspberry Pi 4

Plattform-Integration

Komponente Beschreibung
Data Layer Bezieht OHLCV-Daten aus PostgreSQL (Schema: market_data)
Frontend Stellt Charts und Indikatoren im Browser bereit
Cloudflare Tunnel Erreichbar über matus-toolbox.com (hinter Cloudflare Access)

Zielbild

Der Nutzer öffnet die Applikation im Browser und sieht:

  • Candlestick-Chart für das gewählte Währungspaar
  • Überlagerte technische Indikatoren (Basis-Set + Kreativ-Set)
  • Wechsel zwischen Zeitrahmen (15min, 1h, 4h, Daily)
  • Wechsel zwischen Währungspaaren (EUR/USD, GBP/USD, USD/JPY, USD/CAD)
  • Klare, übersichtliche Darstellung ohne Informationsüberflutung

Architektur

PostgreSQL (market_data.forex_ohlcv, 15-Minuten-Kerzen)
FastAPI Backend "trend-analysis" (eigener Container, Port 8002)
  – Resampling 15min → 1h/4h/Daily via pandas
  – Heikin-Ashi-Transformation
  – Indikator-Berechnung direkt via pandas/numpy
React-Komponente TrendAnalysis.jsx (Teil des bestehenden Frontend-Containers)
  – Visualisierung via TradingView Lightweight Charts
Browser des Nutzers

Der Trend-Analysis-Service besteht aus einem eigenen Backend-Container (analog zu trading-data-layer, eigene Python-Abhängigkeiten wie pandas) und einer neuen Seite innerhalb der bestehenden Frontend-App — es gibt keinen zweiten Frontend-Container. Das passt zur Plattform, die genau eine Frontend-App hat, in der alle Bereiche als Navigationspunkte gebündelt sind.

Technischer Stack

Schicht Technologie Begründung
Datenquelle PostgreSQL (market_data.forex_ohlcv) bestehende Instanz aus Data Layer, rein lesend
Berechnung Python + pandas/numpy (direkt, kein pandas-ta) leichtgewichtig, Resampling/Heikin-Ashi/Indikatoren
API FastAPI (eigener Container, Port 8002) schnell, ressourcenschonend, gleiches Muster wie trading-data-layer
Visualisierung TradingView Lightweight Charts Browser-seitig, Pi wird nicht belastet
Frontend React-Komponente im bestehenden Frontend-Container kein zweiter Container/Build, CSS konsistent zum bestehenden Stack (kein Tailwind)

Fachlicher Fokus

Basis-Set (klassisch)

Indikator Zweck
EMA 20/50/200 Trendrichtung und Trendstärke
RSI Überkauft / Überverkauft Erkennung
MACD Trendwechsel und Momentum
Bollinger Bands Volatilität und Ausbruchszonen

Kreativ-Set (weniger verbreitet)

Indikator Zweck
Supertrend Klare Trendrichtung + Stop-Loss Level
Heikin-Ashi Geglättete Candlesticks, Rauschen reduziert
Bollinger + Keltner Squeeze Erkennung bevorstehender Ausbrüche
Force Index Trendstärke durch Preis + Volumen Kombination

Unterstützte Zeitrahmen

  • 15 Minuten
  • 1 Stunde
  • 4 Stunden
  • Daily

Unterstützte Währungspaare

  • EUR/USD
  • GBP/USD
  • USD/JPY
  • USD/CAD

Abgrenzung

In Scope Out of Scope
Technische Indikatorberechnung Fundamentale Analyse
Visuelle Chart-Darstellung Automatische Handelssignale
Manuelle Zeitrahmen-/Paarauswahl Alerts oder Benachrichtigungen
Historische Daten (6 Monate) Echtzeit-Tick-Daten
Leseansicht für den Nutzer Orderausführung oder Broker-Anbindung

Technische Eigenheiten & Entscheidungen

pandas-ta nicht verwendbar

pandas-ta war ursprünglich als Indikator-Library vorgesehen. Die einzige mit Python 3.11 / pandas 2.2 kompatible Version (0.3.14b0) wurde von PyPI zurückgezogen. Die aktuelle Version (0.4.71b0) erfordert Python ≥ 3.12 sowie numba (schwerer JIT-Compiler, nicht geeignet für Raspberry Pi ARM).

Entscheidung: Alle Indikatoren werden direkt mit pandas und numpy berechnet (ewm, rolling, etc.). Gilt für alle künftigen Indikatoren.


Forex-Volume von Twelve Data immer 0

Der kostenlose Twelve-Data-Feed liefert für alle Forex-Paare volume = 0. Der Force-Index-Indikator (REQ-TA-011) wäre damit wertlos.

Entscheidung: Der Indikator wird als "Tick-Momentum" umbenannt und verwendet die volumenfreie Formel EMA(13) von Δclose × |Δclose|. Größere Kursbewegungen werden quadratisch gewichtet, das Vorzeichen gibt die Richtung an.


lightweight-charts v4 – bekannte Einschränkungen

Einschränkung Workaround
Kein Multi-Pane-Support Separate createChart()-Instanz je Panel; Zeitachse und Crosshair werden manuell synchronisiert
Keine Farbe pro Datenpunkt bei Line-Serien Zwei Serien mit Lücken (z.B. Supertrend: grün für Aufwärts, rot für Abwärts)
Kein "Fill between two lines" Zwei-Area-Serien-Trick: obere Area bis baseValue = -1e6, zweite Area in Hintergrundfarbe deckt Überschuss ab
Keine Punkte an fixer Y-Position (z.B. Nulllinie) setMarkers() mit position: belowBar/aboveBar je Vorzeichen des Histogramm-Werts

Pip-Größen nach Währungspaar

Typ Beispiele Pip-Größe
Standard-Paare EUR/USD, GBP/USD, USD/CAD 0,0001 (4. Dezimalstelle)
JPY-Paare USD/JPY 0,01 (2. Dezimalstelle)

Wird im Backend via "JPY" in pair erkannt und für alle Pip-Berechnungen (Trade-Setup, ATR-Anzeige) verwendet.


Changelog

Version Datum Änderungen
1.0 2026-06-25 Initiale Version