Disclaimer: This is a personal project writeup, not financial advice. I’m sharing my approach as a personal project. Options trading involves financial risk and isn’t suitable for everyone. Do your own research and consult a financial advisor before trading.
1. Testing through market volatility
The past two weeks have been a wild ride. Trade war fears with China and government shutdown dominated the headlines, and Bitcoin got caught in the crossfire. My automated options bot experienced its first real test during market turbulence, and the results taught me an important lesson about position management.
2. The dry run results
I’ll be honest…while the bot was running in paper trading mode, I couldn’t help myself and executed real trades manually during the same period. It created an interesting side-by-side comparison of algorithmic vs. human decision-making.
Bot Performance (Oct 8-27, 2025):
- Trades completed: 2
- Win rate: 100%
- Average return per trade: 26.5%
- Largest drawdown: -15%
- Total return on deployed capital: 53%
Trade 1: Covered Call
- Sold Nov 21 call
- Closed after 2 days
- Return: 26%
- Exit reason: Hit 20% profit target
Trade 2: Cash-Secured Put (the interesting one)
- Sold Nov 21 put on Oct 10
- Position went underwater by 15% during trade war fears (Oct 11-24)
- Recovered and closed Oct 27
- Return: 27%
- Days held: 11 business days
Annualized returns
The put trade returned 27% in 11 business days, which annualizes to ~620% theoretical return.
Of course, the reality check is that this assumes perfect execution, no losing trades, and consistent volatility, which won’t happen. But even capturing 10% of this would be impressive and far better than my human trading performance.
3. What I learned: The drawdown problem
Here’s what happened with the put trade:
- Oct 10: Sold the put, collected premium
- Oct 11-24: Trade war headlines hit, position dropped to -15%
- Oct 25-27: Market recovered, position climbed to +27% profit
For two weeks, I watched this position bleed. As a human trader, this was psychologically brutal. I thought about (over)-managing it, rolling out the position, but ultimately I let it sit and play out.
On Monday, Oct 27, my position was finally in the green. My algorithm didn’t close out the trade. But as a human trader, I closed it in a heartbeat. My intuition was to take the win and reset rather than risk it turning negative again. This was a dynamic I didn’t foresee when I first created the algorithm, and I had to adjust my rule set accordingly.
4. The solution: New recovery close logic
I implemented a new exit rule specifically for positions that survive drawdowns. If a position experiences >10% drawdown but recovers to ≥10% profit, close immediately.
These thresholds allow me to filter out normal market noise and only trigger after real pain and gain.
Updated exit logic (in priority order):
- Max Profit (70%): Lock in huge wins
- Recovery Close: Was down >10%, now up ≥10% → Close (NEW)
- Fast Profit: 10%+ in 0-1 days → Close
- Medium Profit: 20%+ in 0-3 days → Close
- Hold: Keep monitoring
Why this matters
The trade war situation was a perfect example. The put was sold with 42 days to expiration, giving me plenty of time. But when headlines about tariffs dominated for two straight weeks, that “plenty of time” felt very different.
Without recovery close, I would have held until hitting 70%, risking the position going back underwater.
With recovery close, the bot would have exited at +10% after experiencing the drawdown, freeing capital for a fresh trade with better odds.
The psychological element
Automated trading is supposed to remove emotions, but watching a position swing from breakeven to -15% back to +27% taught me something important, which is that protecting capital after a recovery is just as important as taking profits.
The recovery close rule codifies what I know intuitively, which is if I survived a near-miss, take the win.
I simplified the strategy
I also simplified the strategy by removing the IV crash logic. This created confusing overlaps with the recovery close rule and added complexity without clear benefits.
5. What’s next
The bot’s performance overall closely mimics my manual trades. I would have preferred to see more completed trades across different market conditions, but the side-by-side comparison gave me enough confidence to let the bot run live with the new recovery close rule in place.
Long-term improvements
As the bot runs live, potential enhancements include:
- Cloud deployment to eliminate the need for keeping my laptop on
- Position sizing logic based on account size and volatility
- Multi-ticker support to diversify beyond Bitcoin
- More sophisticated profit-taking that accounts for time to expiration
Want to see how I built this? Check out Part 1 for the full technical breakdown.