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

Booleans und Vergleiche

Position in der SkillModul 1 von 11 · Thema 4 von 33
1.4 Booleans und Vergleiche
—Lab-Punkte— / 100XP gesamt—Serie—

Wahr und falsch

Ein Boolean (bool) hat genau zwei Werte: True und False, mit großem Anfangsbuchstaben. Jede Handelsregel endet in einem davon: „Ist der Markt gekreuzt?“, „Können wir uns diese Order leisten?“. Der Vergleich zweier Werte ergibt einen Boolean, also ist ask > bid noch keine Entscheidung, sondern ein Wert, den Sie speichern, ausgeben und kombinieren können.

bid, ask = 184.25, 184.5
print(ask > bid)        # True
print(type(ask > bid))  # <class 'bool'>

Vergleichsoperatoren

Python vergleicht mit == (gleich), != (ungleich), <, <=, > und >=. Ein einzelnes = ist eine Zuweisung, kein Vergleich: price = 5 speichert einen Wert, price == 5 stellt eine Frage. Vergleiche lassen sich verketten: low <= price <= high liest sich wie in der Mathematik und prüft beide Seiten zugleich.

# Comparison operators give True or False
price = 184.4
print(price == 184.4)         # True
print(price != 184.25)        # True
print(184.25 <= price < 185)  # True (chained)

Bedingungen kombinieren: and, or, not

a and b ist nur True, wenn beide es sind. a or b ist True, wenn mindestens einer es ist. not a kehrt den Wert um. Zusammen drücken sie echte Regeln aus, etwa „der Markt ist offen, die Aktie ist nicht ausgesetzt, und wir haben das Geld“.

# Combine conditions with and, or, not
market_open, halted, cash = True, False, 500.0
can_buy = market_open and not halted and cash >= 184.5
print(can_buy)               # True
print(halted or cash < 100)  # False

and und or arbeiten mit Kurzschlussauswertung: Python hört auf, sobald die Antwort feststeht, und wertet den Rest nicht aus. Das ist als Schutz nützlich: Setzen Sie die sichere Prüfung zuerst, damit die riskante nur läuft, wenn sie darf.

# Short-circuit: the division never runs when quantity is 0
quantity = 0
print(quantity > 0 and 100 / quantity > 1)  # False

Wahrheitswert

Jeder Wert kann als Bedingung dienen. 0, 0.0, der leere Text "" und None gelten als falsch; fast alles andere gilt als wahr. bool(value) zeigt, wie Python einen Wert liest. Vorsicht: quantity and price > 0 kann 0 statt False zurückgeben, schreiben Sie den Vergleich daher vollständig aus, wenn Sie einen echten bool brauchen.

# Zero, empty text and None count as False
print(bool(0), bool(0.0), bool(""), bool(None))  # False False False False
print(bool(200), bool("AAPL"))                    # True True
Geben Sie die Bedingung selbst zurückEin Vergleich ist bereits True oder False. Schreiben Sie return quantity > 0 statt eines if, das True zurückgibt, und eines zweiten Zweigs, der False zurückgibt: Das ist kürzer und kann sich nicht widersprechen.

Floats vergleichen, und None

== zwischen floats ist wegen Rundungsfehlern riskant (siehe Ganzzahlen und Gleitkommazahlen): Verwenden Sie math.isclose für „gleich genug“. == vergleicht Werte; das Wort is fragt, ob zwei Namen auf genau dasselbe Objekt zeigen, und man braucht es nur für eines: x is None, um auf „kein Wert“ zu prüfen.

# Floats need a tolerance; None is tested with "is"
import math

print(0.1 + 0.2 == 0.3)              # False
print(math.isclose(0.1 + 0.2, 0.3))  # True
fill_price = None
print(fill_price is None)            # True

Als Nächstes: Bedingungen, bei denen ein Boolean entscheidet, welche Codezeilen laufen: if, elif und else.

Lab: Was bewertet wird

  • Mit is_crossed einen gekreuzten Markt erkennen25 Pkt.
  • Mit within_band prüfen, ob ein Preis im Band liegt25 Pkt.
  • Mit can_trade die Handelsbedingungen kombinieren25 Pkt.
  • Mit is_valid_order eine Order validieren25 Pkt.
Explorer · lab-4-1
▾ lab-4-1
…
bash · im Browser
learner@quantcraft:~/lab-4-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

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