This is a custom formula that calculates the put and call prices of European style options.
This Black-Scholes Option Pricing Model function accepts six parameters.
The first parameter is used to specify whether we want to calculate a put or a call, set 'p' for put and 'c' for call.
The others parameters are: Security price, strike price, years to maturity (if it is for example 6 month, then set '0.5'), risk-free rate and volatility.
The function calculates for each bar, the option price of a put or a call given the above parameters.
Set the Price parameters to 'close'.
For the volatility I usually use the following formula: Stddev(close, 30) * sqrt(1 / 12), that is the annualized historical volatility.
I used here the standard deviation for the past 30 days and then annualized the result.
If you set your formula to something like:
a = BlackScholes('c', close, 30, 0.25, 0.06, Stddev(close, 30) * sqrt(1 / 12)); // Option pricing formula
Plot(a, 'Pricing', colorBlack, chartLine, styleOwnScale);
The chart will display the option price of a call with a strike price of 30, 3 months to maturity, and 6% as risk-free rate.
Note: For each bar the number of days to maturity is constant and thus this is not the price of the call over time.
I use this function to create custom outputs to simulate option strategies.
For example, when I analyze a list of rules, instead of buying the stock, I use this formula to simulate a call or put buy or any other combination.
Note: this Black and Scholes formula should be modified in order to be able to calculate American style options.
Note also that this Option pricing model doesn't take dividends into account.