Session-Stacker — Staggered Multi-Setup Price-Action Futures Bot (v0.3.0)

Python-based futures price-action engine
Time-staggered setups resolved by a single priority router
One shared exit brain across every setup · Outputs: Discord

Overview

Session-Stacker runs several price-action setups inside one bot and lets a priority router decide which single setup may act at any moment. Each setup is scoped to the part of the 23-hour futures session where it has an edge — the opening-range breakout only fires in the first hour of the regular session, while liquidity- and structure-based setups run around the clock — so the bot is always watching the right pattern for the current time of day rather than firing everything at once.

It has its own engine, forked from the pure-trendline Tori-Trendline bot, and reuses that bot's exit brain unchanged. Tori-Trendline is intentionally kept separate as a single-setup control, so Session-Stacker can add breadth without disturbing the clean trendline baseline. Its role is signal generation and stateful alerting on closed bars, not brokerage execution.

The Setup Library

Each setup is a self-contained detector that returns a direction and a reason, or nothing. They share the same bar feed, indicator context, and exit logic.

Setup Type Session window
ORB — Opening-Range Breakout Momentum First 15 / 30 / 60 min of the RTH open
ES/YM Reversal Mean-reversion First 15–30 min of the RTH open
SFP — Swing-Failure Pattern Liquidity reversal All session
SMC — Smart-Money Structure Structure All session
Bubble Fade Volatility mean-reversion All session
Tori-Trendline Trend-following All session

Session Staggering

Setups become eligible only inside their configured window, measured in minutes from the 09:30 ET regular-session open. Bars before the open fail every open-window gate, so the opening setups never fire overnight. The all-session setups have no window and are eligible on every closed bar across the near-24-hour futures day.

Priority Router

When more than one setup qualifies on the same bar, exactly one is allowed to act. A fixed priority ladder resolves the conflict:

ORB > ES/YM > { SFP > SMC > Bubble } > Trendline

Modes

Mode Behavior
--mode multiple (default) Every setup is armed and the router picks the winner each bar — the full staggered stack.
--mode single Restrict the bot to one named setup, for isolating and measuring a single strategy's behavior.

Entry Quality — the SMC Gate on SFP

Because SFP is a reversal trigger with no context of its own, it can repeatedly fade a strong trend and get stopped. A lightweight market-structure gate (v0.3.0) requires the smart-money structure to support the trade before an SFP may fire:

Exit Brain

Every setup shares one exit engine, inherited from Tori-Trendline, so management is identical regardless of how a position was opened. The stack is evaluated in order:

  1. Staged initial stop — placed off the box, swing, or an ATR distance, whichever the setup selects.
  2. Break-even lock — once protection arms, the stop is moved to break-even, optionally parked a small fraction of R in profit so a reversion banks a sliver instead of scratching at exactly $0.00.
  3. Swing / bubble trail — armed only after price has reached a configured amount of profit (in R), the stop trails behind confirmed swings toward the target.
  4. Safety break — a protective exit that closes the position when the structure that justified it breaks.

Targets default to an automatic mode that uses the volatility "bubble" band as the take-profit when available, and entries are screened against a minimum reward-to-risk (default 2.0) before they are allowed.

Alert Model

Session-Stacker publishes to its own Discord channel. Two card types are emitted:

A session-start card records the run configuration: tickers, timeframe, broker and fallback, mode, active setups, direction, target mode, minimum reward-to-risk, and the strategy version.

Markets and Data

Design Boundaries

What the engine is

Session-Stacker is a closed-bar, multi-setup price-action engine built around:

What the engine is not

The engine is not a brokerage execution layer. It maintains a mirror book for tracking and alerting; it does not place live orders. It is also deliberately separate from Tori-Trendline, which remains a single-setup control for clean comparison.

Positioning

Session-Stacker is designed for: