Inspiration
I'm a high school student who stumbled onto quantitative finance through a YouTube rabbit hole. The more I read, the more I realized the same question kept coming up in forums and subreddits: "Why isn't this taught earlier?" Options pricing, the Black-Scholes model, the Greeks — this is the math that moves billions of dollars every day, and it's almost completely absent from high school curricula.
The honest answer is gatekeeping. This material lives behind college paywalls, elite networks, and expensive prep programs. A student at a well-connected school might encounter it in an AP elective or a summer program. Everyone else finds it in college, if at all.
I built StrikeLab to close that gap.
What I Built
StrikeLab is a free, browser-based curriculum that takes students from zero options knowledge to implementing the Black-Scholes model from scratch — no installs, no accounts, no prerequisites beyond algebra.
The platform has ten lessons that build on each other:
- Option Fundamentals — calls, puts, strike price, expiration
- Intrinsic & Time Value — why options are worth more than their payoff
- The Black-Scholes Model — deriving intuition for the formula
- The Greeks: Delta & Gamma — directional exposure and its rate of change
- The Greeks: Theta & Vega — time decay and volatility sensitivity
- Rho & the Full Picture — interest rate sensitivity and the complete Greek surface
- Put-Call Parity — the no-arbitrage relationship that ties it all together
- Implied Volatility — inverting Black-Scholes with Newton-Raphson
- Option Strategies — spreads, straddles, and iron condors
- Binomial Trees — pricing American options via the CRR model
Each lesson ends with a coding exercise. Students fill in missing functions inside a real Python pricing engine that runs directly in the browser using Pyodide (Python compiled to WebAssembly). When they run their code, live charts update in real time showing how Δ, Γ, Θ, and ν respond to changes in the underlying.
How I Built It
| Component | Technology |
|---|---|
| Frontend | Next.js 16 + TypeScript + Tailwind CSS |
| Code editor | CodeMirror 6 (Python syntax highlighting) |
| Charts | Recharts — interactive Greek curves with parameter sliders |
| Python runtime | Pyodide — WebAssembly, runs entirely client-side |
| Deployment | Vercel |
The core of the platform is the pricing engine. The Black-Scholes formula for a call option is:
$$C = S_0 \cdot N(d_1) - K e^{-rT} \cdot N(d_2)$$
where:
$$d_1 = \frac{\ln(S_0/K) + \left(r + \frac{\sigma^2}{2}\right)T}{\sigma\sqrt{T}}, \qquad d_2 = d_1 - \sigma\sqrt{T}$$
Students are given a partial implementation with functions like Delta, Theta, and the implied volatility solver left blank as exercises:
$$\Delta = \frac{\partial C}{\partial S} = N(d_1)$$
$$\Theta = -\frac{S_0 \cdot N'(d_1) \cdot \sigma}{2\sqrt{T}} - rKe^{-rT}N(d_2)$$
$$\sigma_{n+1} = \sigma_n - \frac{BS(\sigma_n) - C_{\text{mkt}}}{\mathcal{V}(\sigma_n)} \quad \text{(Newton-Raphson IV solver)}$$
When they fill in the functions and click Run, the platform validates their output against unit tests and renders the full Greek surface live.
Challenges
Getting Python to run in the browser was the biggest technical hurdle. Pyodide loads a full Python interpreter via WebAssembly, which means a ~10 MB initial download and asynchronous execution that doesn't fit neatly into React's synchronous rendering model. Managing load state, passing variables between JavaScript and Python scopes, and surfacing error messages meaningfully to students required significant iteration.
Making hard math feel approachable was the other challenge — and honestly the harder one. The Black-Scholes derivation involves stochastic calculus that even many undergrads find intimidating. The curriculum had to build enough intuition that a 16-year-old could reason about σ√T without needing Itô's lemma. Every lesson went through multiple rewrites to find that balance. The implied volatility and binomial tree lessons were especially difficult: IV requires explaining root-finding without a numerical methods background, and binomial trees require building up the CRR model from first principles while keeping the code tractable.
Designing exercises that actually teach rather than just test was trickier than expected. Leaving Δ = N(d₁) as a blank is easy. Making sure a student who fills it in understands why — that Delta is the hedge ratio, the probability analogue, the slope of the price curve — required building the surrounding lesson content carefully enough that the exercise felt like a natural conclusion rather than a pop quiz. This became harder as the lessons progressed: the iron condor payoff exercise and the Newton-Raphson IV solver both required scaffolding the surrounding explanation so that the missing line of code was obvious in hindsight.
StrikeLab is free and open source. Quant finance shouldn't require the right zip code.
Built With
- codemirror-6
- next.js-16
- pyodide
- python
- recharts
- tailwind-css
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.