σμ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 AcademyRoadmapsSkills
Ctrl K
AO
+1.2k Learners
LoginJoin ↗
RoadmapsSkills
AO
+1.2k Learners
Login
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμ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 AcademyRoadmapsSkills
Ctrl K
AO
+1.2k Learners
LoginJoin ↗
RoadmapsSkills
AO
+1.2k Learners
Login
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Calculus skill›Module 4 · Optimization and sensitivities›Topic 4.3·~1 hr 15 minIntermediate

Capstone: Greeks by finite differences

Skill positionModule 4 of 4 · Topic 3 of 3
4.3 Capstone: Greeks by finite differences
—Lab score— / 100Total XP—Streak—

Two ways to a Greek

The Greeks measure how an option's price reacts to its inputs. Delta $\Delta=\frac{\partial C}{\partial S}$ is the change per unit of the stock price, gamma $\Gamma=\frac{\partial^2 C}{\partial S^2}$ is how fast delta itself changes, and vega $\mathcal{V}=\frac{\partial C}{\partial\sigma}$ is the change per unit of volatility. They are the partial derivatives and Taylor coefficients of this skill, applied to a price.

For a Black-Scholes call the derivatives have closed forms: $\Delta=N(d_1)$, $\Gamma=\frac{\varphi(d_1)}{S\sigma\sqrt{T}}$ and $\mathcal{V}=S\,\varphi(d_1)\sqrt{T}$, where $N$ is the standard normal distribution function and $\varphi$ its density. Closed forms are exact and fast, but most real pricers (exotics, Monte Carlo, calibrated models) have none.

That is where finite differences come in: bump an input up and down, reprice, and divide. Delta is a central difference $\frac{C(S+h)-C(S-h)}{2h}$, vega the same in $\sigma$, and gamma a second difference $\frac{C(S+h)-2C(S)+C(S-h)}{h^2}$. The only choice is the bump size $h$: too large and the slope is crude, too small and rounding noise dominates (see the limits topic). Comparing finite differences with a closed form is the standard test that a pricer and its Greeks are right.

Units of vegaThe formula above gives vega per 1.00 (that is, 100 percentage points) change in volatility. Traders quote vega per one volatility point (0.01), which is the formula divided by 100. Always check which convention a number uses before comparing it with another desk's.

Lab · what's graded

  • The Black-Scholes price25 pts
  • A central difference25 pts
  • Greeks from formulas25 pts
  • Greeks by finite differences25 pts
Explorer · lab-ca-9
▾ lab-ca-9
…
bash · in-browser
learner@quantcraft:~/lab-ca-9$
Python not loaded yetPythonLn 1, Col 1Spaces: 4UTF-8

Reset this topic?

Everything in lab-ca-9 goes back to the starter files and the terminal is cleared. Your current solution will be lost — this can't be undone.

Will be reset
  • main.py → starter code
  • Terminal history and test output
  • Unsubmitted changes
Will be kept
  • Best lab score
  • Your XP and streak
  • Lecture progress and notes

Log in to run your code.

Every lecture is free to read. Create an account or log in to run code, run tests and submit this lab.

  • In-browser IDE with a bash terminal — nothing to install
  • Instant grading, XP and your place on the skill
Create an accountLog in
OR
Continue with GitHub