Deployed trading strategies, regime model, and risk framework
Instrument
UPRO
3x S&P 500
Direction
Long only
No shorts
Timeframe
5-min bars
Intraday
Strategies
2 active
Momentum + ORB
Primary strategy · Zarattini et al. (2024)
Trades intraday momentum by detecting when price breaks through ATR-based noise boundaries around the day's open. Breakouts are confirmed by volume and consecutive closes, then managed with a ratcheting trailing stop.
Signal Flow
Noise Boundary
Compute dynamic upper/lower bands = Day Open ± ATR(14) × noise_mult. The multiplier decays from 1.5 to 0.5 as the day progresses.
First-15-Min Bias
If the first 15 minutes move > 0.2%, tighten the boundary in that direction by 0.3× ATR to favor conviction.
Breakout Detection
Previous close must be inside the range, current close must break above upper boundary. Fresh breakouts only.
Volume Confirmation
Current bar volume must exceed 1.1× the 20-bar rolling average.
Direction Confirmation
Current close must be higher than previous close (consecutive up-closes).
Parameters
Exit Rules
Take Profit
Close at 3× ATR profit from entry
Trailing Stop
Once profitable by 0.5× ATR, exit if unrealized drops below 50% of max profit
Hard Stop
2× ATR below entry price
EOD Flatten
All positions closed at 3:55 PM ET — no overnight risk
Secondary strategy · Uncorrelated with momentum
Captures the volatility pattern at the market open. Defines a price range from the first 15 minutes of trading, then enters when price breaks out with volume. The fixed reference range makes this uncorrelated with momentum's rolling ATR envelope.
Signal Flow
Build Opening Range
Record high and low of the first 3 bars (15 minutes). This becomes the reference range for the day.
Range Validation
Range must be 0.1×–3.0× ATR(14). Too tight = no trade. Too wide (gap day) = skip.
Breakout Detection
Previous close inside the range, current close breaks above the range high. Only before noon ET.
Volume Confirmation
Breakout bar volume ≥ 1.2× the 20-bar average.
Parameters
Exit Rules
Take Profit
Close at 2× the opening range size
Trailing Stop
Once profitable by 0.5× range, exit if unrealized drops below 40% of max profit
Hard Stop
Bottom of the opening range (full range risk)
EOD Flatten
All positions closed at 3:55 PM ET
Daily market classification · Controls strategy allocation
Each morning, the system classifies the market into one of four regimes using the Average Directional Index (ADX) and SMA crossover. This determines how much capital each strategy can deploy via the Kelly risk budget.
Classification Logic
Trending Up
ADX ≥ 25 and SMA(20) > SMA(50). Strong directional move up. Momentum gets full allocation.
Trending Down
ADX ≥ 25 and SMA(20) ≤ SMA(50). Strong move down. Momentum reduced to 40%, ORB to 30%.
Ranging
ADX < 20. No clear trend, choppy action. Breakout signals less reliable. Momentum at 30%, ORB at 50%.
Transition
20 ≤ ADX < 25. Trend forming or fading. Moderate allocation to both strategies.
Kelly Risk Budget by Regime
| Regime | ADX | Trend | Momentum | ORB |
|---|---|---|---|---|
| Trending Up | ≥ 25 | SMA20 > SMA50 | 100% | 80% |
| Trending Down | ≥ 25 | SMA20 ≤ SMA50 | 40% | 30% |
| Ranging | < 20 | — | 30% | 50% |
| Transition | 20–25 | — | 60% | 50% |
Position sizing, limits, and capital protection
Every signal passes through three layers of risk control before execution: Kelly-optimal sizing, regime scaling, and hard limits from the risk manager.
Kelly Criterion Sizing
Uses full Kelly (fraction = 1.0) for maximum compound growth. The sizer maintains a rolling window of the last 100 trades per strategy to dynamically estimate win rate and payoff ratio. Falls back to conservative defaults until 20 trades are recorded.
Risk Manager Limits
Daily loss limit — Stops all trading if daily P&L falls below threshold
Max concurrent positions — One position per strategy at a time
EOD flatten — All positions forcibly closed at 3:55 PM ET. No overnight exposure.
Slippage model — $0.01/share/side baked into backtest and live execution
Scale-In Infrastructure
STANDBYBuilt and tested but currently disabled. When activated, enters with 50% of the Kelly-sized position, then adds the remaining 50% after the breakout is confirmed (1× ATR move for momentum, 0.5× range for ORB). Halves max drawdown at the cost of some return. Toggle via INITIAL_POSITION_FRAC.
UPRO · Feb 2025 – Feb 2026 · Alpaca IEX 5-min data
Total Return
+22.4%
Sharpe Ratio
2.89
Max Drawdown
-3.4%
Total Trades
71
Win Rate
63.4%
Profit Factor
2.16
All 4 quarters profitable in walk-forward analysis. Momentum contributed $16,042 (40 trades, 65% WR), ORB contributed $6,330 (31 trades, 61% WR).