σμ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.1·~45 Min.Einsteiger

Python-Syntax und Ihr erstes Programm

Position in der SkillModul 1 von 11 · Thema 1 von 33
1.1 Python-Syntax und Ihr erstes Programm
—Lab-Punkte— / 100XP gesamt—Serie—

Wie ein Python-Programm abläuft

Ein Python-Programm ist eine Textdatei aus Anweisungen. Python liest sie von oben nach unten und führt eine Anweisung nach der anderen aus, ganz ohne Rahmencode: Die Datei main.py ist das Programm. Klicken Sie auf Run oder geben Sie python main.py im Terminal ein.

bid = 184.25
ask = 184.50
print(ask - bid)  # 0.25

Anweisungen und Ausdrücke

Ein Ausdruck liefert einen Wert, etwa ask - bid oder 2 * 3. Eine Anweisung tut etwas, etwa bid = 184.25 oder print(bid). Jede Anweisung steht in einer eigenen Zeile, und das Zeilenende beendet die Anweisung: kein Semikolon. Ist eine Anweisung zu lang, setzen Sie sie in Klammern und führen sie in den folgenden Zeilen fort.

total_cost = (
    price * quantity
    + commission
    + exchange_fee
)

Kommentare und Docstrings

Alles von # bis zum Zeilenende ist ein Kommentar: Python ignoriert es. Nutzen Sie Kommentare, um zu erklären, warum der Code etwas tut, nicht um zu wiederholen, was er tut. Ein String in dreifachen Anführungszeichen am Anfang einer Datei oder Funktion ist ein Docstring, die offizielle Beschreibung, die Werkzeuge und help() anzeigen.

# Mid price: the fair value halfway between bid and ask.
mid = (bid + ask) / 2  # average of the two quotes

Die Einrückung gehört zur Syntax

Wo andere Sprachen geschweifte Klammern nutzen, nutzt Python Einrückung. Eine Zeile, die mit einem Doppelpunkt endet, öffnet einen Block, und der Block besteht aus den eingerückten Zeilen darunter. Rücken Sie mit vier Leerzeichen ein und mischen Sie niemals Tabs und Leerzeichen. Code am linken Rand ist Code der obersten Ebene.

def spread(bid, ask):
    # both lines below are the block: indented by four spaces
    width = ask - bid
    return width

print(spread(184.25, 184.50))  # back at the left margin: 0.25
AchtungEin fehlendes oder überzähliges Leerzeichen löst einen IndentationError aus, ein vergessener Doppelpunkt einen SyntaxError. Python bricht ab, bevor irgendetwas läuft, also lesen Sie zuerst die Zeilennummer in der Meldung. Stellen Sie Ihren Editor so ein, dass Tab Leerzeichen einfügt.

Variablen und Zuweisung

name = wert bindet einen Namen an einen Wert. Das Zeichen = bedeutet zuweisen, nicht gleich: Python berechnet zuerst die rechte Seite und hängt dann den Namen an das Ergebnis. Namen unterscheiden Groß- und Kleinschreibung, dürfen Buchstaben, Ziffern und Unterstriche enthalten, nicht mit einer Ziffer beginnen und keine Schlüsselwörter wie if oder for sein. Der Python-Stil ist snake_case, etwa last_price.

price = 184.25
quantity = 200
notional = price * quantity
price = 185.00      # rebinds price; notional is unchanged
quantity += 50      # shorthand for quantity = quantity + 50
print(notional)     # 36850.0

Arithmetik und Operatorrangfolge

  • +, - und * addieren, subtrahieren und multiplizieren.
  • / ist die echte Division und liefert immer ein Dezimalergebnis: 7 / 2 ist 3.5.
  • // teilt und rundet ab; % liefert den Rest: 7 // 2 ist 3, 7 % 2 ist 1.
  • ** potenziert: 1.05 ** 10 verzinst 5 % zehnmal.

Python folgt der mathematischen Rangfolge: zuerst **, dann * und /, dann + und -. Also ist 2 + 3 * 4 gleich 14, (2 + 3) * 4 dagegen 20. Im Zweifel setzen Sie Klammern: Sie kosten nichts und machen die Absicht klar. Unterstriche in Zahlen wie 10_000 werden ignoriert und machen große Zahlen lesbar.

spread = ask - bid                   # 0.25
mid = (bid + ask) / 2                # 184.375
spread_bps = spread / mid * 10_000   # the spread in basis points

Ergebnisse mit print ausgeben

print() schreibt Werte, durch Leerzeichen getrennt, ins Terminal. Text in Anführungszeichen ist ein String; die nächsten Themen behandeln Strings und Zahlen ausführlich. Vorerst ist print Ihr Blick ins Innere des Programms: Wert ausgeben, von Hand prüfen, weitermachen.

print("bid", bid, "ask", ask)
print("mid", mid)

Im Lab schreiben Sie kleine Preisformeln und verwenden dabei nur, was auf dieser Seite steht: Zuweisung, Arithmetik und Klammern. Als Nächstes: wie Python Zahlen speichert und warum 0.1 + 0.2 nicht exakt 0.3 ist.

Lab: Was bewertet wird

  • Den Wert einer Position mit notional berechnen25 Pkt.
  • Mit midpoint den Mittelkurs finden25 Pkt.
  • Mit spread die Geld-Brief-Spanne messen25 Pkt.
  • Die Spanne mit spread_bps in Basispunkten ausdrücken25 Pkt.
Explorer · lab-1-1
▾ lab-1-1
…
bash · im Browser
learner@quantcraft:~/lab-1-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

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