Files
IBKRTrader/docs/archiv/KONZEPT-Datenlage-und-Strategien.md
T
RichardandClaude Opus 5 9f66183f1c
Build & Test / build (ubuntu-latest) (push) Waiting to run
Build & Test / build (windows-latest) (push) Waiting to run
Eine Roadmap statt sieben Konzepte; Quelldokumente ins Archiv
Der offene Stand lag ueber sieben Konzepte, zwei Referenzdokumente und die
Phasen-Checkliste der Architektur verteilt. Dieselbe Aufgabe stand teils
doppelt unter zwei Namen - die asynchrone Fill-Verfolgung etwa als "bekannte
Grenze" in IBKR-Integration.md und zugleich als W-2 im OptionsWheel-Konzept.
Wer wissen wollte, was als Naechstes ansteht, musste alles neun lesen.

docs/ROADMAP.md fuehrt das zusammen:
  - Fuenf Stufen in Abhaengigkeitsreihenfolge, von "Fundament schliessen" bis
    zum OptionsWheel, dazu vier laufende Bahnen (Auslieferung, Accounting,
    Supervisor, technische Schulden).
  - Jede Zeile traegt ihre Herkunft (W-2, P5, Kapitalmodell 5, ...), damit die
    Herleitung im Archiv auffindbar bleibt.
  - Eigene Abschnitte fuer Zurueckgestelltes und Verworfenes. Zurueckgestellte
    Ideen nennen ausdruecklich, WAS sie wieder aktuell macht; verworfene nennen
    den Grund, damit sie nicht in sechs Monaten erneut vorgeschlagen werden.
  - Erledigtes bleibt als Zeile mit Datum stehen statt zu verschwinden.

Archiv (git erkennt alle sieben als Umbenennung, Historie bleibt):
  docs/konzepte/*         -> docs/archiv/
  docs/Kapital-und-Buchmodell.md -> docs/archiv/
Jedes archivierte Dokument bekommt oben einen Vermerk, warum es erhalten bleibt
und wo der lebende Stand steht. Inhaltlich ist keines veraendert.

Weiter gepflegt werden ARCHITECTURE.md (Aufbau + Phasen-Historie),
IBKR-Integration.md (Adapter-Design und Grenzen) und die TWS-Setup-Checkliste -
das sind Referenzen, keine Planung. Ihre eigenen Offen-Listen verweisen jetzt
mit Roadmap-Kennung dorthin, statt einen zweiten Stand zu fuehren.

Alle 63 relativen Markdown-Links geprueft, keiner tot. Fuenf Pfadverweise in
Code, csproj und systemd-Unit mitgezogen; die Unit zeigte auf die
Portierungsanalyse, die ausdruecklich den Stand VOR dem Umbau beschreibt - jetzt
auf ARCHITECTURE.md. Build 0 Warnungen, 198/198 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 18:14:51 +02:00

217 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> ### 📩 Archiviert am 2026-08-23
> Dieses Dokument wird **nicht mehr gepflegt**. Was davon noch offen ist, steht in der
> [Roadmap](../ROADMAP.md) – dort und nur dort wird der Stand nachgefĂŒhrt.
>
> Es bleibt erhalten, weil es **gegen das laufende Paper-Gateway gemessen** ist und nicht aus der IBKR-Doku uebernommen.
> Die Zurueckgestellt- und Verworfen-Listen der Roadmap stuetzen sich auf diese Messwerte. Zum Nachschlagen also weiterhin richtig,
> als Aufgabenliste nicht mehr.
---
# Analyse: Datenlage ĂŒber die TWS API – und welche Strategien sie trĂ€gt
> Stand: 2026-08-04. **Alle Angaben in Abschnitt 1 und 2 sind gegen das laufende Paper-Gateway
> gemessen** (Konto DUR371528, TWS API 9.76.1, `MarketDataType = 4`), nicht aus der IBKR-Doku
> ĂŒbernommen. Wo etwas nur plausibel, aber ungeprĂŒft ist, steht es ausdrĂŒcklich dabei.
>
> Zweck: entscheiden, welche Strategien wir **ohne zusĂ€tzliche Datenanbieter** bauen können –
> und welche wir uns sparen, weil die Datengrundlage fehlt.
---
## 0. Kurzfassung
Die TWS API deckt **Preis-, VolatilitÀts- und Optionsdaten sehr gut ab** und **Fundamentaldaten
gar nicht**. Zwei Grenzen bestimmen den Zuschnitt jeder Strategie:
1. **Kein Screening.** Der Marktscanner ist gesperrt (Realtime-Abo nötig). Wir können den Markt
nicht nach Kandidaten durchsuchen – jede Strategie muss auf einer **fest gepflegten Watchlist**
arbeiten. Das deckt sich mit der Festlegung im [OptionsWheel-Konzept](KONZEPT-Modul-OptionsWheel.md).
2. **Nur verzögerte Kurse (~15 Min).** Alles, was auf Intraday-Reaktion beruht, fÀllt weg.
Entscheidungen auf Tages- oder Wochenbasis sind davon **nicht** betroffen.
Innerhalb dieser Grenzen ist die Lage gut: 30 Jahre Kurshistorie, dividendenbereinigte Serien,
VolatilitÀtshistorie, vollstÀndige Optionsketten und **funktionierende Griechen auch mit
verzögerten Daten**. Das trÀgt PrÀmienstrategien und Trendfolge auf Tagesbasis ohne jeden
externen Anbieter.
**Empfehlung:** OptionsWheel als erstes Modul weiterbauen – es ist die Strategie mit dem besten
VerhÀltnis von vorhandener Datengrundlage zu Ertragserwartung, und die Voraussetzungen sind
inzwischen alle geprĂŒft.
---
## 1. Was die API liefert (gemessen)
### 1.1 Kurshistorie – die stĂ€rkste SĂ€ule
| Auflösung | VerfĂŒgbarer Zeitraum | Gemessen an AAPL |
|---|---|---|
| Monatsbars | **30 Jahre** | 361 Bars ab 1996-08 |
| Wochenbars | 15 Jahre | 783 Bars ab 2011-08 |
| Tagesbars | 10 Jahre | 2.511 Bars ab 2016-08 |
| Stundenbars | 2 Jahre | 3.488 Bars |
| Minutenbars | 30 Tage | 11.453 Bars |
| Einzelticks | `reqHistoricalTicks` | 351 Ticks fĂŒr 2 Tage zurĂŒck |
ZusÀtzlich:
- **`ADJUSTED_LAST`** – dividendenbereinigte Tageskurse. Wichtig: unbereinigte Serien erzeugen bei
jeder AusschĂŒttung ein Scheinsignal in Momentum- und Mean-Reversion-Rechnungen.
- **`HISTORICAL_VOLATILITY`** – realisierte VolatilitĂ€t als Zeitreihe (122 Tage je Abruf).
- **`OPTION_IMPLIED_VOLATILITY`** – **IV-Historie des Basiswerts** (122 Tage je Abruf).
LĂ€ngere Reihen lassen sich durch wiederholte Abrufe mit gesetztem `endDateTime` zusammensetzen.
Die letzten beiden sind der eigentliche Schatz: aus ihnen lÀsst sich **IV-Rank / IV-Perzentil**
rechnen – die zentrale Kennzahl fĂŒr jede PrĂ€mienstrategie (verkaufe VolatilitĂ€t, wenn sie relativ
zu ihrer eigenen Geschichte teuer ist).
### 1.2 Optionen
| Datenart | Ergebnis |
|---|---|
| Optionskette (`reqSecDefOptParams`) | 24 Verfallstermine, 127 Strikes, Multiplier 100, TradingClass |
| Griechen (`tickOptionComputation`) | **IV, Delta, Gamma, Vega, Theta + Basiswertkurs** |
| Handelsberechtigung | vorhanden (What-If-Order angenommen) |
**Wichtigster Einzelbefund:** Die Griechen kommen **auch ohne Realtime-Abo**. Gemessen an
`AAPL 20260821 C305`: IV 0,2730 / Delta 0,5443 / Gamma 0,0220 / Vega 0,2626 / Theta −0,2304.
Sie laufen ĂŒber die verzögerten Tick-Felder 80–83, wobei **Feld 83 (Modell) die relevante GrĂ¶ĂŸe**
fĂŒr eine delta-basierte Strike-Wahl ist.
Damit ist der offene Punkt 2 aus dem [OptionsWheel-Konzept](KONZEPT-Modul-OptionsWheel.md)
beantwortet: Die geplante delta-basierte Strike-Wahl im Zielband 0,15–0,30 ist umsetzbar, die
Ersatzlösung ĂŒber prozentualen Abstand wird nicht gebraucht. Verzögerung heißt: Der Delta-Wert ist
~15 Minuten alt – fĂŒr die Auswahl eines Strikes mit 30–45 Tagen Restlaufzeit ist das belanglos.
### 1.3 Stammdaten, Nachrichten, Sonstiges
| Datenart | Ergebnis |
|---|---|
| Kontraktstammdaten | Branche/Kategorie/Unterkategorie (AAPL: Technology / Computers / Computers), Langname, **Handelszeiten**, Zeitzone, MinTick, gĂŒltige Börsen |
| Symbolsuche (`reqMatchingSymbols`) | Fuzzy-Suche, liefert auch Indizes |
| Nachrichten | 3 Anbieter: **BRFG** (Briefing.com Markt), **BRFUPDN** (Analystenaktionen), **DJNL** (Dow Jones Newsletters) |
| Historische Nachrichten | funktioniert, Schlagzeilen mit Zeitstempel und Anbieter |
| Konto, Bestand, AusfĂŒhrungen | siehe [IBKR-Integration.md](../IBKR-Integration.md) |
Die Branchenklassifikation ist brauchbar fĂŒr **Klumpenrisiko-PrĂŒfungen** ("nicht drei Positionen
im selben Sektor"). Die Handelszeiten sind operativ wichtig: Market-Orders außerhalb der RTH
bleiben ohne Fill hÀngen.
`BRFUPDN` ist bemerkenswert – die Schlagzeilen sind maschinell auswertbar strukturiert:
```
2026-04-17 12:00:57 [BRFUPDN] !BNP Paribas Exane upgraded Apple (AAPL) to Outperform
2026-04-14 14:58:42 [BRFUPDN] !BofA Securities reiterated Apple (AAPL) coverage with Buy and target $325
```
---
## 2. Was die API nicht liefert
| Datenart | Fehler | Bedeutung |
|---|---|---|
| **Fundamentaldaten**, alle Reports (`ReportSnapshot`, `ReportRatios`, `ReportsFinStatements`, `RESC`, `CalendarReport`) | 10358 „Fundamentaldaten nicht zulĂ€ssig" | Kein Refinitiv-Abo auf dem Konto |
| **Fundamentalkennzahlen-Tick 258** (KGV, Marktkapitalisierung, Dividendenrendite, Beta) | 10358 | dito |
| **Marktscanner-AusfĂŒhrung** (alle getesteten scanCodes) | 492 „zusĂ€tzliche Berechtigungen" | Realtime-Marktdatenabo nötig |
| **Realtime-Kurse** | 10167 / 10091 | nur verzögerte Daten (~15 Min) |
| **Histogramm** (`reqHistogramData`) | leer | ungeklÀrt, vermutlich abo-abhÀngig |
Die **Scanner-Parameter** (762 scanCodes) lassen sich zwar abrufen, aber nur als Metadaten – jeder
Scanner-Lauf wird abgelehnt.
### Drei Konsequenzen, die den Zuschnitt bestimmen
1. **Keine fundamentale Titelauswahl.** Kennzahlenbasierte AnsÀtze (Value, Quality, Growth) sind
ohne Zusatzquelle nicht baubar. Das ist verkraftbar, weil unsere beiden geplanten Module
(CongressTrading, OptionsWheel) ihre Kandidaten ohnehin anders bestimmen.
2. **Keine Termine fĂŒr Quartalszahlen.** `CalendarReport` ist gesperrt. Damit ist der offene
Punkt 4 des OptionsWheel-Konzepts („Earnings-Sperre") **nicht** ĂŒber die TWS API lösbar – er
braucht eine externe Quelle oder eine manuell gepflegte Liste. Das ist die einzige Stelle, an
der uns eine externe AbhÀngigkeit ernsthaft fehlt.
Behelf ohne externe Quelle: Ein **IV-Anstieg** vor Quartalszahlen ist messbar. Ein Filter
„keine neuen Legs, wenn die IV des Basiswerts stark ĂŒber ihrem 30-Tage-Mittel liegt" fĂ€ngt
Earnings indirekt mit ab – unschĂ€rfer, aber ohne Fremddaten.
3. **Kein Universum-Screening.** Strategien mĂŒssen mit einer gepflegten Watchlist auskommen.
---
## 3. Strategiebewertung
### 3.1 Gut umsetzbar – Datenlage vollstĂ€ndig
| Strategie | Benötigte Daten | Status |
|---|---|---|
| **Options-Wheel** (Cash-Secured Put → Zuteilung → Covered Call) | Kette, Griechen, IV-Historie, Bestand, Berechtigung | alles vorhanden, [Konzept steht](KONZEPT-Modul-OptionsWheel.md) |
| **Covered Calls auf Bestand** | wie oben, ohne Put-Seite | Teilmenge des Wheel |
| **IV-Rank-gesteuerter PrĂ€mienverkauf** | `OPTION_IMPLIED_VOLATILITY` + `HISTORICAL_VOLATILITY` | vorhanden; liefert das Timing-Kriterium fĂŒr das Wheel |
| **Trendfolge auf Tagesbasis** (gleitende Durchschnitte, AusbrĂŒche, ATR-Stops) | `ADJUSTED_LAST` Tagesbars, 10 J | vorhanden |
| **Relative StĂ€rke / Dual Momentum** ĂŒber die Watchlist | Tagesbars mehrerer Titel | vorhanden |
| **Mean Reversion** (RSI, Bollinger, Abstand zum gleitenden Mittel) | Tagesbars | vorhanden |
| **Paar-Handel** korrelierter Titel | Tagesbars, lange Historie | vorhanden |
| **SaisonalitÀt / Kalendereffekte** | 30 Jahre Monatsbars | vorhanden |
| **Sektor-Klumpenrisiko-PrĂŒfung** | Branchenklassifikation | vorhanden; gehört in den `RiskService` |
Allen gemeinsam: Sie entscheiden **auf Schlusskursen oder mit Stunden-/Tagesbezug**. Die
15-Minuten-Verzögerung ist dabei irrelevant, weil die Signale ohnehin aus abgeschlossenen Bars
kommen. Genau deshalb passen sie zu unserer Datenlage.
### 3.2 Bedingt umsetzbar
| Strategie | EinschrÀnkung |
|---|---|
| **Analystenaktionen als Filter oder Signal** (`BRFUPDN`) | Schlagzeilen sind strukturiert und auswertbar. **UngeprĂŒft**: ob `reqNewsArticle` den Volltext liefert und wie weit die Historie zurĂŒckreicht. Als *Risikofilter* („keine neue Position kurz nach einer Abstufung") wertvoller denn als Einstiegssignal. |
| **VolatilitĂ€ts-Ausbruch intraday** | Minutenbars gibt es (30 Tage), aber nur verzögert. RĂŒckrechnung möglich, Live-Handel nicht. |
| **Gap-Strategien auf Eröffnung** | Eröffnungskurs kommt verzögert; die AusfĂŒhrung trĂ€fe den Markt 15 Minuten zu spĂ€t. Nur mit Realtime-Abo sinnvoll. |
### 3.3 Nicht umsetzbar
| Strategie | Grund |
|---|---|
| Fundamentales Screening (Value, Quality, Growth) | keine Fundamentaldaten |
| Earnings-Strategien (Straddle vor Zahlen, Post-Earnings-Drift) | keine Termine fĂŒr Quartalszahlen |
| Marktweite Anomalie-Suche / Screener-getriebene Auswahl | Scanner gesperrt |
| Daytrading, Scalping, Orderbuch-Strategien | verzögerte Daten, keine Markttiefe geprĂŒft |
| Nachrichten-Sentiment in der Breite | nur 3 Anbieter, Schlagzeilen |
---
## 4. Empfehlung
**Reihenfolge:**
1. **OptionsWheel** wie im [bestehenden Konzept](KONZEPT-Modul-OptionsWheel.md) bauen. Alle
Voraussetzungen sind jetzt geprĂŒft: Berechtigung, Kette, Griechen mit verzögerten Daten,
Bestandsabgleich. Der einzige offene Punkt ist die Earnings-Sperre – dafĂŒr zunĂ€chst den
IV-Behelf aus Abschnitt 2 einsetzen und die Entscheidung ĂŒber eine externe Quelle vertagen.
2. **IV-Rank als Core-Baustein** ziehen, nicht als Modul-Interna. Die Kennzahl ist fĂŒr jede
PrÀmienstrategie nötig und gehört neben die Kurshistorie in die Datenschicht.
3. **Trendfolge/Momentum auf Tagesbasis** als zweites Modul, wenn ein zweites Standbein gewĂŒnscht
ist. Datenlage ist komfortabel, das Risiko liegt in der Strategie, nicht in den Daten.
**Was ein Zusatzabo Ă€ndern wĂŒrde** (Reihenfolge nach Nutzen je Euro):
| Abo | Schaltet frei | FĂŒr uns relevant? |
|---|---|---|
| US-Aktien-Realtime (NYSE/AMEX/NASDAQ) | Scanner, Realtime-Kurse | Nur wenn wir Screening oder Intraday wollen. FĂŒr Tages- und PrĂ€mienstrategien **nicht nötig**. |
| OPRA (Optionen-Realtime) | Realtime-Optionskurse und -Griechen | Verbessert die AusfĂŒhrungsqualitĂ€t beim Wheel; fĂŒr die Strike-Auswahl nicht erforderlich. |
| Refinitiv-Fundamentaldaten | Kennzahlen, Bilanzen, **Termine fĂŒr Quartalszahlen** | Löst die Earnings-Sperre und öffnet fundamentale AnsĂ€tze. Der Kandidat mit dem grĂ¶ĂŸten qualitativen Sprung. |
Alle drei sind **Erweiterungen, keine Voraussetzungen**. Der aktuelle Stand trÀgt die geplanten
Strategien.
---
## 5. Offen / ungeprĂŒft
1. **`reqNewsArticle`** (Volltext zu einer Schlagzeile) – nicht getestet. Entscheidet, ob
`BRFUPDN` mehr als ein Ereignis-Marker sein kann.
2. **Wie weit die Nachrichtenhistorie zurĂŒckreicht** – im Test kamen Meldungen bis 2026-03,
abgefragt waren 30 Tage. Die Zeitfilter-Semantik ist offenbar anders als angenommen und
sollte vor produktiver Nutzung geklÀrt werden.
3. **Markttiefe** (`reqMktDepth`) – nicht getestet, fĂŒr unsere Strategien vermutlich unnötig.
4. **`reqHistogramData`** liefert leer – Ursache ungeklĂ€rt (Abo oder Parameter).
5. **Wie zuverlĂ€ssig verzögerte Griechen außerhalb der Handelszeiten sind** – gemessen wurde
wĂ€hrend der US-Handelszeit. Außerhalb liefert TWS ggf. eingefrorene Werte.
6. **Ratenbegrenzung** bei Historienabrufen (IBKR drosselt `reqHistoricalData` bei zu vielen
Anfragen). FĂŒr einen nĂ€chtlichen Watchlist-Abruf relevant, im Test nicht ausgereizt.