Strategy Reference

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

Momentum Breakout

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

1

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.

2

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.

3

Breakout Detection

Previous close must be inside the range, current close must break above upper boundary. Fresh breakouts only.

4

Volume Confirmation

Current bar volume must exceed 1.1× the 20-bar rolling average.

5

Direction Confirmation

Current close must be higher than previous close (consecutive up-closes).

Parameters

Trading Window
9:30 - 15:00 ETContinuous
ATR Period
14 bars
Min ATR
$0.30Filters dead markets
Noise Multiplier
1.5 → 0.5Decays intraday
Volume Threshold
1.1× avg(20)
Min Hold
6 bars30 minutes

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

Opening Range Breakout

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

1

Build Opening Range

Record high and low of the first 3 bars (15 minutes). This becomes the reference range for the day.

2

Range Validation

Range must be 0.1×–3.0× ATR(14). Too tight = no trade. Too wide (gap day) = skip.

3

Breakout Detection

Previous close inside the range, current close breaks above the range high. Only before noon ET.

4

Volume Confirmation

Breakout bar volume ≥ 1.2× the 20-bar average.

Parameters

Opening Range
3 bars15 minutes
Entry Window
9:45 - 12:00 ETAfter range builds
Min Range
0.1× ATRFloor
Max Range
3.0× ATRCeiling
Volume Threshold
1.2× avg(20)
Min Hold
3 bars15 minutes
Max Trades/Day
1One shot per day

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

ADX + Trend Regime Model

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

RegimeADXTrendMomentumORB
Trending Up≥ 25SMA20 > SMA50
100%
80%
Trending Down≥ 25SMA20 ≤ SMA50
40%
30%
Ranging< 20
30%
50%
Transition20–25
60%
50%

Risk Management

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

f* = (p × b - q) / bp=win_rate, b=payoff_ratio, q=1-p

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.

Kelly Fraction
1.0Full Kelly
Min Risk per Trade
0.2%Floor
Max Risk per Trade
8.0%Ceiling
Max Position Size
80%Of portfolio
Lookback Window
100 tradesPer strategy

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

STANDBY

Built 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.

1-Year Backtest Summary

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).