Plattform-Architektur

SENTIMENT ANALYSE TRAINING PIPELINE PAPER TRADING RSS Feeds (17 Quellen) FAZ, Spiegel, Tagesschau, HB, n-tv, Welt, WiWo, Yahoo u.a. EventBridge Schedule Taeglich 5:00 UTC, Mo-Fr EventBridge Schedule Alle 5 Min, Mo-Fr 7:00-15:30 UTC RSS Sentiment Pipeline Lambda Python 3.11 | stuendlich Ticker-spezifisches Sentiment + Trend Step Functions Training Pipeline | taeglich 5:00 UTC Data Prep → Training x40 parallel Paper Trading + Risk Mgmt 16-Feature Obs., 5 Actions, Exp. Buffer SL/TP, Sektor-Limits, Retraining-Trigger FinBERT Container German FinBERT, 3GB Docker, PyTorch Data Prep 15-Min-Kerzen + DAX-Index + Sentiment + Bollinger RSI, MACD, Vol-Ratio, DAX-Korr. PPO Training x40 parallel, Walk-Forward 3 Folds, 25k Timesteps Stable-Baselines3, 5 Actions Yahoo Finance Proxy (15m) Lokale Maschine (AWS IPs blockiert) DATENSCHICHT DynamoDB sentiment-cache | paper-trading-state | training-results Pay-per-Request, TTL 24h S3 Bucket PPO Modelle (.zip) | Trainingsdaten (.csv) | Experience Buffer DAX 40 dynamisch, Experience Replay (5 Tage TTL) API & INTERFACE API Gateway - trading.u-like-it.de POST /sentiment GET /news GET /dashboard /stats /architecture Route53 + ACM Custom Domain, DNS, TLS Zertifikat MONITORING & ALERTING CloudWatch Alarms Cache-Hit-Rate, Lambda Duration SNS Topic finbert-alerts Dashboard Lambda Portfolio, Trades, Sentiment Stats, Architektur 5 Lambda Functions Step Functions 3 DynamoDB Tables S3 Bucket 2 CW Alarms DAX 40 dynamisch
Datenquellen
Lambda Functions
Orchestrierung (EventBridge, Step Functions)
Speicher (DynamoDB, S3)
API & Netzwerk
Monitoring & Alerting
- - - Gestrichelt = Cross-Referenz / Datenfluss

BERT vs. LLM — Was ist der Unterschied?

Beide basieren auf der Transformer-Architektur (Google, 2017), nutzen sie aber grundlegend anders:

BERT (Bidirectional Encoder)

BERT liest Text in beide Richtungen gleichzeitig und versteht dadurch den Kontext eines Wortes aus seiner gesamten Umgebung. Es ist spezialisiert auf Verstehen und Klassifizieren — z.B. „Ist dieser Satz positiv oder negativ?“

  • 110 Mio. Parameter (BERT-base)
  • Antwort in 50–200ms auf einer CPU
  • Läuft auf einem 3 GB Lambda Container
  • Kosten: ~$0,001 pro 1.000 Klassifikationen

LLM (Large Language Model)

LLMs wie GPT-4 oder Claude lesen Text nur von links nach rechts und erzeugen Token für Token neue Sprache. Sie können alles: Übersetzen, Programmieren, Analysieren — sind aber Generalisten.

  • 100–1.800 Mrd. Parameter (1.000x größer)
  • Antwort in 1–30 Sekunden
  • Benötigt GPU-Cluster oder API-Zugang
  • Kosten: ~$1–15 pro 1.000 Anfragen
EigenschaftBERT / FinBERTLLM (GPT, Claude)
AufgabeKlassifikationTextgenerierung
RichtungBidirektionalLinks → Rechts
Größe110 Mio. Parameter100+ Mrd. Parameter
Latenz~100ms~5.000ms
InfrastrukturCPU / LambdaGPU-Cluster / API
Kosten pro 1k~$0,001~$1–15
Fine-TuningEinfach, StundenKomplex, Tage/Wochen

Für unseren Anwendungsfall — tausende Nachrichtenartikel pro Tag schnell klassifizieren — ist BERT die klar bessere Wahl: 50x schneller, 1.000x günstiger, und für Sentiment-Analyse genauso präzise.

Wie wurde German FinBERT trainiert?

Unser Modell (scherrmann/GermanFinBert_SC_Sentiment) entstand in drei Stufen:

Stufe 1: BERT Vortraining (Google)

Das Original-BERT wurde auf dem gesamten englischen Wikipedia und BookCorpus trainiert. Es lernt allgemeines Sprachverständnis durch zwei Aufgaben:

  • Masked Language Model (MLM) — 15% der Wörter werden maskiert, das Modell muss sie vorhersagen
  • Next Sentence Prediction — Gehören zwei Sätze zusammen?

Stufe 2: Deutsche Finanzsprache

Das Basis-BERT wurde weiter trainiert auf deutschen Finanztexten: Geschäftsberichte, Ad-hoc-Mitteilungen, Wirtschaftsnachrichten. Das Modell lernt dabei Fachbegriffe wie „EBITDA“, „Dividendenrendite“ oder „Gewinnwarnung“.

Allgemeines BERT + Deutsche Finanztexte German FinBERT

Stufe 3: Sentiment Fine-Tuning

Im letzten Schritt wurde eine Klassifikationsschicht hinzugefügt und auf manuell gelabelten deutschen Finanznachrichten trainiert. Jeder Text wurde als positiv, negativ oder neutral markiert.

German FinBERT + Sentiment Labels Unser Modell

Wie nutzen wir es?

Unser System füttert stündlich ~180 deutsche Nachrichtenartikel durch das Modell. Für jeden Artikel liefert es drei Wahrscheinlichkeiten:

  • positive: 0.92 — „SAP steigert Umsatz über Erwartungen“
  • negative: 0.87 — „Bayer verliert Glyphosat-Klage“
  • neutral: 0.78 — „Hauptversammlung findet am Donnerstag statt“

Diese Sentiment-Scores fließen als 2 von 16 Features in den PPO Trading Agent ein (Sentiment-Score + Sentiment-Trend), zusammen mit Kursdaten, Bollinger Bands, DAX-Korrelation u.a.

PPO Trading Agent — Wie lernt unser Händler?

Reinforcement Learning (RL) ist ein Lernprinzip aus der KI: Ein Agent interagiert mit einer Umgebung, beobachtet Zustände, führt Aktionen aus und erhält Belohnungen. Durch Versuch und Irrtum lernt er eine Policy (Strategie), die den langfristigen Gewinn maximiert.

Was ist PPO?

Proximal Policy Optimization (Schulman et al., 2017 — OpenAI) ist einer der zuverlässigsten RL-Algorithmen. Er wurde auch zum Training von ChatGPT eingesetzt (RLHF). PPO hat zwei entscheidende Vorteile gegenüber älteren Methoden:

  • Stabile Updates — Die Policy wird pro Schritt nur um einen begrenzten Betrag geändert (Clipping bei ±20%), damit der Agent nicht „verlernt“
  • Sample-Effizienz — Jede gesammelte Erfahrung wird mehrfach für Updates genutzt (10 Epochen pro Batch), statt sie nach einmal Lernen wegzuwerfen

Unsere Trading-Umgebung

Jedes Aktienmodell trainiert in einer eigenen Gym-Umgebung, die den XETRA-Handel simuliert:

Zustand (16 Features)

Aktionen

0 — HOLD
1 — BUY_SMALL (25%)
2 — BUY_FULL (100%)
3 — SELL_HALF (50%)
4 — SELL_ALL (100%)

BUY_SMALL = 25% des Cash investieren
BUY_FULL = Gesamtes Cash investieren
SELL_HALF = 50% der Position verkaufen
SELL_ALL = Gesamte Position verkaufen

Belohnung (Reward)

reward = step*0.4 + sharpe*0.25 + sentiment*0.25 + hold_cost*0.1

  • Step Return: Aktuelle Schrittrendite (40%)
  • Rolling Sharpe: Risiko-adjustierte Rendite (25%)
  • Sentiment: Proportional ±0,03 (25%), skaliert mit Überzeugung
  • Holding Cost: -0,0005 pro Step bei offener Position (10%)

Training Pipeline (täglich + Event-getriggert)

Jeden Morgen um 6:00 Uhr (vor Börseneröffnung) läuft automatisch. Zusätzlich wird ein Retraining getriggert wenn der Tagesverlust ≥ 2% erreicht:

EventBridge 5:00 UTC Data Prep + Exp. Replay PPO Training ×40 parallel Modelle → S3 Paper Trading alle 5 Min
Daily Loss ≥ 5% Retraining Trigger Step Functions (gleiche Pipeline)
ParameterWertBedeutung
Timesteps25.000Handelsentscheidungen pro Trainingsrunde
Learning Rate0,0003Schrittweite beim Policy-Update
Batch Size64Erfahrungen pro Gradient-Schritt
N Steps (Rollout)~2.048Gesammelte Schritte vor jedem Update
Gamma0,97Gewichtung zukünftiger Belohnungen (kürzerer Horizont)
GAE Lambda0,95Glättung der Advantage-Schätzung
Clip Range0,2Max. Policy-Änderung pro Update (±20%)
Entropy Coefficient0,01Erkundungsanreiz (verhindert zu frühe Festlegung)
Epochen pro Batch10Wie oft jede Erfahrung wiederverwendet wird
Walk-Forward Folds3Rollierende Train/Test-Fenster, bestes Modell wird gespeichert
Parallelität40 gleichzeitigLambda-Trainings parallel via Step Functions
Daten-Zeitraum120 Tage15-Min-Kerzen + Sentiment + DAX-Index
Observation Space16 FeaturesKurs, Sentiment, Bollinger, DAX, Volumen u.a.
Action Space5 AktionenHOLD, BUY_SMALL, BUY_FULL, SELL_HALF, SELL_ALL

Daten-Features (Data Prep)

Für jedes der 40 DAX-Symbole werden täglich 120 Tage XETRA-Kursdaten in 15-Minuten-Auflösung von Yahoo Finance geladen. Zusätzlich wird der DAX-Index (^GDAXI) als Markt-Referenz abgerufen. Das Sentiment wird ticker-spezifisch zugeordnet (min. 10 Artikel pro Symbol, sonst Fallback auf Markt-Aggregat). Alle Daten werden mit folgenden Features angereichert:

Kurs (OHLCV) Sentiment (stündlich) Sentiment-Trend (4h Δ) Returns (15m, 1h, 1d) Volatilität (34-Bar) RSI (9) MACD (5/13) Bollinger Bands Volume Ratio DAX Tagesrendite DAX-Korrelation

34 Bars = 1 XETRA-Handelstag (8,5h × 4 Kerzen/h). Das Sentiment wird stündlich aus dem DynamoDB-Cache aggregiert und auf die 15-Min-Kerzen forward-filled. Die DAX-Korrelation wird als Rolling Correlation über 5 Handelstage berechnet. Bollinger Bands nutzen ein 20-Bar-Fenster mit 2σ.

Vom Training zum Paper Trading (Closed Loop)

Das Training nutzt Walk-Forward Validation mit 3 rollierenden Folds — das beste Modell über alle Folds wird als .zip in S3 gespeichert. Während der XETRA-Handelszeiten (9:00–17:30) lädt der Paper-Trading-Agent alle 5 Minuten die aktuellen Modelle, berechnet Live-Indikatoren (RSI, MACD, Bollinger, Volume Ratio) und holt DAX-Index-Daten für den 16-dimensionalen Observation-Vektor. Der Agent wählt aus 5 Aktionen (HOLD, BUY_SMALL 25%, BUY_FULL 100%, SELL_HALF 50%, SELL_ALL 100%) — mit echten Kursen, aber simuliertem Kapital (100.000€). Zusätzlich greifen Risikomanagement-Regeln: Stop-Loss, Take-Profit, Sektor-Limits und ein Drawdown-Stop, der den Handel bei zu hohen Verlusten pausiert.

Experience Buffer & Event-Retraining

Der Paper-Trading-Agent speichert nach jedem 5-Minuten-Zyklus alle Observations, Actions und Rewards als Experience Buffer in S3 (TTL: 5 Tage). Diese realen Erfahrungen fließen als Experience Replay (2x gewichtet) ins nächste Training ein — das Modell lernt dadurch schneller aus echten Marktsituationen.

Zusätzlich wird bei ≥ 5% Tagesverlust automatisch ein Retraining der gesamten Pipeline getriggert (sofern nicht bereits eines läuft). Das ermöglicht schnelle Adaption an veränderte Marktbedingungen, ohne die Stabilität des täglichen Trainings zu gefährden.