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

Strings und f-Strings

Position in der SkillModul 1 von 11 · Thema 3 von 33
1.3 Strings und f-Strings
—Lab-Punkte— / 100XP gesamt—Serie—

Text ist ein String

Ein String (str) ist Text. Schreiben Sie ihn in einfache oder doppelte Anführungszeichen: Beides bedeutet dasselbe, wählen Sie also einen Stil und bleiben Sie dabei. Ein Backslash leitet eine Escape-Sequenz ein, etwa \n für einen Zeilenumbruch. len() zählt die Zeichen. Strings sind unveränderlich: Man ändert nie einen String an Ort und Stelle, man baut einen neuen.

symbol = "AAPL"
note = 'bid and ask'
print(symbol, len(symbol))  # AAPL 4
print(note)                 # bid and ask

Indizierung und Slicing

Jedes Zeichen hat eine Position, gezählt ab 0. text[0] ist das erste Zeichen und text[-1] das letzte. Ein Slice text[start:stop] nimmt die Zeichen von start bis ausschließlich stop. Lassen Sie eine Seite leer, um bis zu diesem Ende zu gehen.

# Indexing starts at 0; a slice stops before its end index
ticker = "AAPL.US"
print(ticker[0], ticker[-1])   # A S
print(ticker[:4], ticker[5:])  # AAPL US

Methoden zum Bereinigen und Zerlegen von Text

Methoden sind an einen Wert gebundene Funktionen, die man mit einem Punkt aufruft. Sie liefern einen neuen String und lassen das Original unverändert. strip() entfernt Leerzeichen und Zeilenumbrüche um den Text, upper() und lower() ändern die Groß-/Kleinschreibung, replace(old, new) ersetzt Text, und split(",") zerlegt eine Zeile bei jedem Komma in eine Liste von Stücken. Datenfeeds sind voll von solchen Zeilen.

# Clean up a raw line from a data feed
raw = "  aapl,184.25,200 \n"
parts = raw.strip().split(",")
print(parts)             # ['aapl', '184.25', '200']
print(parts[0].upper())  # AAPL
print(float(parts[1]))   # 184.25
# join is the opposite of split; in tests for a piece of text
print("-".join(["AAPL", "MSFT"]))  # AAPL-MSFT
print("AAPL" in "AAPL,MSFT")       # True

f-Strings setzen Werte in Text ein

Setzen Sie ein f vor das öffnende Anführungszeichen und schreiben Sie einen beliebigen Ausdruck zwischen { und }: Python wertet ihn aus und fügt das Ergebnis als Text ein. Das ersetzt das Zusammenkleben mit + und das manuelle Umwandeln von Zahlen. Jeder gültige Ausdruck funktioniert in den Klammern, sogar eine Rechnung.

# f-strings put values straight into text
symbol, bid, ask = "AAPL", 184.25, 184.5
print(f"{symbol} {bid} x {ask}")       # AAPL 184.25 x 184.5
print(f"{symbol} spread {ask - bid}")  # AAPL spread 0.25

Formatangaben

Nach einem Doppelpunkt in den Klammern steuert eine Formatangabe, wie der Wert aussieht. .2f zeigt zwei Nachkommastellen, , fügt Tausendertrennzeichen hinzu, + zeigt immer das Vorzeichen, >8 richtet rechtsbündig in einer Breite von 8 aus, und .1% zeigt einen Bruch als Prozent. Sie lassen sich kombinieren: +,.2f ist ein Betrag mit Vorzeichen, Trennzeichen und zwei Nachkommastellen.

# After the colon, a format spec controls the look
price, pnl, quantity = 184.5, 1234.5, 200
print(f"{price:.2f}")       # 184.50
print(f"{pnl:+,.2f}")       # +1,234.50
print(f"{quantity:>8d}|")   # "     200|"
print(f"{0.0123:.1%}")      # 1.2%
Nur zur Anzeige formatierenEin formatierter Wert ist Text und keine Zahl mehr. Rechnen Sie weiter mit den Zahlen (siehe Ganzzahlen und Gleitkommazahlen) und formatieren Sie erst beim Ausgeben oder Speichern von Text.

Als Nächstes: Booleans und Vergleiche, die Werte True und False, aus denen jede Entscheidung einer Handelsregel entsteht.

Lab: Was bewertet wird

  • Mit quote_line eine Kursstellung als Text schreiben25 Pkt.
  • Mit signed_pnl Gewinn und Verlust mit Vorzeichen anzeigen25 Pkt.
  • Mit normalize_symbol ein Tickersymbol bereinigen25 Pkt.
  • Mit parse_fill eine Ausführungszeile aus einem Feed lesen25 Pkt.
Explorer · lab-3-1
▾ lab-3-1
…
bash · im Browser
learner@quantcraft:~/lab-3-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

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