Automated Trading 2: Diving into Options ๐
What goes up must come down. My original trading bot was built only for the climb, which meant I was missing out on half of the market. This update covers how I added a fully automated PUT options trading system to my existing Buyer bot โ including architecture changes, ML integration, and multiple layers of capital protection.
Why Options?
Originally, when things looked bearish (trending downward), the system would simply avoid entering trades. While this approach was safe and conservative, it also meant missing potential profit opportunities.
Ultimately, I'm still early in this journey and don't pretend to know exactly what will work long-term. Because of that, experimenting with PUT options felt like a no-brainer โ as long as it was done carefully and with strong risk controls.
High-Level Overview
This update introduces PUT options trading that plugs directly into the existing Buyer bot discussed in the last article.
The core principles stayed the same:
- Automation over emotion
- Conservative execution
- ML-backed decision making
That said, options introduce an entirely new layer of complexity โ contract selection, liquidity constraints, bid/ask spreads, and regulatory considerations all matter far more than they do with stocks or crypto.
Core Architecture
I extended the system rather than rewriting it. Many of the foundational pieces โ like the validation pipeline and safety rails โ were already abstracted well enough to support an options workflow with minimal changes.
At the end of the day, the stack remains unchanged:
- TypeScript
- Node.js
- Dockerized
- Alpaca API powered
- Redis for state
Buyer Bot Integration
If this part feels unfamiliar, I'd recommend checking out the previous article, which goes deeper into how the Buyer bot works. Originally, the bot only entered trades when the machine learning model predicted positive trendlines. Now, PUT trading allows it to act on bearish signals as well.
Execution Flow
-
Signal Detection
- My private machine learning model identifies a bearish setup
- Strong trend and momentum confirmation required
-
Contract Selection
- Multiple PUT contracts are scored and ranked
- Selection is weighted across:
- Delta
- Cost efficiency
- Days to expiry
- Open interest
- Percent out-of-the-money
-
Risk Validation
- Portfolio exposure limits
- Per-trade risk caps
- Spread checks
- Daily loss limits
- Emergency kill switch
-
Order Execution
- LIMIT orders with a small ask buffer
- Slippage tracked and logged
- Execution quality measured
Intelligent PUT Contract Scoring
Rather than guessing, contracts are evaluated and scored objectively.
Key constraints include:
- Moderate delta (no lotto tickets)
- Enough liquidity to exit safely
- Time decay balanced against cost
- No wide spreads
- Budget-aware position sizing
If any requirement fails, the trade is rejected outright.
Current Status
What's live and working:
- PUT contract selection
- Automated execution
- Position sizing
- Risk controls
- ML-backed confidence filtering
- Slippage awareness
- Kill switches and loss limits
Conservative by design:
- Strong trend required
- Strong momentum required
- Neutral markets = no trades
Bottom Line
This update transforms the system from purely capital-preserving to market-agnostic.
It can now:
- Profit in bearish markets (potentially)
- Protect capital aggressively
- Reject bad trades automatically
- Scale safely with confidence
The system isn't chasing trades โ it's waiting patiently for the right ones.
Written by
Carter Holmes
Software Developer โข 7 years of experience