This is a fully automated, long-only, daily tactical system connected to an Alpaca paper account. It makes entry, sizing, profit-taking, and stop decisions without human intervention, under fixed rules written in code.
The design is defensive first: preserve capital in bad weather, then try to participate selectively in good weather. Let me walk you through the loop.
1
Weather
healthy · defensive · crisis
→
↓
2
Signal
3 pillars + 2 filters
→
↓
3
Gate
readiness ≥70 · 2 chips
→
↓
4
Discipline
3% start · caps · staged exits
↺ the whole loop runs every 2 minutes of every market day
Before it buys anything, it checks the weather. Every 2 minutes it reads market data — the S&P 500 against its 50-day trend, credit spreads, volatility, and bond yields — and sorts conditions into healthy, defensive, or crisis. Healthy means the full process is allowed. Defensive means smaller positions and only the cleanest setups. Crisis means no new money at all. Capital preservation comes before upside.
When weather is healthy, the bot looks for a trend/momentum/RSI candidate score. The three entry pillars are price above the 20-day EMA, a 20-day momentum score of at least 55, and RSI in a non-overbought zone. Execution filters require a clean bid/ask spread and no corporate-action risk. The combined score must reach 70 to enter, 75 for the NOW tier, and 80 for STRONG_NOW. If the score is not there, the bot does nothing. There is always another day.
Once a position is open, discipline takes over. New ideas start near 3% of the portfolio; total positions are capped; the highest-conviction position may reach 12%, with others kept at 8% or below. Profits are taken in stages; losses are cut via ATR stops. If the portfolio drawdown hits the configured limit, new entries stop until recovery. The downside target matters more than any single trade.
No hunches. No emotions. No revenge trading. Just a rule set, repeated every 2 minutes of every market day.
Risk Guardrails
Hard stops 1.5× ATR [5%,11%]
Trailing stops 2× ATR [5%,14%]
12% max STRONG_NOW · 8% others
25% max per sector
Min hold 5d (RISK_ON) / 3d (RISK_OFF)
Rotation disabled 2026-08-01
10% cash floor; 12% entry buffer
No entries if ATR > 7%
Earnings blackout 5d (v3) · 2d (A1)
No pre-earnings entry when IV move > 1.5× ATR
20h stop-loss re-entry cooldown
4h non-stop sell re-entry cooldown
Post-stop re-entry at/below stop price (7d)
1 new entry per symbol per day
High-beta basket cap 35% deployed
New entries halted at portfolio drawdown target
This is a transparent experiment, not a signal service. The bot may change its mind between the moment you see a trade and the moment you read it. Prices move. Context changes. Do not copy trades blindly.
The bot does not get FOMO. Human readers often do. If you want to learn from it, read the trade log and the reasoning. If you want to follow it, understand the limits first.
Trading only during US market hours. Automated, but owner-supervised. Not investment advice.