OTM calls on single stocks are generally overpriced. Using 3 years of EOD options data, I ran the following backtest:
OTM call contract selection criteria
Next, I filter out contracts where the IV is below the EWMA(0.7) variance.
Finally, I run a Monte Carlo simulation to generate 50,000 GBM price paths with varying step counts using the EWMA(0.7) volatility estimate. Iterating over each price path, I calculate the probability of touching the strike price target, and count the occurrences where it is <5%. 1 minus ITM probability over 50,000 is the probability of expiring OTM.
Contracts with a probability of expiring OTM >98% are selected to trade.
For the backtest, trading signals are generated after the close, so the entry date is the next trading day. Entries use the bid price at 3:45 PM, and exits use the ask at 3:45 PM. The bid must be at least 0.60 or the signal is ignored. The exit criteria is >50% profit. No stops are used.
Each trade is discrete and margin requirements are not considered. Assuming it were possible to enter the trade on the same day as the signal, profitability is slightly higher but not enough to justify the complexity of implementing this analysis on an intraday basis. Likewise, excluding days with zero volume did not affect the results much.
Excluding open trades:
7,064 total trades
7,031 were profitable (99.5%)
Total wins: $935,224
Total losses: -$11,160
OTM call contract selection criteria
- Bid >= 0.15 and Ask >= 0.15
- Bid/Ask spread between 0.01 and 4
- Expiration between 11 and 75 days
Next, I filter out contracts where the IV is below the EWMA(0.7) variance.
Finally, I run a Monte Carlo simulation to generate 50,000 GBM price paths with varying step counts using the EWMA(0.7) volatility estimate. Iterating over each price path, I calculate the probability of touching the strike price target, and count the occurrences where it is <5%. 1 minus ITM probability over 50,000 is the probability of expiring OTM.
Contracts with a probability of expiring OTM >98% are selected to trade.
For the backtest, trading signals are generated after the close, so the entry date is the next trading day. Entries use the bid price at 3:45 PM, and exits use the ask at 3:45 PM. The bid must be at least 0.60 or the signal is ignored. The exit criteria is >50% profit. No stops are used.
Each trade is discrete and margin requirements are not considered. Assuming it were possible to enter the trade on the same day as the signal, profitability is slightly higher but not enough to justify the complexity of implementing this analysis on an intraday basis. Likewise, excluding days with zero volume did not affect the results much.
Excluding open trades:
7,064 total trades
7,031 were profitable (99.5%)
Total wins: $935,224
Total losses: -$11,160
