Skip to content

Black Scholes Model in Python: Step-By-Step Guide

In the world of finance, the Black-Scholes-Merton model stands out as a pivotal tool for pricing options. Lets create the Black Scholes model in Python. Developed through rigorous mathematical derivations, this model calculates the theoretical value of an option based on five essential parameters:

      1. Underlying Price (S): The current market price of the asset.

      1. Strike Price (K): The predetermined price at which the option can be exercised.

      1. Time to Expiration (T): The time left (in years) until the option’s expiration date.

      1. Risk Free Rate (r): The constant rate of return on a risk-free asset, such as a government bond.

      1. Volatility (σ): A measure of how much the price of the underlying asset fluctuates.

    With these components in mind, let’s dive into the implementation in Python:

    Step 1: Import Necessary Libraries

    Before we begin our calculations, it’s crucial to have the right tools at our disposal. Thus, we’ll import the required Python libraries:

    Python
    import math
    from scipy.stats import norm
    

    Step 2: Define the Variables

    Here, we’ll establish the variables based on the parameters mentioned earlier:

    Python
    S = 45  # Underlying Price
    K = 40  # Strike Price
    T = 2   # Time to Expiration
    r = 0.1 # Risk-Free Rate
    vol = 0.1 # Volatility (σ)
    

    Step 3: Calculate d1

    With our variables set, we first compute d1, a crucial intermediary value:

    Python
    d1 = (math.log(S/K) + (r + 0.5 * vol**2)*T ) / (vol * math.sqrt(T))
    

    Step 4: Calculate d2

    Subsequently, we derive d2:

    Here’s the code:

    Python
    d2 = d1 - (vol * math.sqrt(T))
    

    Step 5: Calculate Call Option Price

    To determine the theoretical price of a call option:

    Python
    C = S * norm.cdf(d1) - K * math.exp(-r * T) * norm.cdf(d2)
    

    Step 6: Calculate Put Option Price

    For the put option:

    Python
    P = K * math.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1)
    

    Step 7: Print the Results

    Lastly, let’s display our results:

    Python
    print('The value of d1 is: ', round(d1, 4))
    print('The value of d2 is: ', round(d2, 4))
    print('The price of the call option is: $', round(C, 2))
    print('The price of the put option is: $', round(P, 2))
    

    In conclusion, we have built the Black Scholes model in Python. With just a few lines of code, you can determine the theoretical price of both call and put options.

    No time for Python? You can type your inputs into my Black Scholes calculator to get option prices here.

    Find discounts on finance certificates, courses and products here.

    Professional certificates

    Explore Top Finance Certificates

    Access official certificates from Wharton Online & Columbia Business School Executive Education, powered by Wall Street Prep. Save up to $500 with my exclusive discount code:

    View Certificates

    Contact Me

    Feel free to reach out to discuss your freelance project needs, and let’s collaborate on bringing your vision to life!

    Contact Ryan

    Get in touch

    Contact Me

    Have a question or want to work together? Fill out the form below and we'll get back to you as soon as possible.

    Contact Form Demo

    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.