σμ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.5·~30 Min.Einsteiger

Bedingungen: if, elif, else

Position in der SkillModul 1 von 11 · Thema 5 von 33
1.5 Bedingungen: if, elif, else
—Lab-Punkte— / 100XP gesamt—Serie—

Auswählen, was läuft

Bisher lief jede Zeile von oben nach unten. Eine if-Anweisung führt einen Codeblock nur aus, wenn eine Bedingung True ist. Mit elif („sonst wenn“) kommen weitere Bedingungen hinzu, mit else alles Übrige. Python prüft sie der Reihe nach und führt nur den ersten Block aus, dessen Bedingung wahr ist. Jede Bedingungszeile endet mit einem Doppelpunkt.

position, target = 100, 250
if target > position:
    print("buy", target - position)   # buy 150
elif target < position:
    print("sell", position - target)
else:
    print("hold")

Die Einrückung ist die Struktur

Die unter dem if eingerückten Zeilen bilden den Block, der dazugehört; die erste Zeile zurück am linken Rand liegt außerhalb. Verwenden Sie vier Leerzeichen pro Ebene, immer gleich. Python hat keine geschweiften Klammern: Die Einrückung ist die Struktur, eine falsche Einrückung ändert also, was das Programm tut.

# The indented lines are the block that belongs to the if
price = 184.5
if price > 184:
    print("above 184")           # above 184
    print("still inside the if")
print("always runs")             # back at the left margin

Die Reihenfolge zählt: Der erste Treffer gewinnt

Da nur der erste wahre Zweig läuft, kann eine elif-Kette Schwellenwerte nutzen: Jeder Zweig muss nur sagen, was neu ist. Eine Gebührentabelle ist ein klassisches Beispiel. Setzen Sie die engste oder spezifischste Bedingung zuerst, sonst verschluckt eine weite darüber den Fall.

# elif branches are checked top to bottom; the first True wins
monthly_volume = 3_500_000
if monthly_volume < 1_000_000:
    rate = 0.0010
elif monthly_volume < 10_000_000:
    rate = 0.0007
else:
    rate = 0.0004
print(rate)  # 0.0007

Früh zurückgeben

In einer Funktion beendet return die Funktion sofort. So behandeln Sie jeden Fall mit eigenem if und return, ohne else und ohne tiefe Verschachtelung; die letzte Zeile ist der Standardfall. So geschriebener Code bleibt flach und liest sich wie eine Regelliste.

# Early returns keep a function flat
def side(position, target):
    if target > position:
        return "buy"
    if target < position:
        return "sell"
    return "hold"

print(side(100, 250), side(250, 100), side(100, 100))  # buy sell hold

Eine Auswahl in einer Zeile

Wenn ein if nur einen von zwei Werten auswählt, ist ein bedingter Ausdruck kürzer: value_if_true if condition else value_if_false. Er ist ein Ausdruck und kann daher in einem f-String oder einem return stehen. Nutzen Sie ihn für einfache Auswahlen und ein normales if, sobald mehr zu tun ist.

# A one-line choice between two values
cash = 40.0
status = "ok" if cash >= 0 else "overdrawn"
print(status)  # ok
Vergleichen Sie einen Boolean nicht mit TrueIst is_open bereits ein Boolean, schreiben Sie if is_open: und if not is_open:. if is_open == True: sagt dasselbe umständlicher. Dasselbe gilt für if x: bei Zahlen und Text: Es prüft auf „nicht null“ und „nicht leer“.
  • Zwei Ergebnisse: if/else oder ein bedingter Ausdruck in einer Zeile.
  • Mehrere geordnete Bereiche: eine elif-Kette, engste Bedingung zuerst.
  • Sonderfälle und ungültige Eingaben: frühe returns, der Normalfall zuletzt.

Als Nächstes: for-Schleifen und range, um einen Codeblock für jedes Element zu wiederholen.

Lab: Was bewertet wird

  • Mit order_side kaufen, verkaufen oder halten entscheiden25 Pkt.
  • Mit fee_tier den Gebührensatz für ein Volumen wählen25 Pkt.
  • Mit clamp einen Wert zwischen zwei Grenzen halten25 Pkt.
  • Mit crossover_signal zwei Durchschnitte in ein Signal verwandeln25 Pkt.
Explorer · lab-5-1
▾ lab-5-1
…
bash · im Browser
learner@quantcraft:~/lab-5-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

Alles in lab-5-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