σμ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 AcademyRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Rutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Ruta de Python›Módulo 1 · Fundamentos de Python para quants›Tema 1.23·~40 minPrincipiante

Fundamentos de Git

Posición en la rutaMódulo 1 de 11 · Tema 23 de 33
1.23 Fundamentos de Git
—Puntuación del lab— / 100XP total—Racha—

Un historial al que puedes volver

Git registra el historial de un proyecto como una serie de commits: instantáneas de todos los archivos seguidos, cada una con autor, hora y mensaje. Con él puedes ver qué cambió y por qué, probar una idea sin miedo y volver a una versión que funcionaba. Una carpeta bajo control de Git es un repositorio. El trabajo cuantitativo depende mucho de esto: un resultado solo es fiable si puedes decir exactamente qué versión del código lo produjo.

# 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

Los tres lugares donde vive un cambio

Un cambio pasa por tres áreas. Editas archivos en el directorio de trabajo. git add copia los cambios elegidos al área de preparación (la siguiente instantánea, en preparación). git commit registra la instantánea preparada en el historial del repositorio. Así puedes confirmar juntos solo los cambios relacionados, aunque hayas editado muchos archivos. git status muestra cada archivo en su área: modificado, preparado o sin seguimiento (nuevo y aún desconocido para Git).

# 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)

Ramas

Una rama es un nombre móvil para una línea de commits. Crea una por cada idea o arreglo (git switch -c fee-model), haz commits libremente y, cuando funcione, tráela a la línea principal con git merge (normalmente desde la rama main). Los nombres de rama pueden contener letras, dígitos, -, _, / y ., pero no espacios ni ninguno de ~ ^ : ? * [ \, y no pueden empezar ni terminar con / ni terminar con .. Git avisa de los conflictos cuando dos ramas cambiaron las mismas líneas, y los resuelves a mano.

# 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

Qué dejar fuera y cómo deshacer

Un archivo .gitignore lista los patrones que Git no debe seguir: .venv/ (una carpeta, escrita con barra final), *.log (cualquier archivo que coincida con un comodín), secrets.env. Deja fuera los entornos virtuales, las cachés, los archivos de datos grandes y sobre todo los secretos como las claves de API: todo lo que se confirma queda en el historial aunque luego lo borres. Para deshacer, git restore archivo descarta las ediciones no confirmadas de un archivo, y git revert <commit> añade un commit nuevo que cancela uno antiguo, algo seguro en ramas compartidas. git push y git pull intercambian commits con una copia remota, por ejemplo en 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
Commits pequeños que explican el porquéUn cambio lógico por commit, con un mensaje que diga qué y por qué («Limitar el tamaño de orden al 5 % del volumen», no «arreglos»). Los commits pequeños son fáciles de revisar y de revertir y hacen legible git log --oneline. Si una clave o contraseña llega a un commit, trátala como filtrada: revócala y luego quítala del historial.
  • git init, git status, git add, git commit -m "...", git log --oneline.
  • Una rama por idea: git switch -c nombre y luego git merge.
  • Usa .gitignore para .venv/, cachés, datos y secretos; deshaz con restore o revert.

A continuación: cuadernos Jupyter, para explorar datos de forma interactiva y mantenerlos ordenados bajo Git.

Lab: qué se califica

  • Clasificar los archivos de un informe git status con parse_status25 pts
  • Leer un listado de git log --oneline con parse_log25 pts
  • Comprobar un nombre de rama con las reglas de Git usando is_valid_branch_name25 pts
  • Aplicar un .gitignore a una lista de archivos con not_ignored25 pts
Explorador · lab-23-1
▾ lab-23-1
…
bash · en el navegador
learner@quantcraft:~/lab-23-1$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-23-1 vuelve a los archivos iniciales y se limpia el terminal. Tu solución actual se perderá: no se puede deshacer.

Se restablecerá
  • main.py → código inicial
  • Historial del terminal y salida de pruebas
  • Cambios sin enviar
Se conservará
  • Mejor puntuación del lab
  • Tu XP y tu racha
  • Progreso de la lección y notas

Inicia sesión para ejecutar tu código.

Todas las clases se pueden leer gratis. Crea una cuenta o inicia sesión para ejecutar código, lanzar las pruebas y enviar este lab.

  • IDE en el navegador con terminal bash — sin instalar nada
  • Corrección instantánea, XP y tu lugar en la ruta
Crear una cuentaIniciar sesión
O
Continuar con GitHub