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>
217 lines
12 KiB
Markdown
217 lines
12 KiB
Markdown
> ### đŠ 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.
|