Glossar-Links: Fachbegriffe im Fließtext automatisch verlinken

Auto-Linking im Build: Glossar-Begriffe werden im Fließtext automatisch
erkannt und als Link auf den Glossar-Eintrag gesetzt — erste Nennung je
Begriff je Datei, dezent gestrichelte Unterstreichung im HTML, hyperref
im PDF. Kein manuelles Markieren bei Textänderungen nötig.

Neue Infrastruktur:
- glossar_eintraege_04.py: glossar_slug() + LINK_TEXTE-Map (automatisch
  generiert aus EINTRAEGEN + Abkürzungs-Extraktion)
- erzeuge_glossar_04.py: jeder Eintrag bekommt {#gloss:<slug>}-Anchor
- build_version_04.py: resolve_glossar() — Auto-Linking + {gl:}-Marke
- web_04/site.css: .glossar-link (dezent, nicht wie Navigationslink)

5 neue Glossar-Einträge (waren als Begriff im Text, aber nicht im Glossar):
Solver, Scheduling, Graphen, Backtest, DCP (Disciplined Convex Programming)

Schutzmechanismen:
- Code-Blöcke, Inline-Code, {idx:}/{ref:}-Marken, Markdown-Links und
  Überschriften werden nicht verlinkt
- Verschachtelung verhindert: 'CP-SAT-Solver' als Ganzes, nicht 'CP'+[
  -'SAT'+[-'Solver'
- 'OR' als 2-Zeichen-Abkürzung nicht auto-verlinkt (False Positive in
  'OR-Tools'); {gl:OR} als manuelle Marke
- Glossar selbst nicht auto-verlinkt (sonst Self-Links)
- reflow_markdown(): ::: als Block-Grenze (sonst kollabiert fenced div)

619 Glossar-Links im Gesamtdokument, 239 Anchor im Glossar, 34 im Vorwort.
This commit is contained in:
dschlueter 2026-09-10 17:40:29 +02:00
commit e8abb66d75
52 changed files with 4316 additions and 1921 deletions

View file

@ -103,9 +103,9 @@
<div class="card card-blick">
<blockquote>
<p><strong>📌 Kapitel auf einen Blick</strong></p>
<p><strong>Worum geht es?</strong> Um das Zusammenführen von allem: Datenpipeline, Signal, Optimierung, Rebalancing, Kostenverbuchung und ein Backtest, der nicht lügt.</p>
<p><strong>Worum geht es?</strong> Um das Zusammenführen von allem: Datenpipeline, Signal, Optimierung, <a href="anhang-glossar.md#gloss:rebalancing" class="glossar-link">Rebalancing</a>, Kostenverbuchung und ein <a href="anhang-glossar.md#gloss:backtest" class="glossar-link">Backtest</a>, der nicht lügt.</p>
<p><strong>Voraussetzungen:</strong> <a href="finanzdaten.html#kap-finanzdaten">Kapitel 18</a> bis <a href="cvar.html#kap-cvar">Kapitel 20</a>.</p>
<p><strong>Danach können Sie:</strong> Eine Walk-Forward-Backtest-Architektur bauen, Lookahead-Bias vermeiden, Ergebnisse gegen eine Benchmark bewerten und typische Backtest-Fallen erkennen.</p>
<p><strong>Danach können Sie:</strong> Eine <a href="anhang-glossar.md#gloss:walk-forward-backtest" class="glossar-link">Walk-Forward-Backtest</a>-Architektur bauen, <a href="anhang-glossar.md#gloss:lookahead-bias" class="glossar-link">Lookahead-Bias</a> vermeiden, Ergebnisse gegen eine Benchmark bewerten und typische Backtest-Fallen erkennen.</p>
<p><strong>Zeitbedarf:</strong> ca. 6 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>QuantitativeTradingEngine.py</code><br />
@ -162,7 +162,7 @@ geballt Jahresrendite 8.88 % Sharpe 0.61 max. Rueckschlag -98.7 %</code></
<li>… die sechs Bausteine einer quantitativen Engine benennen und ihre Reihenfolge begründen.</li>
<li>… einen Walk-Forward-Backtest ohne Lookahead-Bias implementieren.</li>
<li>… Rebalancing-Termine korrekt auf Handelstage abbilden.</li>
<li>… Transaktionskosten und Gewichtsdrift realistisch verbuchen.</li>
<li><a href="anhang-glossar.md#gloss:transaktionskosten" class="glossar-link">Transaktionskosten</a> und Gewichtsdrift realistisch verbuchen.</li>
<li>… Backtest-Ergebnisse kritisch prüfen und die typischen Selbsttäuschungen erkennen.</li>
<li>… den maximalen Rückschlag als eigenständige Kennzahl berichten und begründen, warum Rendite und Sharpe allein nichts über den Verlauf aussagen.</li>
<li>… die Zahl der ausprobierten Varianten protokollieren und die Signifikanzschwelle entsprechend korrigieren.</li>
@ -714,7 +714,7 @@ FEHLER 1+2+3 kombiniert 25.41 % +19.80 %
<p><strong>Lesen Sie diese Tabelle sehr genau.</strong> Die zugrunde liegenden Daten sind <strong>reiner Zufall</strong> — es gibt keinerlei Prognosekraft, kein Signal, keine Struktur. Trotzdem:</p>
<ul>
<li><strong>Lookahead</strong> erzeugt eine scheinbare Überrendite von <strong>15,4 Prozentpunkten pro Jahr</strong>. Ein einziger falscher Index — <code>iloc[t+1]</code> statt <code>iloc[t]</code> — verwandelt Rauschen in eine scheinbar brillante Strategie.</li>
<li><strong>Survivorship-Bias</strong> liefert <strong>13,1 Prozentpunkte</strong> allein dadurch, dass man das Universum im Nachhinein auf die Gewinner beschränkt.</li>
<li><strong><a href="anhang-glossar.md#gloss:survivorship-bias" class="glossar-link">Survivorship-Bias</a></strong> liefert <strong>13,1 Prozentpunkte</strong> allein dadurch, dass man das Universum im Nachhinein auf die Gewinner beschränkt.</li>
<li>Selbst die <strong>ehrliche</strong> Variante zeigt noch +1,1 Prozentpunkte — reines Rauschen, das aber ohne Weiteres als „leichte Outperformance“ verkauft werden könnte.</li>
</ul>
<p><strong>Die Lehre:</strong> Wenn Sie in einem Backtest eine Überrendite von 15 % sehen, ist die erste Frage nicht „Wie kann ich das nutzen?“, sondern <strong>„Wo ist mein Fehler?“</strong>. Und wenn Sie keinen finden, suchen Sie weiter — die Wahrscheinlichkeit, dass Sie tatsächlich eine Goldader entdeckt haben, ist deutlich kleiner als die, dass ein Index verrutscht ist.</p>
@ -755,15 +755,15 @@ FEHLER 1+2+3 kombiniert 25.41 % +19.80 %
</tr>
<tr class="even">
<td>4</td>
<td><strong>Overfitting</strong></td>
<td>Parameter auf die Vergangenheit getrimmt</td>
<td><strong><a href="anhang-glossar.md#gloss:overfitting" class="glossar-link">Overfitting</a></strong></td>
<td><a href="anhang-glossar.md#gloss:parameter" class="glossar-link">Parameter</a> auf die Vergangenheit getrimmt</td>
<td>Out-of-Sample-Zeitraum strikt zurückhalten</td>
</tr>
<tr class="odd">
<td>5</td>
<td><strong>Data Snooping</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:data-snooping" class="glossar-link">Data Snooping</a></strong></td>
<td>Viele Varianten getestet, beste berichtet</td>
<td>Zahl der Versuche protokollieren; Deflated Sharpe Ratio</td>
<td>Zahl der Versuche protokollieren; Deflated <a href="anhang-glossar.md#gloss:sharpe-ratio" class="glossar-link">Sharpe Ratio</a></td>
</tr>
</tbody>
</table>
@ -805,7 +805,7 @@ FEHLER 1+2+3 kombiniert 25.41 % +19.80 %
<tr class="even">
<td><strong>Betriebsrisiken</strong></td>
<td>Was, wenn der Datenfeed ausfällt?</td>
<td>Fallback-Strategie, Monitoring</td>
<td><a href="anhang-glossar.md#gloss:fallback-strategie" class="glossar-link">Fallback-Strategie</a>, Monitoring</td>
</tr>
<tr class="odd">
<td><strong>Regulatorik</strong></td>