AI-generated Episodic Pivot trading setups.
The gap day is only the beginning. MarinTrading follows stocks in the days and weeks after an Episodic Pivot and flags the moments when risk is tight and the upside is large: the hook day, the inside day, the nest, the high tight flag. Every setup is scored against hundreds of past EPs.
Educational tool. Not financial advice.
An Episodic Pivot is the moment new information forces the market to reprice a stock. It shows up as a gap on heavy volume, and the strongest ones keep going for weeks. Look for three signs together.
Earnings surprise, guidance raise, contract win, FDA decision. News that changes the story, not noise.
Price opens well above the prior range, clearing the levels where sellers used to sit.
Volume many times the recent average: the footprint of institutions taking positions.
Scan pre-market and buy at or near the open, in the most volatile minutes of the move.
The stop usually sits under the gap-day low, which can be far below the entry.
A wide stop means a smaller position, or a bigger loss when the gap fails.
Let the stock digest the move. Wait for it to tighten into a pattern in the days or weeks after the EP.
Enter on a defined trigger, such as a break above the most recent swing high.
Set the stop just under a nearby swing low, so the risk is small relative to the potential move.
The model is trained on hundreds of historical Episodic Pivots, each labeled with the classic chart patterns that formed afterwards and the swing structure around them. Patterns are scored in combination, not in isolation: an EP followed by a hook day and then an inside day, or an inside day within a nest. What counts is how the patterns stack up, not just whether one appears.
The day after the EP is a hook: a higher high and higher low than the EP day, but a lower close on a narrower range. The next day is an inside day within the hook's range, so the move pauses and tightens.
Two inside days in a row right after the EP: the first fits inside the EP day's range, the second inside the first. Volatility contracts twice, and the range gives a tight, defined place to set risk.
Two Episodic Pivots on back-to-back days: the stock gaps up on heavy volume, then gaps up again the next day. A second repricing in a row shows unusually strong demand.
An EP, then one quiet day of compression: lower volume, a narrower range, and a close at or above the EP day's midpoint. The next day is a second EP. The gap holds through the pause before buyers step in again.
Three or more EPs inside any rolling 10-day window. Gap after gap on heavy volume means the market keeps repricing the stock, a sign of strong, persistent demand.
Functions that mark the turning points in price. Swing highs define where a breakout triggers; swing lows define where the setup is wrong.
After the EP, the stock pulls back in swings. The nest is the range between the latest swing high and the lowest low since the EP, where the stock coils for its next leg.
SH = swingHigh(1, C, 2, days since EP)
Lowest Low = lowest(Low, days since EP)
| Function | What it returns |
|---|---|
| Swing points | |
| swing_high | swing_high(df, price_col, strength, length, instance) โ (price, abs_index)The price and bar index of a swing high, counting back through the last length bars. instance picks which one: 1 is the most recent. |
| swing_low | swing_low(df, price_col, strength, length, instance) โ (price, abs_index)The same for swing lows. |
| swing_high_bar swing_low_bar | swing_high_bar / swing_low_bar โ bars agoHow many bars ago that swing high or swing low formed. |
| Highest and lowest | |
| highest | highest(series, length, offset=0)The highest value over the last length bars, including the current bar by default. |
| lowest | lowest(series, length, offset=0)The lowest value over the last length bars. |
(-1, -1), just as TradeStation returns -1.offset=1 leaves out the current bar, the same as Highest(P, L)[1] in TradeStation.| Pattern | Definition |
|---|---|
| Inside Day | H < H[1] AND L > L[1] |
| Double Inside Day | Two consecutive inside days |
| Hook | H>H[1], L>L[1], C<C[1], Range<Range[1] |
| EP HTF | EP + SwingHigh post-EP + LowestClose>EP_Mid + LowestLow>EP_Low + Close>SMA50 + H<=SWH ceiling |
| HTF Break | HTF true yesterday + H>max(H[1],H[2]) today + H<=SWH ceiling |
| EP Repeat | EP(D0) + compression(D1: Vol<Vol[0], Range<Range[0], Close>=EP_Mid) + repeat EP(D2) |
| EP Repeat Break | EP_Repeat yesterday + H>H[rep_EP] today |
| EP Hook ID | EP(D0) + Hook(D1) + Inside Day(D2) |
| EP Double | Two consecutive EP days |
| EP 3-in-10 | 3+ EPs within any rolling 10-day window |
H, L, C = high, low, close. [1] = one day ago, [2] = two days ago. D0, D1, D2 = consecutive days starting from the EP. SWH = swing high.
The AI analyzes hundreds of historical EPs and what happened after each one: which patterns formed, where they triggered and how far they ran.
Each fresh Episodic Pivot joins a watchlist, and its daily bars are tracked as the stock digests the move.
When a pattern forms, it is compared with its closest historical analogs, and added to the daily setup report based on its AI score.
Daily reports are posted each day as well as archived. They can be downloaded for your research.
This site explains the method. Results from the EP analysis are posted on X at @marin_trading.