0 DTE Backtest - Entry Timing

Disclaimer - The links to OptionOmega in this post are all my referral links with 50% discount. This is the full URL - https://optionomega.com/register/vocsong

So I got into OptionOmega first batch of priority wait list and first thing I tried was doing a bunch of Zero DTE backtesting.

The setup would be entering IronCondor at 8 delta 30 wide. For more granularity, I split the backtest into 2 separate combo for the IronCondor. Means 1 set for the bull put spread, 1 set for the bear call spread.

The exit condition for this series will be fix at 200% stoploss target.
(I also did different stoploss target but it's going to be a lot more data complexity, I'll cover that in another post)

A sample Bull Put Spread Entry and Exit Conditions

As the title of this backtest suggest, running 1 backtest on the strategy would not provide much value. Since OptionOmega have 5 minutes data, I'm gonna run this backtest for entry condition of every 30 minutes except for the last 30 minute because it's too near expiry.

Few things to mention before we go into the results. As I analyse the data I do realise several things that the backtest might not be that precise about so we need to have to manage our own expectation and tweak accordingly.

  1. Slippage - The most obvious thing I realise is slippage. From my personal experience and seeing other's sharing on their 0 DTE trade log, our slippage usually range around 25-30%. But the data from OptionOmega, I'm seeing 40-60% slippage. I believe this is due to being 5 minute data, prices would've moved even further than the predetermined exit condition hence closing at a higher loss on average.
  2. SPX price has scaled over time - One of the reason I kept this test starting from 2017 is because SPX price scaled pretty much over the years. Even at 2017, SPX price is in the 2200 range and today we're in the 4400. If we go back further, SPX would be 1000 and below. What this affects is the setup of the trade. 8 delta 30 wide today might not really make sense in those kind of environment. But I still want to have enough data to get some analysis outcome, so I find 2017 acceptable and used that as the starting date.
  3. Win Rate - This might be partially affected due to the 5 minute data as well, I believe a very slight affect to real world accuracy but overall I find it acceptable. More importantly because I'm running every 30 minutes, what we want to identify is the relativity between the different entry timing. So take note that the absolute percent (%) you see are for relative reference only,  after all history doesn't predict future.
OptionOmega - 0 DTE 1st run on the bull put spread

Above is the 1 of the run on the bull put spread side. I'm showing it as a sample only because there are 11 runs for each side. It'll flood this post with too much redundant data. That's also the look and feel you'll see in OptionOmega.

From all the runs, I've concluded that the only important factor is the win rate. Once again as mentioned above, the relative win rate. What we want to know is entering at which timing has a better win rate. So we can ignore all the other stats for now.

0 DTE Bull Put Spread Backtest Result
0 DTE Bear Call Spread Backtest Result

So putting all the runs together, what we get is a good trend that suggest the later it is the higher the win rate. This simply means if you have been trading this strategy in the first 2 hours, your win rate would easily be better if you trade 2 hours after market open. And that slight increase in win rate affects PCR a lot.

Which lead to the last column "PCR", Premium Capture Rate. I calculated this value myself using the given win rate instead of using what the backtest gives me. And I already factored in a 25% slippage in the formula, which means each loss is 225%.

So for the PCR calculation, what I did is I assumed every entry collects $0.8 credit which is $80.
This means a 200% stoploss would be -$160, including slippage of 25% which means 225% loss would be -$180. Then the formula:

[(WinRate) * 80 - (LoseRate) * 180] / 100
e.g. [(80%)*80 - (20%)*180] / 100 = 28%

You can actually throw that formula to Google to calculate.

I hope that provided you new insights on 0 DTE. I'll be doing more of such backtest to further improve the trade. If you got any ideas, do feel free to share with me. Or if you find anything wrong in this backtest please let me know so I can correct it accordingly.

Simple OptionOmega review

I find OptionOmega very powerful and simple. To process 5 minutes data within 10-30 seconds for each of my 0 DTE run is quite impressive. If you're simply thinking to run 1 backtest and conclude your test, you need to think further than that. With OptionOmega you can do a lot of runs in a very short time for such data analysis. If you're into such data analysis, finding how to get better in your trade strategies and doing similar things like I did in this post. I think OptionOmega is one of the cheapest yet powerful option now. I'm also in their discord giving them suggestion on what features to add and some of the simple suggestions have already been implemented.

⚠️
This is not any financial advice or recommendation. The content shared are for informational and educational purposes only.
💡
Do Subscribe to get more latest updates and strategies on SPX and Options.