In that case you are better off using a tight call or put spread as an approximation of a digital and then multiply that by 2. While it's still not perfect, it takes the implied skew into account.This is very useful because probability of touch is an important factor for me to consider.
No coding experience requiredThank you. This is very useful because probability of touch is an important factor for me to consider.
I have downloaded historical data and would like to compare probability of touch with actual outcome. I can code in VBA excel but not R.
I think I can do the formula in excel.
Regards,
Thank you, I will download R later.No coding experience required
Download R: https://cran.r-project.org/bin/windows/base/
Download Rstudio: https://rstudio.com/products/rstudio/download/
Open Rstudio
Copy and paste Kev's code.
Call the function with your inputs: bsProbOfTouch(S,K,T=1,r=0,q=0,sigma=0.1)
Then press run.
Voila
Doing those steps is worth the time. Kevin and others have posted lots of useful R code on ET over the years
In that case you are better off using a tight call or put spread as an approximation of a digital and then multiply that by 2.
All of the approximations discussed in this thread, 2*delta, 2*dualdelta, and the function I posted (as well as Peterffy's crude version of Breeden-Litzenberger), take the implied skew into account. This is because they are dealing with the greeks/ivols/prices at K (the strike/barrier, U, L,...) to make the estimates.While it's still not perfect, it takes the implied skew into account.
That is a good idea. It will be a useful exercise even if you find that option implied probabilities aren't very good estimates of real-world probabilities. You should have no trouble translating the function I posted to VBA, as it was tranlated from Basic to R to begin with.re probability of touch with actual outcome. I can code in VBA excel
I think I can do the formula in excel.
I am confused. How does 2*delta or 2*dualdelta take the skew into account if it only uses a single volatility? A replicated digital (i.e. call spread) would take two options, each traded with distinct implied volatility for the strike and thus will include the skewness between these two strikes. [edit] got it, you are taking the limit of the strike spread and thus converging to zero vol difference - sadly, that also brings you from "real" world to a pure BSM worldAll of the approximations discussed in this thread, 2*delta, 2*dualdelta, and the function I posted (as well as Peterffy's crude version of Breeden-Litzenberger), take the implied skew into account. This is because they are dealing with the greeks/ivols/prices at K (the strike/barrier, U, L,...) to make the estimates.
Real world outcomes would include real-world drift, so naturally you'd never match your risk neutral probability that uses option prices. However, when managing a digital or one-touch exposure (real life expression of risk neutral probabilities) you'd certainly want to include the skew into your hedging/pricing model so you carry the right amount of delta.However, for estimating real-world probabilities, taking the implied skew into account seems to hurt more than help. At least this is true historically for the SPX (the only name I have actually tested it on) since 2003 (as far as my options data goes back). Also I tested only the probabilities of ITM (the terminal distribution on the third Friday monthlies), not the touch probabilities.