Been meaning to do this for a while and conversation in another thread has prompted me to put this together.
The general dogma when selling OTM options is to sell them 1 standard deviation of volatility from the current price.
I agree with this, subject to a bit of technical analysis. I will sell puts (and/or spread) when I think a down wave or retracement has concluded, subject to the trend. Visa-versa for calls.
Therefore, what better way to include the short strike selection criteria in analysis, than with an indicator that plots the levels of 1 standard deviation of volatility, above and below the current price on the chart, both in terms of historical and implied volatility?
e.g. Looking at Alcoa (NYSE:AA), the 30 day statistical volatility is 41% , but the implied volatility on April options are around 52% with no earnings announcements due within the time frame, and 24 trading days to go. Not bad option writing conditions.
Now the idea of analysis when writing options is to determine where the price is NOT going to go, rather than where it is going to go. Enter the chart with indicator applied:
The inputs are the number of trading days remaining and the annualized implied volatility (the number your platform shows).
What we have is one standard deviation of volatility, relevant to the time period involved. Pink is statistical vol and yellow is IV.
This analysis is suggesting that if writing calls in the april series, we're looking at the 42.50 strike and if writing puts, 30.00 or 32.50 strikes (or both if doing condors).
Next step is to add your own technical analysis to see if these are reasonably safe strike to write, and place a trade or not.
The amibroker formula I've come up with is:
(add your own elegance)Code:x = Param("Enter Trading Days Left",20,1,100,1); y = (StDev(log(C/Ref(C,-1)),30)*sqrt(x))*C; osda = C + (StDev(log(C/Ref(C,-1)),30)*sqrt(x))*C; osdb = C - (StDev(log(C/Ref(C,-1)),30)*sqrt(x))*C; z = Param("Enter Implied Volatility",35,1,200,1); oiva = C + (z/100 * sqrt(x/256))*C; oivb = C - (z/100 * sqrt(x/256))*C; Plot(LastValue(osda),"1SVabove",colorCustom12,styleDashed); Plot(LastValue(osdb),"1SVbelow",colorCustom12,styleDashed); Plot(LastValue(oiva),"1IVabove",colorYellow,styleDashed); Plot(LastValue(oivb),"1IVbelow",colorYellow,styleDashed);
Disclaimer: Writing options can give you herpes, liver damage and warts on your nose, and you might lose money blah blah blah.