Project 5: Black-Scholes Option Pricing Model

Build a pricing tool that computes European call and put values.


Project Overview

Attribute Value
Difficulty Level 2: Intermediate
Time Estimate Weekend
Main Language Python
Alternative Languages C++, R
Knowledge Area Options pricing
Tools CLI or notebook
Main Book “Options, Futures, and Other Derivatives” by John Hull

What you’ll build: A calculator that prices European options using the Black-Scholes formula.

Why it teaches quant: It connects probability, distributions, and finance into a single equation.

Core challenges you’ll face:

  • Implementing the normal CDF accurately
  • Handling input units (time, rates, volatility)
  • Comparing model price to market price

Real World Outcome

You will input option parameters and receive theoretical call/put prices.

Example Output:

$ python black_scholes.py --s 100 --k 105 --t 0.5 --r 0.03 --sigma 0.2
Call: 4.23
Put: 7.71

Verification steps:

  • Validate against known examples
  • Check call-put parity

The Core Question You’re Answering

“How does probability translate into option prices?”

Black-Scholes is the canonical quant formula.


Concepts You Must Understand First

Stop and research these before coding:

  1. Normal distribution
    • How do z-scores map to probabilities?
    • Book Reference: “Options, Futures, and Other Derivatives” by John Hull, Ch. 11
  2. Risk-neutral pricing
    • Why do we discount expected payoff at the risk-free rate?
    • Book Reference: “Options, Futures, and Other Derivatives” by John Hull, Ch. 13
  3. Volatility
    • Why is volatility the most sensitive input?
    • Book Reference: “Options, Futures, and Other Derivatives” by John Hull, Ch. 14

Questions to Guide Your Design

  1. Input handling
    • How will you ensure time is in years and rates are annualized?
    • How will you validate sigma ranges?
  2. Output analysis
    • Will you compute implied volatility if given a market price?
    • How will you show sensitivity (Greeks)?

Thinking Exercise

Call-Put Parity

Given S=100, K=100, r=0.05, T=1, compute the parity relationship between call and put.

Questions while working:

  • Why must parity always hold?
  • What does it imply about arbitrage?

The Interview Questions They’ll Ask

Prepare to answer these:

  1. “What is the Black-Scholes model?”
  2. “Why do we use the normal CDF?”
  3. “What is risk-neutral pricing?”
  4. “What are the model assumptions?”
  5. “How does volatility affect option price?”

Hints in Layers

Hint 1: Starting Point Implement the d1 and d2 calculations carefully.

Hint 2: Next Level Use a reliable normal CDF function from a library.

Hint 3: Technical Details Check call-put parity as a validation test.

Hint 4: Tools/Debugging Compare output to a trusted online calculator.


Books That Will Help

Topic Book Chapter
Normal distribution “Options, Futures, and Other Derivatives” by John Hull Ch. 11
Risk-neutral pricing “Options, Futures, and Other Derivatives” by John Hull Ch. 13
Volatility sensitivity “Options, Futures, and Other Derivatives” by John Hull Ch. 14

Implementation Hints

  • Keep units consistent: time in years, rates annualized.
  • Provide a sample input set for testing.
  • Include parity checks in tests.

Learning Milestones

  1. First milestone: You can compute call and put prices.
  2. Second milestone: You can validate parity.
  3. Final milestone: You can explain model assumptions and limits.