IV Rank & IV Percentile
First, this won’t be a lengthy discussion about implied volatility or the impact it has on options pricing. That will come later.
This page is meant to describe IV rank and IV percentile in the simplest terms possible. I’ll also provide the script that can be added to ThinkorSwim so these indicators appear as a subgraph on all your charts (see end of this page).
Is there a difference between IV rank and IV percentile?
Yes, but in my opinion the difference isn’t discernible enough to quibble over. Don’t believe me? Google it and see for yourself. Both indications are similar, one just requires a more complex calculation to derive essentially the same information. Sure arguments could be made for one over the other but why waste the time, this indicator is mostly just useful in gauging quickly what side of the trade we should be on.
So, What is it?
In the simplest words I can use to describe, IV rank and IV percentile are a gauge of where current IV is compared with where it’s been. To say it differently, the percentage shown on our charts is a reflection of current IV relative to its past IV. This is probably best demonstrated with an image. Check it out below and I’ll explain.
Click to Enlarge.
If the IV rank or IV percentile of SPY is at 11% today, that means over the past year IV has been lower than its current position only 11% of the time (or higher 89% of the time).
Why is this important?
It helps us determine whether its more beneficial to be net buyers or net sellers of options. When IV rank is high we want to be sellers of options and when it’s low we want to be buyers. That’s all.
The reasoning is simple. When IV is high there is more uncertainty in the market and large moves are expected. If uncertainty is high we should be compensated for the expected extreme moves. Likewise, if IV is low then premiums are low and we’re suggested to be net buyers.
You may have also noticed another useful caveat associated with the IV rank. It can help shed some light on the future direction of an underlying. How? Well, when volatility is high it can only go lower and when it’s low it can only go higher. This isn’t to say it can’t stay high or low for long periods of time, because it absolutely can. It’s just another way to use the tool in our belt.
Individual indicators don’t have to tell a complete story themselves, they only have to add a verse to the page and that’s all IV rank does for us or is intended to do. But I like it because I can quickly see the volatility relationship between past volatility and quickly determine what side of the trade is likely more profitable.
Have any thoughts? Please share below.
To Add IV Rank to ThinkorSwim Charts:
IV Rank Script: taken from tastytrade.com.
1) Go to ‘Charts’ tab
2) Click on the “eye-dropper” icon (officially called “edit studies icon”…same line where you type in the ticker same symbol, first icon moving left to right)
3) Click on “Edit Studies” and then “New”… Lower left hand corner
4) Delete everything in the box. (plot Data = close;)
5) Paste the entire code listed below
6) Name the Study
7) Click ‘OK’
8) Click ‘Apply’
9) Click ‘OK’
input period = AggregationPeriod.DAY ;
#hint period: time period to use for aggregating implied volatility.
input length =252 ;
#hint length: #bars to use in implied volatility calculation.
def ivGapHi = if isnan(imp_volatility(period=period)) then 99999999999 else imp_volatility(period=period);
def ivGapLo = if isnan(imp_volatility(period=period)) then -99999999999 else imp_volatility(period=period);
def periodHigh = highest( ivGapLo,length=length);
def periodLow = lowest( ivGapHi, length=length);
def ivRange = periodHigh – periodLow ;
def ivp = round( 100*(imp_volatility(period=period) – periodLow)/ivRange, 0);
AddLabel(1, Concat(“IV% “, ivp), if ivp > 80
else if ivp < 80 and ivp > 50
——————END ABOVE THIS LINE———————
a) Use 252 as input length for 1-year or 52-week IV percentile
b) You can change 252 to 189 for 9-month IV percentile
c) You can change 252 to 126 for 6-month IV percentile