σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
scikit-learn-Skill›Modul 3 · Ehrliche Bewertung›Thema 3.4·~1 Std.Fortgeschritten

Kreuzvalidierung mit Purging und Embargo

Position in der SkillModul 3 von 4 · Thema 4 von 6
3.4 Kreuzvalidierung mit Purging und Embargo
—Lab-Punkte— / 100XP gesamt—Serie—

Kreuzvalidierung, die die Uhr respektiert

Die Kreuzvalidierung nutzt die Daten mehrfach: Sie schneidet sie in Faltungen, testet an einer und trainiert an den übrigen. Bei unabhängigen Zeilen klappt das, aber finanzielle Labels überlappen sich zeitlich. Ist das Label der Zeile jjj die Rendite von jjj bis j+Hj+Hj+H, ist sein Fenster [j,j+H][j,j+H][j,j+H]. Eine Testfaltung, die die Zeilen aaa bis b−1b-1b−1 abdeckt, hat Labels, die [a,b−1+H][a,b-1+H][a,b−1+H] abdecken. Jede Trainingszeile, deren Fenster diesen Bereich berührt, also a−H≤j≤b−1+Ha-H\le j\le b-1+Ha−H≤j≤b−1+H, teilt Renditen mit den Testlabels. Behält man solche Zeilen, sieht das Modell einen Teil der Antwort.

[j, j+H]∩[a, b−1+H]≠∅  ⟺  a−H≤j≤b−1+H⟹a−H≤j≤b−1+H+e[j,\,j+H]\cap[a,\,b-1+H]\neq\varnothing\iff a-H\le j\le b-1+H\qquad\Longrightarrow\qquad a-H\le j\le b-1+H+e[j,j+H]∩[a,b−1+H]=∅⟺a−H≤j≤b−1+H⟹a−H≤j≤b−1+H+e(1)

Das Purging entfernt die überlappenden Trainingszeilen. Ein Embargo entfernt zusätzlich eee Zeilen nach der Testfaltung, weil Renditen autokorreliert sind und Volatilität clustert, die ersten Zeilen nach einem Testblock also noch Information über ihn tragen. Bei Walk-forward liegt das Training nur vor dem Test, und dieselbe Idee wird zu einer Lücke: auf Zeilen bis a−H−1a-H-1a−H−1 trainieren, die Lücke ist also HHH (plus eee). TimeSeriesSplit von scikit-learn hat dafür ein gap-Argument. Auf dem monatlichen Aktienpanel mit H=3H=3H=3 beträgt der Walk-forward-Informationskoeffizient 0,03260{,}03260,0326 ohne Embargo und 0,03270{,}03270,0327 mit 333 Monaten Embargo: Die Bereinigung ändert wenig, weil die Label-Überlappung kurz ist, doch das weiß man nur, wenn man es tut.

Die Zeilen zählenNehmen wir n=100n=100n=100 Zeilen, einen Label-Horizont H=5H=5H=5, eine Testfaltung [40,60)[40,60)[40,60) und ein Embargo e=2e=2e=2. Vor der Faltung überlappen die Zeilen 353535 bis 393939 ihre Labels: 555 Zeilen. Danach werden die Zeilen 606060 bis 666666 (bis b−1+H+e=66b-1+H+e=66b−1+H+e=66) entfernt: 777 Zeilen. Die Faltung behält 100−20−12=68100-20-12=68100−20−12=68 Trainingszeilen. In einer Walk-forward-Version mit derselben Testfaltung enden die Trainingszeilen bei 343434, es sind also 353535, was das TimeSeriesSplit von scikit-learn mit einer Lücke von 555 liefert.
  • Purging, dann Embargo: Trainingszeilen entfernen, deren Labels die Testlabels berühren, danach noch einige nach dem Test.
  • Eine Lücke im Walk-forward: Nur auf Zeilen trainieren, die mindestens HHH vor dem Test liegen.
  • Tun Sie es, auch wenn es wenig ändert: Eine saubere Bewertung kostet ein paar Zeilen, ein Leak kann eine Strategie kosten.

Lab: Was bewertet wird

  • Vor der Faltung entfernte Zeilen10 Pkt.
  • Nach der Faltung entfernte Zeilen15 Pkt.
  • Die verbleibende Trainingsgröße15 Pkt.
  • Eine Walk-forward-Faltung mit Lücke10 Pkt.
  • Welche Zeilen entfernt werden10 Pkt.
  • Eine bereinigte Aufteilung10 Pkt.
  • Begriffe zuordnen15 Pkt.
  • Warum auch ein Embargo15 Pkt.
0/ 8 beantwortet
Aufgaben
1Numerische Antwort10 Pkt.Nicht beantwortet

Das Label der Zeile jjj deckt [j,j+H][j,j+H][j,j+H] mit H=5H=5H=5 ab, die Testfaltung sind die Zeilen 404040 bis 595959. Trainingszeilen j≥a−H=35j\ge a-H=35j≥a−H=35 vor der Faltung überlappen ihre Labels. Wie viele Zeilen von 353535 bis 393939 werden entfernt?

k=k =k=akzeptiert: ± 0.01
2Numerische Antwort15 Pkt.Nicht beantwortet

Nach der Faltung (b=60b=60b=60) werden die Zeilen bis b−1+H+eb-1+H+eb−1+H+e mit H=5H=5H=5 und einem Embargo e=2e=2e=2 entfernt. Wie viele Zeilen von 606060 bis b−1+H+eb-1+H+eb−1+H+e werden entfernt?

k=k =k=akzeptiert: ± 0.01
3Numerische Antwort15 Pkt.Nicht beantwortet

Es gibt 100100100 Zeilen, eine Testfaltung mit 202020 Zeilen, 555 davor und 777 danach entfernte Zeilen. Wie viele Trainingszeilen bleiben?

n=n =n=akzeptiert: ± 0.01
4Numerische Antwort10 Pkt.Nicht beantwortet

Eine Walk-forward-Faltung testet die Zeilen 404040 bis 595959 und trainiert nur auf Zeilen bis a−H−1a-H-1a−H−1 mit H=5H=5H=5 (Lücke 555). Wie viele Trainingszeilen hat sie, ab Zeile 000 gezählt?

n=n =n=akzeptiert: ± 0.01
5Auswahl10 Pkt.Nicht beantwortet

Welche Trainingszeilen werden bei der Kreuzvalidierung mit Purging entfernt?

6Schritte ordnen10 Pkt.Nicht beantwortet

Bringen Sie die Schritte zum Bauen einer bereinigten Faltung in die richtige Reihenfolge.

Zum Umsortieren ziehen, oder ein Element fokussieren, mit Leertaste anheben, mit Pfeiltasten bewegen und mit Leertaste ablegen.

  1. 1Die Trainingszeilen entfernen, deren Fenster diesen Bereich berühren, plus das Embargo
  2. 2Die Testzeilen a bis b - 1 wählen
  3. 3Auf den verbleibenden Trainingszeilen anpassen und die Testzeilen bewerten
  4. 4Den Bereich der Label-Fenster berechnen, den die Testzeilen abdecken
7Zuordnen15 Pkt.Nicht beantwortet

Ordnen Sie jedem Begriff seine Bedeutung zu.

Wähle den Partner für jedes Element links.

Label-Horizont H
Purging
Embargo
Lücke in TimeSeriesSplit
8In Worten erklären15 Pkt.Nicht beantwortet

Das Purging entfernt bereits Trainingszeilen, deren Labels die Testlabels überlappen. Erklären Sie in ein bis zwei Sätzen, warum zusätzlich ein Embargo nach der Testfaltung ergänzt wird.

Mathe-ModusEingabe per Tastatur oder LaTeXAufgabe 1 von 8 · Strg ⏎ zum Prüfen

Melde dich an, um deinen Code auszuführen.

Alle Lektionen kannst du kostenlos lesen. Erstelle ein Konto oder melde dich an, um Code auszuführen, Tests zu starten und dieses Lab abzugeben.

  • IDE im Browser mit Bash-Terminal — nichts zu installieren
  • Sofortige Bewertung, XP und dein Platz auf der Skill
Konto erstellenAnmelden
ODER
Weiter mit GitHub