σμ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ᵀμ = μ*∫Σ∂∞λ
σμ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 AcademySkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
Skills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Python-Skill›Modul 1 · Python-Grundlagen für Quants›Thema 1.7·~30 Min.Einsteiger

while-Schleifen, break und continue

Position in der SkillModul 1 von 11 · Thema 7 von 33
1.7 while-Schleifen, break und continue
—Lab-Punkte— / 100XP gesamt—Serie—

Wiederholen, solange eine Bedingung gilt

Eine while-Schleife prüft vor jedem Durchlauf eine Bedingung und führt ihren Block aus, solange die Bedingung True ist. Verwenden Sie sie, wenn Sie nicht im Voraus wissen, wie viele Durchläufe nötig sind: eine Order halbieren, bis sie klein genug ist, warten, bis ein Preis eine Marke überschreitet, ein Guthaben bis zu einem Ziel wachsen lassen. Etwas im Block muss die Bedingung ändern, sonst endet die Schleife nie.

# Halve an order until it is small enough to trade at once
quantity, limit = 1000, 100
steps = 0
while quantity > limit:
    quantity = quantity / 2
    steps += 1
print(steps, quantity)  # 4 62.5

for oder while?

Verwenden Sie for, wenn Sie die Elemente schon haben oder ihre Anzahl kennen: Es kann nicht ewig laufen. Verwenden Sie while, wenn der Haltepunkt davon abhängt, was während der Schleife passiert. Ein guter Test: Wenn Sie „für jedes dieser“ sagen können, schreiben Sie for; wenn Sie „bis dies wahr wird“ sagen, schreiben Sie while.

Stellen Sie sicher, dass die Schleife enden kannPrüfen Sie vor einer while-Schleife drei Dinge: Die Bedingung nutzt eine Variable, die die Schleife ändert, die Änderung passiert bei jedem Durchlauf, und sie führt die Bedingung Richtung False. Läuft eine Schleife hier zu lange, wird sie nach 10 Sekunden gestoppt.

break: die Schleife sofort verlassen

break beendet die Schleife sofort und macht mit der Zeile danach weiter. So hören Sie auf, sobald Sie Ihre Antwort haben, etwa beim ersten Preis, der eine Grenze verletzt. Hier durchläuft die Schleife Positionen mit einem Index, den sie selbst erhöht.

# break leaves the loop at once
prices = [184.25, 184.5, 186.0, 185.0]
limit = 185.5
index = 0
while index < len(prices):
    if prices[index] > limit:
        print("breach at", index)  # breach at 2
        break
    index += 1

continue: zum nächsten Durchlauf springen

continue überspringt den Rest des aktuellen Durchlaufs und kehrt zur Bedingung zurück. Das ist praktisch, um fehlerhafte Daten zu ignorieren, ohne die eigentliche Arbeit in ein if zu verschachteln. Ändern Sie in einer while-Schleife die Schleifenvariable vor continue; sonst trifft die Schleife ewig auf dasselbe Element.

# continue skips the rest of the pass; step first, or it never moves on
fills = [100, -5, 250, 0, 75]
total = 0
index = 0
while index < len(fills):
    value = fills[index]
    index += 1
    if value <= 0:
        continue
    total += value
print(total)  # 425

Schleifen, die suchen oder konvergieren

Viele Quant-Aufgaben lauten „mach weiter, bis“: aufzinsen bis zu einem Ziel, eine Schätzung verfeinern, bis sie sich nicht mehr ändert, wiederholen, bis eine Anfrage klappt. while True: mit einem break in der Mitte ist eine gängige Form, wenn der Ausstiegstest mitten in der Arbeit liegt.

# How many years until 10,000 grows to 15,000 at 7% a year?
balance, target, rate = 10_000, 15_000, 0.07
years = 0
while balance < target:
    balance = balance * (1 + rate)
    years += 1
print(years)  # 6

# while True + break: the exit test sits in the middle
attempt = 0
while True:
    attempt += 1
    if attempt * 25 >= 100:
        break
print(attempt)  # 4
  • Die Bedingung nutzt eine Variable, die die Schleife ändert.
  • Die Änderung passiert bei jedem Durchlauf, auch vor einem continue.
  • Nutzen Sie break, sobald die Antwort feststeht.

Als Nächstes: Funktionen definieren und aufrufen, um einem Codeblock einen Namen zu geben und ihn wiederzuverwenden.

Lab: Was bewertet wird

  • Mit halving_steps die nötigen Halbierungen einer Order zählen25 Pkt.
  • Mit first_breach den ersten Preis über einer Grenze finden25 Pkt.
  • Mit sum_until_zero gültige Ausführungen bis zur Endmarke addieren25 Pkt.
  • Mit years_to_target ein Guthaben bis zu einem Ziel aufzinsen25 Pkt.
Explorer · lab-7-1
▾ lab-7-1
…
bash · im Browser
learner@quantcraft:~/lab-7-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

Alles in lab-7-1 wird auf die Startdateien zurückgesetzt und das Terminal geleert. Ihre aktuelle Lösung geht verloren – das lässt sich nicht rückgängig machen.

Wird zurückgesetzt
  • main.py → Startcode
  • Terminal-Verlauf und Testausgabe
  • Nicht eingereichte Änderungen
Bleibt erhalten
  • Beste Lab-Punktzahl
  • Ihre XP und Ihre Serie
  • Vorlesungsfortschritt und Notizen

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