Formula for "Implied Volatility"

Discussion in 'Options' started by Derrenoption, Sep 26, 2016.

  1. Hello,

    I wonder if anyone has the formula for "Implied Volatility". I am googling and only find very complicated examples. I am looking for a straight forward formula where to insert values into an equation where we can get the percentile % of the implied volatility?

    Thanks
     
  2. Jones75

    Jones75

    Implied volatility is an arbitrary guess of what the underlier is going to do. Once the guess has been made, then the equation is wrapped into the greeks formula.
     
  3. Firstly, the question you pose is more vague than you may realize. For those seeking high precision, many non-trivial factors must be considered.
    If precision is not critical to you, the knee-jerk derivation of IV for a specific option Contract, is merely the IV required for the BSM model to match the current MID price of that option, since all other parameters to the BSM model are known, and may be simply provided. This requires multiple passes to reach the precision you desire. There are equations in Excel that can produce this, as well as you can write your own.
    Your reference to "percentile" seems to imply you do not want the individual option IV, but possibly the IV of a specific expiry, or perhaps you want only the 30 Day estimate. Without a more precise question, it is difficult to provide specifics.
     
  4. You are asking two different questions. IV calculations and percentile % of the IV are two different things. Maybe think about it and determine what it is you want. By the way, if you have daily IV figures, just use percentile rank formula in excel.
     
  5. There is no closed form formula. The Newton-Raphson method is a commonly used iterative procedure, but there are others. Obviously, you can also use Solver. There are also some closed-form approximations, like this one here.
     
  6. If you use TOS, the following may be close to what you are looking for. (a study for IV Percentile): Note: this uses High and low over 52 weeks, instead of the frequency distribution, but is the method used by TastyTrade and TOS.
    ---------------
    declare lower;
    #declare hide_on_intraday;


    # Current implemenation requires daily bars to be accruate, as daily bars are assumed.
    # Considering overriding the bar choice to enforce observation of 52 Weeks!
    AddLabel(yes, Concat("MMM:", GetMarketMakerMove()), Color.gray);
    def IV = imp_volatility() * 100;



    def vol = impVolatility();
    def hi = highest(vol,252);
    def lo = lowest(vol,252);
    def perct = (vol - lo)*100 / (hi - lo);
    plot IVpercentile=perct;
    plot IVhi=hi*100;
    plot IVlo=lo*100;
    plot ivol =vol*100;
    AddLabel(1, Concat("52wk IV Percentile " + Round(perct, 2), " %"), Color.gray);
     
  7. panzerman

    panzerman

  8. Stepandfetchit, Yes my question was a little diffus there. What I am looking for is the "ImpVolatility" that TOS is using. For example when applying that indicator now to "GOOG" it shows 0.1861. So it is the absolute value that is shown like that which I am after how I can calculate that myself.

    It seems that they only use the underlying and not any options prices/values when calculating this?
    I tried to follow your example but that is not an exact mathematical formula for this.

    I beleive my question then would be how to mathematically calculate the "ImpVolatility" that TOS is using?
     
    Last edited: Sep 26, 2016
  9. The IV for the underlying is calculated by mathematically combining the ATM IV of the options. As far as how to do this, it depends. Some combine the ATM IV of options across several expirations. The "combining" algorithm is not standardized.
     
  10. Robert Morse

    Robert Morse Sponsor

    Each trading platforms uses some version of BS to calculate the current IVol including whatever dividend/interest rate flows they pick up. Why do you want to do the calculations yourself? What will you do with the results?

    They have to use current option prices to do this as it is a require input.
     
    #10     Sep 26, 2016