How to determine if options are cheap or expensive using historical data

Discussion in 'Options' started by Kust, Jan 20, 2023.

  1. Kust

    Kust

    I want to buy options to place a directional bet. It makes sense only if the options are not too expensive currently. How to find out?

    I demonstrate a possible way to solve the problem below, including Python code. I hope that you will point out its errors and shortcomings.

    To begin with, I have OHLC historical data.

    I could easily calculate the realized volatility for the last year. However, it differs significantly from year to year. It is unlikely that in the subsequent period, it will be very similar to the recent one.

    It seems more reasonable to calculate the daily percentage price movements. I have annualized them by multiplying by 252^0,5 to compare with the traded options implied volatility.

    I have also calculated the weekly percentage price movements and annualized them by multiplying by 52^0,5.

    Code:
    data['pct_chng'] = (data['Close']-data['Close'].shift())/data['Close'].shift()
    # now annualize to be able to compare with traded options implied volatility
    data['pct_chng_a'] = abs(data['pct_chng']*100)*(252**0.5)                  
    # now do the same for weekly price movements
    data['pct_chng_weekly_a'] = (data['Close']-data['Close'].shift(5))/data['Close'].shift(5)
    data['pct_chng_weekly_a'] = abs(data['pct_chng_weekly_a']*100)*(52**0.5)
    print(data[['Close', 'pct_chng', 'pct_chng_a', 'pct_chng_weekly_a']].tail())
    
    Result:

    Code:
                                    Close  pct_chng  pct_chng_a  pct_chng_weekly_a
    Date                                                                         
    2023-01-12 00:00:00-05:00  330.130005  0.008770   13.921579          47.569508
    2023-01-13 00:00:00-05:00  332.820007  0.008148   12.935045          39.466293
    2023-01-17 00:00:00-05:00  326.220001 -0.019831   31.480033          25.282416
    2023-01-18 00:00:00-05:00  326.329987  0.000337    0.535210           2.663978
    2023-01-19 00:00:00-05:00  315.779999 -0.032329   51.321016          25.295952
    After that:

    Code:
    data['pct_chng_annualized'].describe()
    
    count    5200.000000
    mean       36.678109
    std        43.812184
    min         0.000000
    25%        10.906413
    50%        24.833079
    75%        47.330351
    max       670.277442
    If I use weekly percentage price movements, the result is similar.

    Code:
    data['pct_chng_week_annualized'].describe()
    
    count    5196.000000
    mean       40.673958
    std        43.129768
    min         0.000000
    25%        12.736723
    50%        28.627616
    75%        53.388777
    max       530.388741
    Let's say options are currently trading with an implied volatility of 54%. Is it correct to conclude that they are expensive because their implied volatility is higher than the 75th percentile?

    Is the above approach generally correct?
     
  2. JamesJ

    JamesJ

    Hi there,

    just plain historical volatility data and its distribution gives you an idea of the underlyings future volatility.
    However for the current implied volatility i doubt you can derive if an option is over-/undervalued... as i would consider them fair priced.
    Implied volatility for a given strike, maturity takes into account much more than your data of just realized volatility has...
    i.e. earnings dates, earnings uncertainty, overall current and expected market volatility (such as potential big movers, like cpi / fed), current company specific expected events, visibility and stuff...
     
  3. Kust

    Kust

    In trading platforms, I see the following. For options, they provide information about what percentile of historical realized volatility the implied volatility is. Depending on that, it is concluded whether the option is expensive, cheap or fairly priced.

    Of course, other factors must be taken into account. However, in general, this approach looks reasonable.

    Trading platforms do not show how they calculate the distribution of historical volatility. In any case, I want to be able to do it myself without having to rely on them.

    In the initial post, I suggested a method for such a calculation. I am by no means sure that it is correct.

    For example, maybe I should use not close price changes, but true range? In such case, I obtain much higher values of historical volatility. The options currently traded look cheaper.

    When I tried to use log returns, the historical volatility was very low. I have not found information anywhere on how to do it correctly.
     
  4. TheDawn

    TheDawn

    First of all, if you are doing a directional bet, what matters more is whether your prediction of the future direction of the trend is correct. As long as that's correct, you will always be able to make money as long as you cash out before a possible "volatility crush" sets in. An option's cheapness or expensiveness would only matter if you choose to hold the option until its expiration and need to ensure that its intrinsic value upon expiration is higher than the option price at which you bought the option.

    How do you find out whether an option is too expensive? You can't. There is no way or I should say no reliable way to find out whether an option is too expensive or too cheap right now because whether an option is too expensive or too cheap will depend on how much the underlying will move in the future and nobody knows the future. If we do, we will all be rich!! :) The implied volatility is only the volatility or the magnitude of the price movement of the underlying that's estimated or expected right now but that can all change according to what happens in reality during the life of the option. Just because the implied volatility seems to be high doesn't mean it's really too high if the underlying becomes more volatile during the life of the option and not really cheap if the underlying becomes even less volatile in reality. Take your example, the implied volatility of 54% wouldn't be too expensive even though it's above the 75th percentile if the actual volatility ends up being even higher at let's say 75% or 87% but on the other hand if an implied volatility of even 25% which is well below the 50th percentile wouldn't necessarily be cheap if the underlying ends up moving even less.

    All the % historical volatility or implied volatility gives you is just an estimation or educated guess at best. The way to make money in options is if you intend to hold the option to its expiration, you have to be even more right than the people who were right.
     
    Last edited: Jan 20, 2023
    cemkaner likes this.
  5. Kust

    Kust

    I understand that it is impossible to be always right. In trading, we are inevitably often wrong. However, my chances of winning look better when I buy cheap options than when I buy them high.
     
  6. Kust

    Kust

    Please don't deviate from the topic.

    We have the option's implied volatility number. How to determine whether it is historically low, high, or about average? That's all the question.
     
  7. TheDawn

    TheDawn

    Well if you are just doing a directional bet, like I said as long as your direction is correct and you cash out before the volatility crush sets in, you will win. But if you want to hold the option to its expiration, then it's going to have to depend on the future price movement of the underlying. If you intend to hold the option to expiration, your chance of winning wouldn't necessarily look better with a low IV option. If the option already has a low IV that doesn't necessarily mean it's cheap; it just means everybody already thinks it's cheap with the underlying not going to move much. So if everybody already thinks that it's not going to be moving much, how much of a probability that they are all wrong and you are correct? This is basically what you are betting on to win by holding it out to its expiration.
     
  8. TheDawn

    TheDawn

    I am telling you the option's IV's being low or high or above average historically has very little bearing on whether it will really be low or high or above average in reality. In options, it's the actual IV that the option ends up having that matters that determine whether you win or lose and how much if you buy an option.
     
  9. Kust

    Kust

    I realize that this is just a small part of the thinking behind a directional bet. However, I still haven't found any good information on how to do this part correctly.
     
  10. newwurldmn

    newwurldmn

    you can look at past IV’s (called the IV rank), you can look at current IV against recent HV, or you can look at current IV against current HV rank.

    if you are trading directionally your real risk is distributional and you might want to consider using an HV that’s not based on one day returns but maybe a week’s returns.
     
    #10     Jan 20, 2023
    Adam777, brownianpotion and Kust like this.