(Disclaimer: This post was fully written by me, a human. I am sharing my project which uses AI as a tool for analysis.)

    Hey everyone,

    As a personal project, I wanted to see if a Reinforcement Learning agent could learn to trade 0DTE SPX Iron Condors profitably. To do this, I first had to quantify the real-world costs it would face, which led me to a deep dive into bid-ask spreads. The data I gathered was so revealing that I felt it was worth sharing on its own.

    The Analysis: Real Spreads for Common IC Short Strikes

    I collected and analysed over 1.5 million individual quotes from a 30-day period to see what the spreads actually look like for the typical short strikes of an Iron Condor. Here’s a summary of the average and median spreads I found.

    ||
    ||
    |Delta Target|Average Spread (%)|Median Spread (%)|
    |15Δ Target|4.28%|3.64%|
    |20Δ Target|3.75%|3.17%|
    |25Δ Target|3.33%|2.82%|
    |30Δ Target|2.96%|2.60%|

    The key takeaway is that for a typical 15-30 delta IC, you're facing a ~3.6% average spread as an immediate headwind the moment you enter the trade. This "cost of entry" is significant and needs to be overcome by theta decay just to get back to breakeven.

    Putting it to the Test: Applying These Costs to the Agent's Strategy

    To see the impact, I used my trained RL agent as the systematic strategy.

    First, I trained the agent on standard 1-minute OHLC data (which lacks spreads), and it learned what appeared to be a very profitable strategy:

    • Average Daily Profit: +0.1513%
    • Profitable Days: 65.3%

    Then, I re-ran the exact same trained agent in an environment that applied these realistic bid-ask costs on every single simulated trade. The results were a complete reversal:

    • Average Daily Profit: -0.1323%
    • Sharpe Ratio: -0.19

    The entire theoretical edge the agent had learned was completely consumed by the bid-ask spread. Even when I ran a "best-case" scenario assuming perfect execution at the mid-price (zero spread), the strategy was still slightly unprofitable (~ -0.1% daily), suggesting that the price patterns in real quote data are subtly different from OHLC data in other ways as well.

    Conclusion/TL;DR:
    For anyone trading 0DTE SPX Iron Condors, the bid-ask spread is a massive and unforgiving cost. My analysis shows it's around 3.6% on average for the typical short strikes. A strategy needs to have a very significant edge to overcome this friction consistently.

    I wanted to share this data with the community as a concrete reference point for discussion. How do you all factor in these high spreads when deciding to enter a 0DTE trade? Do you use specific liquidity indicators or avoid certain times of day?

    Curious to hear your thoughts.

    I analyzed 1.5M quotes to quantify the real bid-ask spread cost for 0DTE SPX Iron Condors.
    byu/mystic12321 inoptions



    Posted by mystic12321

    Leave A Reply
    Share via