The Black-Scholes model is a mathematical model used for pricing options. From this model you can derive the theoretical fair value of an options contract. Additionally, you can derive various risk parameters called Greeks. This indicator includes three types of data: Theoretical Option Price (blue), the Greeks (green), and implied (red); their values are presented in that order.
1) Theoretical Option Price:
This first value gives only the theoretical fair value of an option with a given strike based on the Black-Scholes framework. Remember this is a model and does not reflect actual option prices, just the theoretical price based on the Black-Scholes model and its parameters and assumptions.
2)Greeks (all of the Greeks included in this indicator are listed below):
a)Delta is the of the theoretical option price with respect to the change in the underlying's price. This can also be used to approximate the probability of your option expiring in the money. For example, if you have an option with a delta of 0.62, then it has about a 62% chance of expiring in-the-money. This number runs from 0 to 1 for Calls, and 0 to -1 for Puts.
b)Gamma is the of delta with respect to the change in the underlying's price.
c)Theta, aka "time decay", is the in the theoretical option price with respect to the change in time. Theta tells you how much an option will lose its value day by day.
d) Vega is the in the theoretical option price with respect to change in implied .
e)Rho is the in the theoretical option price with respect to change in the risk-free rate. Rho is rarely used because it is the parameter that options are least effected by, it is more useful for longer term options, like LEAPs.
f)Vanna is the sensitivity of delta to changes in implied . Vanna is useful for checking the effectiveness of delta-hedged and vega-hedged portfolios.
g)Charm, aka "delta decay", is the instantaneous of delta over time. Charm is useful for monitoring delta-hedged positions.
h)Vomma measures the sensitivity of vega to changes in implied .
i) Veta measures the in vega with respect to time.
j)Vera measures the of rho with respect to implied .
k)Speed measures the in gamma with respect to changes in the underlying's price. Speed can be used when evaluating delta-hedged and gamma hedged portfolios.
l)Zomma measures the in gamma with respect to changes in implied . Zomma can be used to evaluate the effectiveness of a gamma-hedged portfolio.
m)Color, aka "gamma decay", measures the of gamma over time. This can also be used to evaluate the effectiveness of a gamma-hedged portfolio.
n)Ultima measures the in vomma with respect to implied .
o)Probability of Touch, is not a Greek, but a metric that I included, which tells you the probability of price touching your strike price before expiry.
3) Implied Volatility:
This is the market's forecast of future . Implied is directionless, it cannot be used to forecast future direction. All it tells you is the forecast for future .
How to use this indicator:
1st. Input the strike price of your option. If you input a strike that is more than 3 standard deviations away from the current price, the model will return a value of n/a.
2nd. Input the current risk-free rate.(Including this is optional, because the risk-free rate is so small, you can just leave this number at zero.)
3rd. Input the time until expiry. You can enter this in terms of days, hours, and minutes.
4th.Input the chart time frame you are using in terms of minutes. For example if you're using the 1min time frame input 1, 4 hr time frame input 480, daily time frame input 1440, etc.
5th. Pick what style of option you want data for, European Vanilla or Binary.
6th . Pick what type of option you want data for, Long Call or Long Put.
7th . Finally, pick which Greek you want displayed from the drop-down list.
*Remember the Option price presented, and the Greeks presented, are theoretical in nature, and not based upon actual option prices. Also, remember the Black-Scholes model is just a model based upon various parameters, it is not an actual representation of reality, only a theoretical one.
*Note 1. If you choose binary, only data for Long Binary Calls will be presented. All of the Greeks for Long Binary Calls are available, except for rho and vera because they are negligible.
*Note 2. Unlike vanilla european options, the delta of a binary option cannot be used to approximate the probability of the option expiring in-the-money. For binary options, if you want to approximate the probability of the binary option expiring in-the-money, use the price. The price of a binary option can be used to approximate its probability of expiring in-the-money. So if a binary option has a price of $40, then it has approximately a 40% chance of expiring in-the-money.
*Note 3. As time goes on you will have to update the expiry, this model does not do that automatically. So for example, if you originally have an option with 30 days to expiry, tomorrow you would have to manually update that to 29 days, then the next day manually update the expiry to 28, and so on and so forth.
There are various formulas that you can use to calculate the Greeks. I specifically chose the formulations included in this indicator because the Greeks that it presents are the closest to actual options data. I compared the Greeks given by this indicator to brokerage option data on a variety of asset classes from equity index future options to FX options and more. Because the indicator does not use actual option prices, its Greeks do not match the brokerage data exactly, but are close enough.
I may try to make future updates that include data for Long Binary Puts, American Options, Asian Options, etc.
Asian Options, aka Average Options, are a class of exotic options where instead of needing price to be above a strike price upon expiry (long call) or below a strike (long put), the average price needs to be above (long call) or below (long put) the strike upon expiry. There are a few ways in which to calculate the average; Asian options can be based on the arithmetic average, geometric average, or harmonic average.
Here are the differences between average types:
For example say the prices of the last 3 periods are: 5,2,3.
This model provides theoretical pricing for geometric asian options. Geometric Asian Options can be picked from the drop down menu. If chosen the only greeks that won't work are rho, vera, and probability of touch. Because there aren't any readily available Asian option data to compare with, I don't know how close the greeks for the geometric asian options would match realtime data, and therefore are theoretical in nature.
Additionally, I updated the IV calculation to make it more accurate. Since I am using a calculation that does not involve option prices, the IV values will not be exactly the same as ones provides from external sources, like brokers, exchanges, etc; but are close enough. The only disclaimer is that with the IV generated by this script, I would not recommend using it if your expiry is more than 100 days. For some reason with expiries over 100 days the IV values become way off. This is why with this update you now have the choice of using your own IV values or the ones generated by this script. If you have your own source for IV such as from a broker, exchange, etc you can input it into this model and specify this in the dropdown menu.
Providing your own IV values will generate the most accurate options pricing and Greeks. But if you decide to use the script-generated IV values, the pricing and Greeks should still be close to actual data, with the previously mentioned disclaimer in mind.
Also, as a reminder this script does not auto-update the days until expiry, so you will have to update this yourself as time moves on.
Hope this update helps!
As for the update, the only major difference is that instead of using an error function to calculate the Black-Scholes model, this update uses probability distribution functions and cumulative distribution functions.
In the name of all TradingView traders, thank you for your valuable contribution to the TradingView community, and congrats!
i was looking for something similar - but honestly what i need would be much simpler than this - and for American options. any chance you may have that already? just the option price and not the full/extended set of greeks
i also think we can make the expiry date a user entry and calculate the time to expiry in the code, instead of the need to make daily update -- happy to help experiment with that if there's a chance.
big THANK YOU for this awesomeness again