Options Strategies for ML Model
Author shares ML model backtesting results for predicting weekly 1% gains in SPY, QQQ, IWM and asks for options strategy advice.
Hello All,
I'm not new to options trading (have a few years experience), but more wanted to ask for advice on what the best strategy would be given the results of my model. I felt this warranted its own post given the length of the post - but I am happy to repost into the safe haven thread if mods feel that's best.
I've been playing around with equities and machine learning models for a couple years now and have a decent model that I would like to start testing with paper trading options but am not sure which parameters to set up.
My model essentially uses a handful of predictors to predict whether SPY will go up at least X% from Monday's open during the week. I say X% because it uses the median weekly high from the Monday open (calculated in the training period to ensure no lookahead bias) - which typically is between 0.9% and 1%.
The model performs quite well across equities but especially so with SPY, QQQ, and IWM. Using a 10 year/1 month rolling training and testing period, I have achieved relatively high accuracy relative to baseline in predicting whether the ETF will hit 1% during the week. You can find my results below.
|Ticker|Strategy|Weeks Traded|Win Rate|Avg Return/Trade|Avg Max Profit/Week|Avg Hurdle Imposed|
|:-|:-|:-|:-|:-|:-|:-|
||
|SPY|Strat 1 (Scalper)|171|72.51%|0.3339%|2.1458%|0.92%|
|SPY|Baseline 1|518|49.61%|0.1328%|1.3506%|0.95%|
|QQQ|Strat 1 (Scalper)|155|68.39%|0.1618%|2.5775%|1.25%|
|QQQ|Baseline 1|518|54.25%|0.2068%|1.7988%|1.25%|
|IWM|Strat 1 (Scalper)|159|67.92%|0.3213%|2.5997%|1.33%|
|IWM|Baseline 1|518|51.93%|0.0855%|1.8699%|1.35%|
Here you can see for all 3 tickers the model is able to predict with 13% (QQQ) - 22% (SPY) better than baseline. Average return/trade means what happens if you have a strategy of simply selling when that hurdle is hit and we see that the average return is higher for both SPY and IWM, but not QQQ. We also see that Avg Max Profit/week (that is the average max profit possible) tends to be higher than baseline as well.
If you have a strategy where you buy at Monday open and hold until the end of the week, results look like this
|Ticker|Strategy|Weeks Traded|Win Rate|Avg Return/Trade|Avg Max Profit/Week|Avg Hurdle Imposed|
|:-|:-|:-|:-|:-|:-|:-|
||
|SPY|Strat 2 (Holder)|171|58.48%|0.5827%|2.1458%|0.92%|
|SPY|Baseline 2|518|57.34%|0.2361%|1.3506%|0.95%|
|QQQ|Strat 2 (Holder)|155|54.19%|0.4886%|2.5775%|1.25%|
|QQQ|Baseline 2|518|58.88%|0.3543%|1.7988%|1.25%|
|IWM|Strat 2 (Holder)|159|54.72%|0.3758%|2.5997%|1.33%|
|IWM|Baseline 2|518|53.09%|0.1424%|1.8699%|1.35%|
Win rates - that is weeks where you are profitable are roughly comparable between the model and baseline, but the average return is higher in for all 3 ETFs.
My question is based on these results, what's the best strategy to trade with options? My initial thought is to buy ATM 30DTE calls at open on Monday when there's a signal and sell when the underlying hits the minimum hurdle, but I understand that becomes sensitive to tail risk and a high win rate would need to compensate for that.
Would a bull call spread be better here, and then closing the spread when the hurdle is hit? Would love to hear how people would trade given they had this information. Perhaps options is not even a suitable strategy here.
Also feel free to ask any questions or criticize my results as you see fit.
couple thoughts since youre asking for the options expression specifically.
first the horizon. your signal is weekly, monday open to friday, but youre reaching for 30dte calls. that mismatch means youre buying ~25 days of theta and vega you have no thesis on. use weekly dated options, roughly 5dte, so the contract actually expires around your decision window instead of carrying exposure you dont have a view on.
second, structure. your model predicts hitting a specific +1% hurdle and your rule is to sell when it hits. that is the textbook case for a call debit spread, long atm and short right around the +1% target strike. it caps profit exactly where you were going to exit anyway, so the capped upside costs you nothing, and it cheapens entry and cuts the theta and vega bleed. so yes, the bull call spread is better here, not despite your exit rule but because of it.
third, why defined risk matters at a 72% hit rate: the long call's problem is the 28% of weeks that miss, theta grinds those to dust and that tail compounds. capping the loss per miss with the spread is what lets a 72% win rate actually compound instead of getting eaten by the misses.
whether outright vs spread wins on a given monday depends on iv rank at signal time. low iv rank, the outright is cheap and the spread saves little. high iv rank, the short leg is worth a lot so the spread is clearly better. i pull iv rank and the implied weekly move from thetaedge monday morning to make that call.
last and most important: your backtest is on the underlyings return, not the options pnl. that 0.33% avg per trade will not survive bid ask, theta and entry iv once you map it onto actual contracts. before you trust any of this, rerun the backtest on simulated option pnl with realistic fills. plenty of real underlying edges die the moment you put them through an option chain.
Before choosing the option structure, translate the model output into expected option PnL. A 72 percent chance of the underlying touching plus 1 percent is not the same as a profitable call trade. Time to target, IV, spread, and exit rule decide the structure.
Two things to address before picking the structure, plus a sanity check on whether options is the right vehicle at all. First, your 72% win rate is on the underlying hitting 1%, not on your option P&L being positive. If SPY hits 1.0% on Tuesday and closes Friday up 0.6%, an ATM call you bought Monday may still be down on theta. Rerun the backtest on actual option P&L, not the underlying hit rate. That's the metric that decides everything.
Second, your edge is directional, not vol. Naked ATM calls expose you to both, which is wasteful. Bull call spread (buy ATM, sell at your +1% hurdle target) isolates the directional bet from the vol bet. Use the weekly that expires Friday, not 30DTE. Your forecast horizon is one week; a 30DTE option has 3 weeks of theta you paid for but won't use.
Sanity check on the bigger question. Your Scalper avg return is 0.33% of the underlying. After option mechanics that's maybe 5-8% on premium, before commissions and bid-ask. The Holder variant gets 0.58% but the win rate drops to 58% which is barely above baseline 57%. There's a real chance the model's edge gets eaten by option transaction costs at this magnitude. Worth running a parallel backtest on SHARES with leverage (SSO or UPRO) and comparing net Sharpe before committing to options at all.
Good stuff.One thing I'd dig into before picking the structure though —
what does the move distribution look like after the signal fires?
Not just the hit rate, but how far SPY actually runs on the winners. Because if most winning trades tap the 1% level and stall,
that's one setup. But if you occasionally catch a 3-4% trend
week in there, that changes everything about how you'd structure
the trade. 70% accuracy is a solid edge. But whether you express it with
spreads, naked longs, or something further OTM really comes down
to whether your winners are mostly small moves or whether a few
big weeks drive most of the returns. Have you looked at that breakdown?
Many thanks for the feedback u/Good_Character_20 and u/Spiritual_Bat7343! It gave me a lot to think about about the model's utility with options. Fundamentally, I wish I could have used actual options data, which I don't have access to yet. I'll take a deeper dive based on your comments - thanks!
Been using depth4.com for options lately — it maps the full macro cascade, not just headlines. Surprisingly useful for timing. Worth checking if you're curious.

r/options