σμ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.23·~40 Min.Einsteiger

Git-Grundlagen

Position in der SkillModul 1 von 11 · Thema 23 von 33
1.23 Git-Grundlagen
—Lab-Punkte— / 100XP gesamt—Serie—

Eine Historie, zu der Sie zurückkehren können

Git zeichnet die Historie eines Projekts als Folge von Commits auf: Momentaufnahmen aller verfolgten Dateien, jeweils mit Autor, Zeit und Nachricht. Damit sehen Sie, was sich wann und warum geändert hat, probieren Ideen ohne Angst aus und kehren zu einer funktionierenden Version zurück. Ein Ordner unter Git-Kontrolle ist ein Repository. Quantitative Arbeit stützt sich stark darauf: Ein Ergebnis ist nur vertrauenswürdig, wenn Sie genau sagen können, welche Codeversion es erzeugt hat.

# Start tracking a project (once)
git init

# See what changed, stage it, record it
git status
git add main.py README.md
git commit -m "Add the first backtest loop"

# Look back
git log --oneline
git diff                      # changes not yet staged

Die drei Orte, an denen eine Änderung lebt

Eine Änderung durchläuft drei Bereiche. Sie bearbeiten Dateien im Arbeitsverzeichnis. git add kopiert die gewählten Änderungen in die Staging-Area (die nächste Momentaufnahme in Vorbereitung). git commit hält die vorbereitete Momentaufnahme in der Repository-Historie fest. So committen Sie nur zusammengehörige Änderungen gemeinsam, auch wenn Sie viele Dateien bearbeitet haben. git status zeigt jede Datei in ihrem Bereich: geändert, vorgemerkt oder nicht verfolgt (neu und Git noch unbekannt).

# git status --porcelain prints two status letters, a space, then the path
status = """ M main.py
A  notes.md
?? scratch.txt
D  old.py"""

for line in status.splitlines():
    code, path = line[:2], line[3:]
    print(repr(code), path)
# ' M' main.py     (modified, not staged)
# 'A ' notes.md    (new, staged)
# '??' scratch.txt (untracked)
# 'D ' old.py      (deleted, staged)

Branches

Ein Branch ist ein beweglicher Name für eine Linie von Commits. Legen Sie für jede Idee oder Korrektur einen an (git switch -c fee-model), committen Sie darauf frei und holen Sie ihn, wenn es funktioniert, mit git merge in die Hauptlinie (meist vom Branch main aus). Branch-Namen dürfen Buchstaben, Ziffern, -, _, / und . enthalten, aber keine Leerzeichen und keines von ~ ^ : ? * [ \, und sie dürfen nicht mit / beginnen oder enden und nicht auf . enden. Git meldet Konflikte, wenn zwei Branches dieselben Zeilen geändert haben, und Sie lösen sie von Hand.

# Try an idea on its own branch, then bring it back
git switch -c fee-model
git commit -am "Use tiered fees"
git switch main
git merge fee-model

# List branches (the current one has a star)
git branch

Was Sie auslassen, und wie Sie rückgängig machen

Eine .gitignore-Datei listet Muster auf, die Git nicht verfolgen soll: .venv/ (ein Ordner, mit Schrägstrich am Ende geschrieben), *.log (jede zu einem Platzhalter passende Datei), secrets.env. Lassen Sie virtuelle Umgebungen, Caches, große Datendateien und vor allem Geheimnisse wie API-Schlüssel draußen: Alles Committete bleibt in der Historie, auch wenn Sie es später löschen. Zum Rückgängigmachen verwirft git restore datei nicht committete Änderungen an einer Datei, und git revert <commit> fügt einen neuen Commit hinzu, der einen alten aufhebt, was auf geteilten Branches sicher ist. git push und git pull tauschen Commits mit einer entfernten Kopie aus, etwa auf GitHub.

# .gitignore
.venv/
__pycache__/
*.log
secrets.env

# Undo safely
git restore main.py            # drop uncommitted edits to one file
git revert 3f2a9c1             # new commit that cancels an old one

# Share
git push origin main
git pull
Kleine Commits, die das Warum erklärenEine logische Änderung pro Commit, mit einer Nachricht, die sagt, was und warum („Ordergröße auf 5 % des Volumens begrenzen“, nicht „Fixes“). Kleine Commits lassen sich leicht prüfen und zurücknehmen und machen git log --oneline lesbar. Gelangt je ein Schlüssel oder Passwort in einen Commit, behandeln Sie es als geleakt: widerrufen Sie es und entfernen Sie es dann aus der Historie.
  • git init, git status, git add, git commit -m "...", git log --oneline.
  • Ein Branch pro Idee: git switch -c name, dann git merge.
  • Nutzen Sie .gitignore für .venv/, Caches, Daten und Geheimnisse; machen Sie mit restore oder revert rückgängig.

Als Nächstes: Jupyter-Notebooks, zum interaktiven Erkunden von Daten und wie Sie sie unter Git ordentlich halten.

Lab: Was bewertet wird

  • Mit parse_status die Dateien eines git status-Berichts einsortieren25 Pkt.
  • Mit parse_log eine git log --oneline-Liste lesen25 Pkt.
  • Mit is_valid_branch_name einen Branch-Namen gegen Gits Regeln prüfen25 Pkt.
  • Mit not_ignored eine .gitignore auf eine Dateiliste anwenden25 Pkt.
Explorer · lab-23-1
▾ lab-23-1
…
bash · im Browser
learner@quantcraft:~/lab-23-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

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