Hi, i am doing back tests, and i want to calculate the IV-Rank (the percentile) myself the problem is that i don't know how to do that. i know the formula (taking the highest and lowest and put it in the forumla) but highest and lowest of what ?? should i take the IV of the underline or should i take the IV of a specific strike with a specific duration until expiration. if i should take the underline, than i understand what to do, but i think i should take the IV of the option, but then - i can't compare option which is ATM with 10 points OTM and with 30 points OTM because of the smile skew and i can't compare options which is 35 days to expiration with 7 days to expiration so which highest and lowest i should take ? if i only take IV of the same time period and i only take options with the same distance from ATM, i will get only 12 values, and it's not enough to calculate the IVR should i normalize all the parameters (the time and the strike) ??? could you please help me understand how to calculate the IVR. Thanks, Shay
Shay: You seem to be asking the group what your question should be? -- Typical reference to IV and IV percentile, relate to the "30 day" value by default. While it is also viable to reference specific time frames and strikes for IV; that is less common. For example IF you want the IV for SPY, reference VIX, which is the 30 Day IV value. Where are you obtaining your data from? Hopefully, you have access to the IV directly, else you may need to dig into the CBOE White paper on how to calculate it! If you are using "Quandl", you "may" be lucky enough to find your specific securities also have supported IV data (if EOD is adequate). Regards,
IV is usually calculated (searched) iteratively, ie. using intervall-halving, a kind of bsearch... At least I did it so years ago in my library, if I remember correct. I hope we mean all the same: calculating the implied vola from given premium and price of underlying and the other params like t, r, strike etc. Update: Hmm. "IV rank" seems to be a new concept I'm not aware of. I know IV only, not the rank or percentile. Maybe the following link could be useful for the OP: https://www.dough.com/blog/implied-volatility-rank It gives this formula: 100 x (the current IV level - the 52 week IV low) / (the 52 week IV high - 52 week IV low) = IV Rank In the link below the difference between IV Rank and IV percentile is explained, along with some equations: http://blog.optionsamurai.com/difference-iv-rank-iv-percentile/ Here's a script (I think for TOS): http://www.smalldoginvestor.com/2013/07/thinkscript-included-sdiivp-iv.html
@ Shay: Here is a thinkscript for IV and IV percentile for TOS. Code: def vol = impVolatility(); def IV=vol*100; def hi = highest(vol,252); def lo = lowest(vol,252); def perct = (vol - lo)*100 / (hi - lo); AddLabel(1, Concat("52wk IV Percentile " + Round(perct, 2), " %"), Color.gray); AddLabel(yes, ("IV: "+IV), Color.gray);
The two decision points are do you look at fixed strike vs floating strike and do you look at fixed maturity vs floating maturity. There is no right answer. It depends and if you look at it one set vs another you can get some good information. I personally always looked at fixed strike-floating maturity and floating strike-floating maturity.
Thanks for the answers, i am building these days the code and all the logic i want to implement in MSSQL (i'm a DBA, so this is my strong area), and when i'm done, i am going to buy data from two or three sources (for comperission and filling the holes), they will be ivolatility, optiondata and historicaloptiondata. (unless i will see strong negative opinion on one of them), all three have IV data. botpro - yes, i am talking about the new concept you mentioned. i know the formula, but i wonder what should i put in the formula, newwurldmn said it perfectly - should i use the fixed strike vs floating strike and fixed maturity vs floating maturity. for example, the 52 week IV high - which IV i should take - the underline, the ATM, my strike, how many days before expire, or a normalized value... you said you always looked at fixed strike-floating maturity and floating strike-floating maturity. why do you use fixed strike-floating maturity ? the skew smile doesn't bother you ? lets talk about the "floating strike-floating maturity", because in my opinion, i should use it. in the floating strike-floating maturity, i should check all the strikes and from all the time before expiration but as i said above - i can't compare option which is ATM with 10 points OTM and with 30 points OTM because of the smile skew and i can't compare options which is 35 days to expiration with 7 days to expiration. so i need to normalized them ? how ? or i am missing something ? Thanks, Shay
Floating strike floating maturity for example would mean you would compare the 1M ATM vol (derived from the surface) yesterday to the 1M ATM vol derived from the surface today. The ATM spot level will be different. travelling up and down the skew will impact this reading. It's very similar to looking at the VIX from day to day. When I used fixed strike, floating maturity, I compared todays ATM 30 day vol to yesterdays 30 day vol at todays ATM spot (derived from the surface). There is no normalizing needed.
i understood what you meant, but i think there is a problem with both the floating maturity and strike. so i will explain what do i want - let's assume the underline price is 100 and there are 30 days to expire i want to know what percentile is the current IV of the 70 put is (which is different than other strikes and duration). because the 70 put is ATM-30 i can check all the ATM-30 strikes from the past year (floating strike) but they needs to be all with 30 days to expire because you can't compare the IV of 30 days to expire, with the IV of 2 days to expire. am i wrong ? so i will have only 12 values to check, and i think it's not enough. so if i want to get much more values for checking the highest IV and lowest IV of the last year, i think i should normalize the duration and the strikes. so in the end, i can compare the ATM-30 with ATM-20, ATM-10, ATM, ... and also i can compare the 30 days with 29,28,... 10 (maybe i should not compare the last days before expire ? ) am i wrong ? i think TastyTrade and the code that stepandfetchit wrote above, they are all using the IV of the underline (as stepandfetchit wrote, 30 day, the VIX for the SPY), and not the specific time frame and strike. as he said, it's less common, but i think it might be stronger. Thanks, Shay
I don't know what TastyTrade does and what stepandfetchit is trying to do. You can get a 30 day vol every day of the week. iv moves every day and represents the point in time expectation of the future. So it's reasonable to look at overlapping periods. Your idea of using the 30 day 70 strike and the and 2 day 70 strike would be fixed maturity, fixed strike. There is merit in looking at this as well. It makes sense to look at each of the four permutations. They all tell a different story using the same volatility surface and you should focus your energy on understanding which of those permutations will suit your needs.
Shay: It is still unclear to me, how you will be using the IV Rank, and therefore how specific/general, it should be! IMHO: Many folks that reference or use IV Rank (including the Tastytrade folks), use it as a sloppy and coarse line in the sand, and typically base some variant to a trading strategy on this being above or below some historic (52-week) value. Something like: Enter XyZ Straddle IFF IV percentile > 25%, else avoid trade. This is also how I sometimes use it. Kinda like using hand grenades to keep armadillo's out of your yard ... You would think we would be using more appropriate tools! I am just guessing, but wondering if you try to get too specific, such as attempting to provide a an IV Rank metric for each and every OPRA code (option contract), there could be substantial noise in the data that is undesirable. <-- No advice, here, just wondering if this path may have more "opportunities" to resolve, than you desire. -- I realize you are NOT advocating a specific Metric Per contract, but more fine-grained than folks may be accustomed to. If you take a look at the TOS option chains, they provide an IV value for each Series (expiration), as well as for each contract. The TOS folks informed me that the way they arrived at that Series IV value was also based on the CBOE White paper on VIX calculation, except the calculation only used that specific option series! See picture below for reference: Disregard above if I have missed your point!