Backtest UI

Atom Catalog

Short codes, exact/best-effort logic, stage, edge, and usage signals.

CodeAtomGroupRoleLogicEdgeSamples
T3AXAVWAP reclaim failureT_AVWAP_FAILURE_3Wanchored vwap pullbackblockerT_AVWAP_FAILURE_3WThe undercut does not close back above the selected AVWAP during the next three completed weeks.-0
TACXMultiple AVWAP line confluenceT_AVWAP_CONFLUENCEanchored vwap pullbackcontextT_AVWAP_CONFLUENCEAt least two eligible preserved AVWAP lines are within 0.25 weekly ATR13 of the selected line.-0
TAMTAVWAP touch at completed month endT_AVWAP_MONTHLY_TOUCHanchored vwap pullbackcontextT_AVWAP_MONTHLY_TOUCHAt a completed month end, at least one completed week in that month had an AVWAP return touch. The AVWAP does not reset each month.-0
T4AXSelected AVWAP slope upT_AVWAP_SLOPE_UP_4Wanchored vwap pullbackcontextT_AVWAP_SLOPE_UP_4WThe selected AVWAP is above its value four completed weeks earlier.-0
TALBCausal AVWAP extension launchT_AVWAP_LAUNCH_BEFORE_TOUCHanchored vwap pullbackoutcomeFor each line or confluence-zone episode, take the maximum later completed-week close extension above the frozen AVWAP before the next range touch. Compare it with the pooled expanding median of positive extensions from earlier resolved episodes; episodes with no positive extension are excluded. Same-date resolutions are excluded.The selected line episode extends above the pooled causal median extension before the next touch of that line. The launch threshold uses only episodes resolved before the touch date.-0
TAAXAVWAP return line armedT_AVWAP_ARMEDanchored vwap pullbacksetupT_AVWAP_ARMEDAt least one preserved volume-event AVWAP has a completed weekly close two weekly ATR13 units above it.-0
TAUXAVWAP weekly undercutT_AVWAP_UNDERCUTanchored vwap pullbacksetupT_AVWAP_UNDERCUTThe first touch week closes below the selected AVWAP and starts a three-week reclaim window.-0
T95ACausal volume-event AVWAP anchorT_AVWAP_VOL_P95_ANCHORanchored vwap pullbacksetupWeekly volume divided by the median of the prior 13 completed weeks. Compare it with the 95th percentile of prior relative-volume values only. Require 52 prior values.A completed week has relative volume at or above the expanding causal 95th percentile.-0
TAHXAVWAP weekly holdT_AVWAP_HOLDanchored vwap pullbacktriggerT_AVWAP_HOLDThe first touch week closes at or above the selected AVWAP.-0
T3A1AVWAP reclaim within three weeksT_AVWAP_RECLAIM_3Wanchored vwap pullbacktriggerT_AVWAP_RECLAIM_3WA completed weekly close reclaims the selected AVWAP no more than three completed weeks after an undercut.-0
TARTFirst armed AVWAP return touchT_AVWAP_RETURN_TOUCHanchored vwap pullbacktriggerT_AVWAP_RETURN_TOUCHThe first later completed weekly range intersects the selected armed AVWAP within one weekly ATR13 and the line slopes up.-0
TAWRAVWAP wick rejectionT_AVWAP_WICK_REJECTIONanchored vwap pullbacktriggerT_AVWAP_WICK_REJECTIONThe touch week trades below the selected AVWAP and closes at or above it.-0
T20AAscending base geometryT_ASCENDING_BASE_GEOMETRY_20Dascending flagtrigger20D high-line slope <= 15% AND 20D low-line slope > 0% AND 20D low-line slope > 20D high-line slope AND Close position in 20D base >= 0.50 AND 20D base range <= 35% AND Distance from prior 20D high in ATR between -1.0..0.5 ATR AND Close > 50D SMAHigh-line not vertical, low-line rising, low slope above high slope, close in upper half, reasonable range, near 20-day high, and above MA50.-0
T201Ascending base geometry with RSI resetT_ASCENDING_BASE_GEOMETRY_RESET_20Dascending flagtrigger20D ATR extension <= 1.5 AND 20D high-line slope <= 15% AND 20D low-line slope > 0% AND 20D low-line slope > 20D high-line slope AND Close position in 20D base >= 0.50 AND 20D base range <= 35% AND Distance from prior 20D high in ATR between -1.0..0.5 ATR AND Close > 50D SMA AND RSI14 between 50..65Ascending base geometry plus RSI14 reset and no severe ATR extension.-0
T202Ascending flag breakoutT_ASCENDING_FLAG_BREAKOUT_20Dascending flagtriggerRecent 5D low > Prior 15D low AND Close position in 20D base >= 0.50 AND 20D base range <= 35% AND Distance from prior 20D high in ATR between -1.0..0.5 ATR AND Close > 50D SMA AND Close > Prior 20D high AND Volume > Prior 20D avg volume AND 5D return <= 8%Ascending flag structure that breaks the 20-day high with volume confirmation and no 5-day chase.-0
T203Ascending flag with RSI resetT_ASCENDING_FLAG_RESET_20Dascending flagtrigger20D ATR extension <= 1.5 AND Recent 5D low > Prior 15D low AND Close position in 20D base >= 0.50 AND 20D base range <= 35% AND Distance from prior 20D high in ATR between -1.0..0.5 ATR AND Close > 50D SMA AND RSI14 between 50..65Ascending flag structure plus RSI14 reset and no severe ATR extension.-0
T204Ascending flag structureT_ASCENDING_FLAG_STRUCTURE_20Dascending flagtriggerRecent 5D low > Prior 15D low AND Close position in 20D base >= 0.50 AND 20D base range <= 35% AND Distance from prior 20D high in ATR between -1.0..0.5 ATR AND Close > 50D SMAHigher recent low (last 5 sessions above prior 15), close in upper half of 20-day base, base range <= 35%, close within [-1.0, +0.5] ATR of prior 20-day high, and close above 50-day SMA.-0
T20B20-day base convergingT_BASE_CONVERGING_20Dascending flagtrigger20D low-line slope > 20D high-line slopeLow-line slope exceeds high-line slope, approximating a tightening ascending base.-0
T20520-day base highs roughly flatT_BASE_HIGH_DRIFT_20D_FLATascending flagtrigger20D high-line slope between -5%..5%Regression slope of daily highs over the 20-day base is between -5% and +5% over the fitted window.-0
T20620-day base highs not verticalT_BASE_HIGH_DRIFT_20D_NOT_VERTICALascending flagtrigger20D high-line slope <= 15%Regression slope of daily highs over the 20-day base is no more than +15%.-0
T20720-day base highs drifting mildly upwardT_BASE_HIGH_DRIFT_20D_UP_MINORascending flagtrigger20D high-line slope between 0%..10%Regression slope of daily highs over the 20-day base is between 0% and +10%.-0
T20820-day base lows risingT_BASE_LOW_DRIFT_20D_UPascending flagtrigger20D low-line slope > 0%Regression slope of daily lows over the 20-day base is positive.-0
T20920-day base lows rising stronglyT_BASE_LOW_DRIFT_20D_UP_STRONGascending flagtrigger20D low-line slope >= 5%Regression slope of daily lows over the 20-day base is at least +5%.-0
T21020-day base range compactT_BASE_RANGE_COMPACT_20Dascending flagtrigger20D base range <= 20%The 20-day high-low range is no more than 20%.-0
T21120-day base range not excessiveT_BASE_RANGE_NORMAL_20Dascending flagtrigger20D base range <= 35%The 20-day high-low range is no more than 35%.-0
T212Close in upper half of 20-day baseT_BASE_UPPER_HALF_20Dascending flagtriggerClose position in 20D base >= 0.50Current close is in the upper half of the 20-day high-low range.-0
T213Close in upper third of 20-day baseT_BASE_UPPER_THIRD_20Dascending flagtriggerClose position in 20D base >= 0.67Current close is in the upper third of the 20-day high-low range.-0
T51HRecent low above prior 10-day base lowT_HIGHER_LOW_5V10ascending flagtriggermin(low[t-4:t]) > min(low[t-14:t-5])The lowest low in the last 5 sessions is above the lowest low in the prior 10-session window.-0
T511Recent low above prior 15-day base lowT_HIGHER_LOW_5V15ascending flagtriggerRecent 5D low > Prior 15D lowThe lowest low in the last 5 sessions is above the lowest low in the prior 15-session window.-0
T20NNear 20-day high in ATR unitsT_NEAR_20D_HIGH_ATRascending flagtriggerDistance from prior 20D high in ATR between -1.0..0.5 ATRClose is within 1 ATR below the prior 20-day high and has not yet exceeded it by 0.5 ATR.-0
T14RRSI14 reset but still constructiveT_RSI14_RESET_50_65ascending flagtriggerRSI14 between 50..6514-day RSI is between 50 and 65, suggesting a cooled but not broken consolidation.-0
M5SXSPY monthly BX rising over five periodsM_SPY_BX_MONTHLY_RISING5bx trendcontextM_SPY_BX_MONTHLY_RISING5The latest completed SPY monthly BX value is above its value five completed months earlier.-0
M5S1SPY weekly BX rising over five periodsM_SPY_BX_WEEKLY_RISING5bx trendcontextM_SPY_BX_WEEKLY_RISING5The latest completed SPY weekly BX value is above its value five completed weeks earlier.-0
S5SXSector monthly BX rising over five periodsS_SECTOR_BX_MONTHLY_RISING5bx trendcontextS_SECTOR_BX_MONTHLY_RISING5The latest completed point-in-time sector ETF monthly BX value is above its value five completed months earlier.-0
S5S1Sector weekly BX rising over five periodsS_SECTOR_BX_WEEKLY_RISING5bx trendcontextS_SECTOR_BX_WEEKLY_RISING5The latest completed point-in-time sector ETF weekly BX value is above its value five completed weeks earlier.-0
TCTBClassic-quiet arm-date controlT_CQ_TIMING_BASEclassic quiet entry timingtriggerT_CQ_TIMING_BASEThe completed weekly classic-quiet score-90 signal arms the ticker without a daily timing delay.-22.4%1,007
T20CClassic-quiet 20-session close breakout long controlT_CQ_TIMING_BREAKOUT20_NOEXPclassic quiet entry timingtriggerT_CQ_TIMING_BREAKOUT20_NOEXPThe first completed daily close above the prior 20-session closing high occurs during the 252-session control window.-20.2%436
T214Classic-quiet 20-session close breakout in 20 sessionsT_CQ_TIMING_BREAKOUT20_W20classic quiet entry timingtriggerT_CQ_TIMING_BREAKOUT20_W20The first completed daily close above the prior 20-session closing high occurs before 20 armed sessions expire.-16.6%355
T215Classic-quiet 20-session close breakout in 40 sessionsT_CQ_TIMING_BREAKOUT20_W40classic quiet entry timingtriggerT_CQ_TIMING_BREAKOUT20_W40The first completed daily close above the prior 20-session closing high occurs before 40 armed sessions expire.-19.8%682
T216Classic-quiet 20-session close breakout in 60 sessionsT_CQ_TIMING_BREAKOUT20_W60classic quiet entry timingtriggerT_CQ_TIMING_BREAKOUT20_W60The first completed daily close above the prior 20-session closing high occurs before 60 armed sessions expire.-20.4%710
TCTCClassic-quiet compression release long controlT_CQ_TIMING_COMPRESSION_RELEASE_NOEXPclassic quiet entry timingtriggerT_CQ_TIMING_COMPRESSION_RELEASE_NOEXPThe first causal compression-release close occurs during the 252-session control window.-18.2%130
T217Classic-quiet compression release in 20 sessionsT_CQ_TIMING_COMPRESSION_RELEASE_W20classic quiet entry timingtriggerT_CQ_TIMING_COMPRESSION_RELEASE_W20The first causal compression-release close occurs before 20 armed sessions expire.-1.8%39
T40CClassic-quiet compression release in 40 sessionsT_CQ_TIMING_COMPRESSION_RELEASE_W40classic quiet entry timingtriggerT_CQ_TIMING_COMPRESSION_RELEASE_W40The first causal compression-release close occurs before 40 armed sessions expire.-9.2%74
T60CClassic-quiet compression release in 60 sessionsT_CQ_TIMING_COMPRESSION_RELEASE_W60classic quiet entry timingtriggerT_CQ_TIMING_COMPRESSION_RELEASE_W60The first causal compression-release close occurs before 60 armed sessions expire.-13.5%101
TCTDClassic-quiet demand expansion long controlT_CQ_TIMING_DEMAND_NOEXPclassic quiet entry timingtriggerT_CQ_TIMING_DEMAND_NOEXPThe first causal demand-expansion close occurs during the 252-session control window.-20.0%364
T218Classic-quiet demand expansion in 20 sessionsT_CQ_TIMING_DEMAND_W20classic quiet entry timingtriggerT_CQ_TIMING_DEMAND_W20The first causal demand-expansion close occurs before 20 armed sessions expire.-11.8%406
T401Classic-quiet demand expansion in 40 sessionsT_CQ_TIMING_DEMAND_W40classic quiet entry timingtriggerT_CQ_TIMING_DEMAND_W40The first causal demand-expansion close occurs before 40 armed sessions expire.-17.6%366
T601Classic-quiet demand expansion in 60 sessionsT_CQ_TIMING_DEMAND_W60classic quiet entry timingtriggerT_CQ_TIMING_DEMAND_W60The first causal demand-expansion close occurs before 60 armed sessions expire.-19.0%404
T10CClassic-quiet 10 percent confirmation long controlT_CQ_TIMING_MARKUP10_NOEXPclassic quiet entry timingtriggerT_CQ_TIMING_MARKUP10_NOEXPThe first completed close at least 10 percent above the armed close occurs during the 252-session control window.-30.5%239
T101Classic-quiet 10 percent confirmation in 20 sessionsT_CQ_TIMING_MARKUP10_W20classic quiet entry timingtriggerT_CQ_TIMING_MARKUP10_W20The first completed close at least 10 percent above the armed close occurs before 20 sessions expire.-34.2%186
T102Classic-quiet 10 percent confirmation in 40 sessionsT_CQ_TIMING_MARKUP10_W40classic quiet entry timingtriggerT_CQ_TIMING_MARKUP10_W40The first completed close at least 10 percent above the armed close occurs before 40 sessions expire.-21.8%567
T103Classic-quiet 10 percent confirmation in 60 sessionsT_CQ_TIMING_MARKUP10_W60classic quiet entry timingtriggerT_CQ_TIMING_MARKUP10_W60The first completed close at least 10 percent above the armed close occurs before 60 sessions expire.-30.7%225
T90CFirst quiet score-90 entry without structural-risk gateT_CLASSIC_QUIET_DELAYED_SCORE90_ANY_RISKclassic quiet maturationblockerT_CLASSIC_QUIET_DELAYED_SCORE90_ANY_RISKThe first observation in a same-year causal classic-quiet episode with a frozen same-date score percentile of at least 90. Structural risk does not gate the entry.-1.0%1,554
T901Quiet-episode score-90 risk-25 entryT_CLASSIC_QUIET_DELAYED_SCORE90_RISK25classic quiet maturationblockerT_CLASSIC_QUIET_DELAYED_SCORE90_RISK25The first observation inside a causal classic-quiet episode that has a frozen same-date score percentile of at least 90 and signal-date structural risk of at most 25%.4.4%1,032
T902First quiet score-90 risk-25 entryT_CLASSIC_QUIET_FIRST_SCORE90_RISK25classic quiet maturationblockerT_CLASSIC_QUIET_FIRST_SCORE90_RISK25The first observation in a causal classic-quiet episode has a frozen same-date score percentile of at least 90 and signal-date structural risk of at most 25%.-8.5%674
T95CFirst quiet score-95 risk-25 entryT_CLASSIC_QUIET_FIRST_SCORE95_RISK25classic quiet maturationblockerT_CLASSIC_QUIET_FIRST_SCORE95_RISK25The first observation in a causal classic-quiet episode has a frozen same-date score percentile of at least 95 and signal-date structural risk of at most 25%.-8.7%376
MCRBClassic-quiet completed-month RSP BX not dark redM_CQ_RSP_BX_NOT_DARK_REDclassic quiet maturationcontextM_CQ_RSP_BX_NOT_DARK_REDThe last fully completed RSP monthly BX state before the signal month is positive or improving.-2.1%570
M20CClassic-quiet SPY rising EMA200M_CQ_SPY_RISING_EMA200classic quiet maturationcontextclose > EMA200At the signal close, SPY is above EMA200 and EMA200 is above its prior-session value.4.4%776
MSCSClassic-quiet SPY and sector trendM_S_CQ_SPY_SECTOR_TRENDclassic quiet maturationcontexttrend_filter == trueBoth M_CQ_SPY_RISING_EMA200 and S_CQ_SECTOR_RISING_EMA50 are true at the signal close.3.1%560
S50CClassic-quiet sector rising EMA50S_CQ_SECTOR_RISING_EMA50classic quiet maturationcontextclose > EMA50At the signal close, the mapped sector ETF is above EMA50 and EMA50 is above its prior-session value.0.6%643
EEPMMaximum executed entry distance from pivotE_ENTRY_PRICE_MAX_FROM_PIVOTentry executiontriggerentry_pivot_distance_pct = entry_price / pivot_price - 1; entry_pivot_distance_atr = (entry_price - pivot_price) / signal_atr20; execute only when distance(mode) <= max_distanceAt next-open execution, skip a trade when the available entry price is too far above the pivot stored by the breakout signal. Report skipped trades and missed winners against the full signal cohort.-0
EBNBBuy now baselineE_BUY_NOW_BASEentry triggertriggerBuy now baseline == trueEnter at candidate date.-0
EGHXGap holdE_GAP_HOLDentry triggertriggerGap hold == trueEnter after a post-gap digestion that does not fail.-0
E10PPullback 10-20%E_PULLBACK_10_20entry triggertriggerPullback 10-20% between 10%..20%Enter only after a 10-20% pullback.-0
E31PPullback 3-10%E_PULLBACK_3_10entry triggertriggerPullback 3-10% between 3%..10%Enter only after a 3-10% pullback.-0
ERBXResistance breakE_RESISTANCE_BREAKentry triggertriggerResistance break == trueEnter on resistance breakout.-0
E14RRSI14 oversoldE_RSI_14_OVERSOLDentry triggertriggerRSI14 oversold < 30Enter when medium RSI is below threshold.-0
E5RXRSI5 oversoldE_RSI_5_OVERSOLDentry triggertriggerRSI5 oversold < thresholdEnter when short RSI is below threshold.-0
ERDBBullish RSI divergenceE_RSI_DIVERGENCE_BULLentry triggertriggerBullish RSI divergence == trueEnter on bullish RSI divergence.-0
ETSXTrendline supportE_TRENDLINE_SUPPORTentry triggertriggerTrendline support == trueEnter near trendline or structural support.-0
EVBXVCP breakoutE_VCP_BREAKOUTentry triggertrigger5D range / 20D avg range <= 0.60 AND Close > Prior 20D high AND Volume > Prior 20D avg volume AND 5D return <= 8%Enter on volatility contraction plus breakout.-0
EVPHVCP pullback holdE_VCP_PULLBACK_HOLDentry triggertriggerVCP pullback hold == trueEnter when contraction/pullback holds support.-0
E10WWait 10DE_WAIT_10Dentry triggertriggerWait 10D == trueWait 10 trading days before entry.-0
E20WWait 20DE_WAIT_20Dentry triggertriggerWait 20D == trueWait 20 trading days before entry.-0
E5WXWait 5DE_WAIT_5Dentry triggertriggerWait 5D == trueWait 5 trading days before entry.-0
EDEBDelayed post-event consolidation breakoutE_DELAYED_EVENT_BREAKOUTepisodic entrytrigger2 <= days_since_event <= max_delay_days AND close[t] > max(high[event_day+1:t-1])After an episodic-volume event, wait for a short consolidation and enter on a close above its prior high.-0
EENOEpisodic event next-open entryE_EVENT_NEXT_OPENepisodic entrytriggersignal on event day t close; execute at open[t+1]Enter at the session following a fully observed daily event. Baseline daily-data execution comparator.-0
EERREvent retest and reclaimE_EVENT_RETEST_RECLAIMepisodic entrytriggerwithin max_wait_days: low[t] <= reference + touch_tolerance_atr * atr20 AND close[t] > reference after stabilize_days; execute at open[t+1]Complex stateful entry: store an event reference, wait for price to retest it without structural failure, require stabilization and a close back above the reference, then enter next session.-0
TASVMinimum absolute daily share volumeT_ABSOLUTE_SHARE_VOLUME_MINepisodic volumesetupvolume[t] >= min_sharesFlags an unusually active session using an absolute share-count floor, including the Stockbee 8.9-million-share threshold.-0
TDVMMinimum event-day dollar volumeT_DOLLAR_VOLUME_MINepisodic volumesetupclose[t] * volume[t] >= min_dollarsTests whether traded value is more portable than a fixed number of shares. Signal is evaluated after the daily close.-0
TECLMinimum event-day close locationT_EVENT_CLOSE_LOCATION_MINepisodic volumesetup(close[t] - low[t]) / (high[t] - low[t]) >= min_locationRequires the event candle to close in the upper portion of its daily range.-0
TEREMinimum event-day range expansionT_EVENT_RANGE_EXPANSION_MINepisodic volumesetuptrue_range[t] / atr(20)[t-1] >= min_atr_multipleRequires the event candle's true range to expand relative to ATR measured before the event.-0
TERMMinimum event-day relative volumeT_EVENT_RVOL_MINepisodic volumesetupvolume[t] / avg(volume[t-average_days:t-1]) >= min_ratioEvent-day volume as a multiple of prior average volume. Normalises participation across differently sized stocks.-0
TFTMMinimum event-day float turnoverT_FLOAT_TURNOVER_MINepisodic volumesetupvolume[t] / pit_free_float[t] >= min_turnoverDaily shares traded as a fraction of point-in-time free float. Missing float remains missing and must not be treated as zero.-0
TPEAMinimum pre-event ADR percentageT_PRE_EVENT_ADR_PCT_MINepisodic volumesetupavg(high[i] / low[i] - 1 for i in t-lookback_days:t-1) >= min_adr_pctRequires sufficient pre-existing volatility, calculated without the event day.-0
TPHVPrior high-volume event countT_PRIOR_HIGH_VOLUME_EVENT_COUNTepisodic volumesetupcount(volume[i] / avg_prior(volume, i, average_days) >= event_rvol_min for i in t-lookback_days:t-1) >= min_countCounts repeated abnormal-volume sessions before the current event as a causal accumulation-footprint proxy.-0
SSECSector EPS cap-weighted growth (correlation-mapped)S_SEC_EPS_CORR_CAPWTD_GROWTHfundamental quality/valuefilterSector EPS cap-weighted growth (correlation-mapped) == trueFirst derivative (level) of cap-weighted sector EPS growth, mapped via 126d rolling correlation.-0
SSE1Sector EPS median acceleration (correlation-mapped)S_SEC_EPS_CORR_MEDIAN_ACCELfundamental quality/valuefilterSector EPS median acceleration (correlation-mapped) == trueSecond derivative of sector median EPS growth, mapped via 126d rolling correlation to sector ETFs.-0
SSEGSector EPS cap-weighted acceleration (GICS)S_SEC_EPS_GICS_CAPWTD_ACCELfundamental quality/valuefilterSector EPS cap-weighted acceleration (GICS) == trueSecond derivative of cap-weighted sector EPS growth, GICS-mapped. Negative = sector earnings decelerating.-0
SSE2Sector EPS cap-weighted growth (GICS)S_SEC_EPS_GICS_CAPWTD_GROWTHfundamental quality/valuefilterSector EPS cap-weighted growth (GICS) == trueFirst derivative (level) of cap-weighted sector EPS growth, GICS-mapped.-0
SSE3Sector EPS median acceleration (GICS)S_SEC_EPS_GICS_MEDIAN_ACCELfundamental quality/valuefilterSector EPS median acceleration (GICS) == trueSecond derivative of sector median EPS growth, GICS-mapped. Negative = sector earnings decelerating.-0
FMECMaterial event catalystF_MATERIAL_EVENT_CATALYSTfundamental quality/valuesetuplatest_catalyst.known_at <= signal_time AND latest_catalyst.category IN allowed_categoriesRequires a point-in-time news catalyst classified into an explicitly allowed material category. Classification must be reproducible and known by the signal timestamp.-0
T63GLow prior 63-session return before AVWAP eventT_GAP_AVWAP_PRIOR_RETURN63_LOWgap day avwap reclaimsetupT_GAP_AVWAP_PRIOR_RETURN63_LOWThe prior 63-session return is at or below the entry-type-specific development 20th percentile. The reclaim limit is -11.08%.-0
TGBBHigh-volume gap above 20-session baseT_GAP_BASE_BREAKgap day avwap reclaimsetupgap_open_pct >= 0.04 AND open[t] > max(high[t-20:t-1]) AND volume[t] / avg(volume[t-20:t-1]) >= 2The session opens at least 4% above the prior close and above the prior 20-session high, with volume at least two times the prior 20-session average.-0
TGDAGap-day AVWAP touchT_GAP_DAY_AVWAP_TOUCHgap day avwap reclaimsetupT_GAP_DAY_AVWAP_TOUCHA daily low touches or moves below VWAP anchored on a qualifying gap day during the active 2-to-10-session window.-0
TGDLGap-day low heldT_GAP_DAY_LOW_HELDgap day avwap reclaimsetupT_GAP_DAY_LOW_HELDNo low from the gap day through the observation closes below the gap-day low.-0
TGECGap day closes in upper halfT_GAP_EVENT_CLOSE_UPPER_HALFgap day avwap reclaimsetup(close[anchor] - low[anchor]) / (high[anchor] - low[anchor]) >= 0.50The gap-day close is in the upper half of the gap-day high-low range.-0
TGPVPost-gap pullback volume dry-upT_GAP_PULLBACK_VOLUME_DRYUPgap day avwap reclaimsetupT_GAP_PULLBACK_VOLUME_DRYUPAverage volume after the gap and before the reclaim is below gap-day volume.-0
T20GAVWAP signal volume at ADV20T_GAP_AVWAP_SIGNAL_VOLUME_ADV20gap day avwap reclaimtriggervolume[t] / avg(volume[t-20:t-1]) >= 1.0Signal-day split-compatible volume is at or above the prior 20-session average.-0
TGD1First gap-day AVWAP reclaimT_GAP_DAY_AVWAP_RECLAIMgap day avwap reclaimtriggerclose[t-1] <= avwap(anchor,t-1) AND close[t] > avwap(anchor,t) AND 2 <= t-anchor <= 10 AND no earlier reclaimThe first daily close above gap-day anchored VWAP after the prior close was at or below its causal line, 2 to 10 sessions after the gap.-0
T25GBroad daily gap-day AVWAP reclaimT_GAP_DAY_AVWAP_RECLAIM_252gap day avwap reclaimtriggerclose[t-1] <= avwap(anchor,t-1) AND close[t] > avwap(anchor,t) AND 2 <= t-anchor <= 252The prior daily close is at or below the prior AVWAP, and the signal close is above the current AVWAP, 2 through 252 sessions after the gap.-0
M3HXMarket HMM high-vol chaosM_HMM3_HIGH_VOL_CHAOSmarket regimeblockerMarket HMM high-vol chaos == high-volatility chaoticPoint-in-time 3-state HMM assigns SPY to a high-volatility chaotic state.-0
M5HXMarket HMM bear driftM_HMM5_BEAR_DRIFTmarket regimeblockerMarket HMM bear drift == negative low-volatility driftPoint-in-time 5-state HMM assigns SPY to a negative low-volatility drift state.-0
M5H1Market HMM bear trendM_HMM5_BEAR_TRENDmarket regimeblockerMarket HMM bear trend == directional trendPoint-in-time 5-state HMM assigns SPY to a negative directional trend state.-0
M5H2Market HMM chaosM_HMM5_CHAOSmarket regimeblockerMarket HMM chaos == high-volatility chaoticPoint-in-time 5-state HMM assigns SPY to a high-volatility chaotic state.-0
MLRXMarket LPPL riskM_LPPL_RISKmarket regimeblockerMarket LPPL risk == trueSPY or QQQ LPPL bubble/crash risk is elevated.-0
M10OORCA 10D crash probabilityM_ORCA_CRASH_PROB_10Dmarket regimeblockerM_ORCA_CRASH_PROB_10DLagged calibrated probability that SPY draws down more than 7% over the next 10 sessions.-0
M12OORCA crash probability rankM_ORCA_CRASH_RANK_126Dmarket regimeblockerM_ORCA_CRASH_RANK_126DLagged causal 126-session percentile rank of the ORCA crash probability.-0
MSEXSPY extendedM_SPY_EXTENDEDmarket regimeblockerSPY extended >= 90SPY 5-day RSI is >= 90.-0
MECXMarket EMA constructiveM_EMA_CONSTRUCTIVEmarket regimecontextMarket EMA constructive == trueMarket EMAs are Constructively aligned — not necessarily a full stack but trending constructively.-0
M82EMarket EMA stack 8/21/50M_EMA_STACK_8_21_50market regimecontextSPY[t] > ema(SPY, 8)[t] > ema(SPY, 21)[t] > ema(SPY, 50)[t]SPY above EMA8 > EMA21 > EMA50. Market in bullish short-term trend.-0
MEVBEpisodic-volume trigger breadthM_EPISODIC_VOLUME_BREADTHmarket regimecontextqualified_event_count(lookback_days) / eligible_universe_count(lookback_days)Measures the point-in-time frequency of qualified episodic-volume events as a speculative-participation breadth indicator.-0
M3H1Market HMM directional trendM_HMM3_DIRECTIONAL_TRENDmarket regimecontextMarket HMM directional trend == directional trendPoint-in-time 3-state HMM assigns SPY to a directional trend state.-0
M3H2Market HMM low-vol driftM_HMM3_LOW_VOL_DRIFTmarket regimecontextMarket HMM low-vol drift == low-volatility drift/rangePoint-in-time 3-state HMM assigns SPY to a low-volatility drift/range state.-0
M5H3Market HMM bull driftM_HMM5_BULL_DRIFTmarket regimecontextMarket HMM bull drift == positive low-volatility driftPoint-in-time 5-state HMM assigns SPY to a positive low-volatility drift state.-0
M5H4Market HMM bull trendM_HMM5_BULL_TRENDmarket regimecontextMarket HMM bull trend == directional trendPoint-in-time 5-state HMM assigns SPY to a positive directional trend state.-0
MHLTMarket long Hurst trendM_HURST_LONG_TRENDmarket regimecontextMarket long Hurst trend >= trend thresholdSPY long-window Hurst is above trend threshold.-0
MHSMMarket short Hurst mean reversionM_HURST_SHORT_MRmarket regimecontextMarket short Hurst mean reversion <= mean-reversion thresholdSPY short-window Hurst is below mean-reversion threshold.-0
MLBFLeader breakout failure breadthM_LEADER_BREAKOUT_FAILURE_BREADTHmarket regimecontextfailed_breakouts(cohort, lookback_days) >= min_count OR failure_share(cohort, lookback_days) >= min_shareMarket warning when too many recent leader or candidate breakouts have re-entered their bases. Cohort membership and all counts must be point-in-time.-0
M101ORCA 10D rally probabilityM_ORCA_RALLY_PROB_10Dmarket regimecontextM_ORCA_RALLY_PROB_10DLagged calibrated probability that SPY rises more than 3% over the next 10 sessions.-0
M121ORCA rally probability rankM_ORCA_RALLY_RANK_126Dmarket regimecontextM_ORCA_RALLY_RANK_126DLagged causal 126-session percentile rank of the ORCA rally probability.-0
MRBXBear regimeM_REGIME_BEARmarket regimecontextBear regime == trueExisting market regime model labels the environment as bear or high bear probability.-0
MRB1Bull regimeM_REGIME_BULLmarket regimecontextBull regime == trueExisting market regime model labels the environment as bull or high bull probability.-0
MRTXTransition regimeM_REGIME_TRANSITIONmarket regimecontextTransition regime == transitionExisting market regime model labels the environment as transition/chop.-0
MSPXSPY controlled pullbackM_SPY_PULLBACKmarket regimecontextSPY controlled pullback == trueSPY is in a controlled pullback rather than structural damage.-0
M20SSPY 200D trendM_SPY_TREND_200Dmarket regimecontextSPY[t] > sma(SPY, 200)[t] and slope(sma(SPY, 200), 20)[t] > 0SPY is above a rising 200-day moving average.-0
M50SSPY 50D trendM_SPY_TREND_50Dmarket regimecontextSPY[t] > sma(SPY, 50)[t] and slope(sma(SPY, 50), 20)[t] > 0SPY is above a rising 50-day moving average.-0
E141RSI(14) mean reversion longE_RSI14_MR_LONGmean reversiontriggerrsi(close, 14)[t] < 30RSI(14) drops below 30 (oversold). Mean reversion entry.-0
TOCXDeep volatile and quiet compact recoveryT_OWP_COMBINEDoversold wedge pocketsetupT_OWP_COMBINEDThe high-volatility deep-collapse profile and quiet compact recovery profile are both true.1.4%939
TOHVHigh volatility and deep collapseT_OWP_HIGH_VOL_DEEPoversold wedge pocketsetupT_OWP_HIGH_VOL_DEEPATR20 is at least 3% of price and the causal collapse is at least 15%.-0.6%2,132
TOQCQuiet compact recoveryT_OWP_QUIET_COMPACToversold wedge pocketsetupT_OWP_QUIET_COMPACTRecovery volume is no more than its reference volume and the signal range is no more than 1 ATR.-1.8%2,475
T3OXCausal oversold MA recovery eventT_OWP_STAGE3_EVENToversold wedge pockettriggerT_OWP_STAGE3_EVENTThe first close back above a selected MA pocket after an established above-MA state, a causal collapse below it, and a rising robust body-low recovery.1.4%2,475
CMRXCash on market riskCASH_MARKET_RISKportfolio managementblockerCash on market risk == trueHold cash when market risk budget is too low.-0
COXXCash when overextendedCASH_OVEREXTENDEDportfolio managementblockerCash when overextended == trueHold cash when extension risk is too high.-0
CSRXCash on sector riskCASH_SECTOR_RISKportfolio managementblockerCash on sector risk == trueHold cash when sector risk is too high.-0
ZRPXRisk-based sizing (0.5%)Z_RISK_PCTportfolio managementblockerZ_RISK_PCTRisk-based position sizing: position_size = equity * value / stop_distance, where stop_distance = ATR * stop_multiplier. Value is the risk budget as a fraction of equity (0.005 = 0.5%).-0
CNXXNo cash waitCASH_NONEportfolio managementcashNo cash wait == trueAlways invested once entered.-0
CNSXCash when no sponsorshipCASH_NO_SPONSORSHIPportfolio managementcashCash when no sponsorship == trueHold cash if sector or ticker sponsorship is absent.-0
CWTXWait for trigger in cashCASH_WAIT_TRIGGERportfolio managementcashWait for trigger in cash == trueHold cash until entry trigger occurs.-0
ZMCPMax cost basis pctZ_MAX_COST_PCTportfolio managementportfolioZ_MAX_COST_PCTPer-ticker concentration cap (cost basis): total original investment across all lots of a single ticker must not exceed this fraction of equity. Unlike Z_MAX_POSITION_PCT which uses market value, this caps committed capital regardless of price movement. Value = max fraction (0.20 = 20%).-15.7%13,223
ZMHXMax distinct holdings (10)Z_MAX_HOLDINGSportfolio managementportfolioZ_MAX_HOLDINGSBreadth cap: limits the number of distinct tickers in the portfolio. Pyramiding into an existing position bypasses this check; Z_MAX_POSITION_PCT and Z_MAX_COST_PCT gate the new lot. Value = max distinct tickers.-15.7%13,223
ZMPPMax position pct (15%)Z_MAX_POSITION_PCTportfolio managementportfolioZ_MAX_POSITION_PCTPer-ticker concentration cap (market value): total market value across all lots of a single ticker must not exceed this fraction of equity. Market value = cost basis adjusted for price appreciation. Value = max fraction (0.15 = 15%).-0
ZMCRMin cash reserve (5%)Z_MIN_CASH_RESERVEportfolio managementportfolioZ_MIN_CASH_RESERVEKeep a minimum fraction of equity in cash at all times. Entries are skipped if they would breach this reserve. Value = reserve fraction (0.05 = 5%).-0
ZRBXRank by breakout strengthZ_RANK_BREAKOUTportfolio managementportfolioZ_RANK_BREAKOUTEntry ranking toggle: candidates are scored using breakout_20d_atr feature.-15.7%13,223
ZRMXRank by momentum (10d)Z_RANK_MOMENTUMportfolio managementportfolioZ_RANK_MOMENTUMEntry ranking toggle: candidates are scored using ret_10d feature.-0
ZRRSRank by sector RS (3M)Z_RANK_RS_SECTORportfolio managementportfolioZ_RANK_RS_SECTOREntry ranking toggle: candidates are scored using sector_spy_rs_3m feature. Score = unweighted average of normalized features across all active ranking toggles. Binary toggle (presence = on).-0
ZRRTRank by ticker RS (3M)Z_RANK_RS_TICKERportfolio managementportfolioZ_RANK_RS_TICKEREntry ranking toggle: candidates are scored using ticker_sector_rs_3m feature.-0
ZRVXRank by volume ratioZ_RANK_VOLUMEportfolio managementportfolioZ_RANK_VOLUMEEntry ranking toggle: candidates are scored using volume_ratio_20 feature.-0
ZRRERS-driven rebalance evaluationZ_REBAL_RS_EVALportfolio managementportfolioZ_REBAL_RS_EVALRebalance-as-exit: at every interval_days trading days, rank all open lots by ticker RS vs SPY (63-day). Take bottom N lots (excluding those held < min_hold_days). For each bottom-N lot: if RS < rs_threshold, EXIT full remaining position; else TRIM trim_pct of remaining. This replaces time-based exits and daily RS checking. Params: interval_days (default 63), bottom_n (default 1), rs_threshold (default 0.0 = below SPY), trim_pct (default 0.50), min_hold_days (default 10).-15.7%13,223
ZSTCScale to available cashZ_SCALE_TO_CASHportfolio managementportfolioZ_SCALE_TO_CASHWhen position size exceeds available cash, scale down to the cash available rather than skipping the entry entirely. Presence-only (no value field).-15.7%13,223
Z1TXT+1 entry executionZ_T_PLUS_1portfolio managementportfolioZ_T_PLUS_1Entry signals generated on day D are executed at day D+1's open price. Prevents lookahead bias by avoiding same-day signal+execution. Presence-only.-15.7%13,223
ZWSXWeekly signal evaluationZ_WEEKLY_SIGNALSportfolio managementportfolioZ_WEEKLY_SIGNALSEvaluate entry, add, trim, and close-based exit rules only on the final observed trading session of each ISO week, then execute queued orders at the next available session open. Presence-only.-15.7%13,223
Z1FXFixed 1xZ_FIXED_1Xportfolio managementsizingFixed 1x == trueFixed full test size.-0
ZMTXMarket throttleZ_MARKET_THROTTLEportfolio managementsizingMarket throttle == trueRisk-based market throttle with unchanged entry-count limits. feature=risk_throttle uses base risk when SPY BX and FVB basis are healthy, mixed_risk_pct when exactly one is healthy, and weak_risk_pct when neither is healthy. feature=risk_throttle_bx preserves all BX-approved entries at base risk, uses mixed_risk_pct only when BX is dark but SPY remains above its FVB basis, and weak_risk_pct when both fail.-15.7%13,223
ZSEXExponential score sizeZ_SCORE_EXPportfolio managementsizingExponential score size == trueAggressive exponential score-based sizing.-0
ZSLXLinear score sizeZ_SCORE_LINEARportfolio managementsizingLinear score size == trueSize proportional to selection or entry score.-0
ZSTXSector throttleZ_SECTOR_THROTTLEportfolio managementsizingSector throttle == trueSize multiplied by sector sponsorship or sector risk.-0
Z02S25% starterZ_STARTER_025portfolio managementsizing25% starter == trueQuarter-size starter position.-0
Z05S50% starterZ_STARTER_050portfolio managementsizing50% starter == trueHalf-size starter position.-0
ZVTXVol target sizeZ_VOL_TARGETportfolio managementsizingVol target size == trueSize inversely to realized volatility.-0
TPBFPIB5 base failureT_PIB_BASE_FAILEDpost impulse baseblockerTerminal failure transition for a causal PIB5 episode; pib_failure_code identifies the reason.True once when a PIB5 episode breaks support, becomes invalid, is already broken when first knowable, or produces an overextended breakout.-0
T50PTicker G4.3 breakout success historyT_PIB_BREAKOUT_HISTORY_500post impulse basecontextDeduplicate by impulse-high episode. A resolved success requires a close above active resistance, then after 21 ticker sessions a close above stored primary resistance and a ticker return greater than SPY from breakout close. Known base failures enter as failures. Unresolved bases and breakouts without a mature 21-session outcome do not enter the denominator.Causal ticker-specific success rate for mature G4.3 base outcomes whose valid date is within the prior 500 ticker bars.-0
TPMCCausal base moving-average contextT_PIB_MA_CONTEXTpost impulse basecontextFor each base bar, calculate the moving average only from prices that are available through that bar. Count closes below the line across the causal base and its last 10 bars.Signal-date moving-average levels and causal counts of base closes below each line. The recent counts use at most the last 10 base bars.-0
TPACBase range contraction readinessT_PIB_ABO_CONTRACTIONpost impulse basesetupT_PIB_ABO_CONTRACTIONThe median true range of the last three bars contracts against the median true range of the base while price does not move away from resistance. This state alone is not an entry.-0
TPBBPIB5 base became validT_PIB_BASE_BECAME_VALIDpost impulse basesetupFirst transition of an episode into T_PIB_BASE_VALID.True once on the first date that a PIB5 episode has sufficient confirmed geometry.-0
TPBVValid PIB5 base stateT_PIB_BASE_VALIDpost impulse basesetupDaily causal PIB5_G4_3 candidate remains inside its frozen primary channel and applicable secondary lines, and it passes the contact, decline-dominance, and flat-floor channel-consumption gates. This setup state is not an entry.True on each date that the causal PIB5 geometry remains valid. It does not select an ABO entry.1.1%129
TPA1Base contraction releaseT_PIB_ABO_CONTRACTION_RELEASEpost impulse basetriggerT_PIB_ABO_CONTRACTION_RELEASEThe prior bar has a valid contraction state and the current close is above the prior high.-0
TPAEExecutable anticipatory base entryT_PIB_ABO_ENTRY_TRIGGERpost impulse basetriggerT_PIB_ABO_ENTRY_TRIGGERTrue for a support rejection, first pressure confirmation, contraction release, rejection followed by pressure, or two simultaneous broad trigger components. A contraction state alone is not an entry.1.1%129
TPAPBase resistance pressure triggerT_PIB_ABO_PRESSUREpost impulse basetriggerT_PIB_ABO_PRESSUREThe close approaches the active resistance, is in the upper part of the active channel, and has a constructive close location.-0
TPA2First base pressure confirmationT_PIB_ABO_PRESSURE_ONSETpost impulse basetriggerT_PIB_ABO_PRESSURE_ONSETPressure is true after it was false on the prior bar, and the close is above the prior close.-0
T5PXSupport rejection followed by pressureT_PIB_ABO_REJECTION_TO_PRESSURE_5post impulse basetriggerT_PIB_ABO_REJECTION_TO_PRESSURE_5Current pressure follows a support-rejection bar from the same frozen candidate during the prior five bars.-0
TPASBase support rejection triggerT_PIB_ABO_SUPPORT_REJECTIONpost impulse basetriggerT_PIB_ABO_SUPPORT_REJECTIONThe bar touches the active support region, closes above its open, and closes in the upper 40 percent of its range.-0
TPATTriggered anticipatory base entryT_PIB_ABO_TRIGGERpost impulse basetriggerOR of support rejection, resistance pressure, and three-bar range contraction triggers. pib_abo_trigger_count gives the number of simultaneous triggers.True only while G4.3 geometry is valid and at least one causal price trigger is present. Geometry discovery alone is not an entry.-0
TPBXPIB5 resistance breakoutT_PIB_BREAKOUTpost impulse basetriggerFirst close above the lower of primary resistance and an applicable secondary resistance for a previously valid PIB5_G4_3 episode.True on the first close above the active G4.3 resistance. This is a geometry event and is not volume-gated.-0
TPIBPost-impulse causal support-resistance baseT_POST_IMPULSE_BASEpost impulse basetriggerPIB5_G4_3: the primary channel is the highest high and lowest low of a causal base window. Optional outer secondary lines use a causal suffix near the end of the base. The impulse high is no more than 21 bars before the base, and primary support stays above the prior impulse-origin low.Compatibility atom for a valid causal post-impulse base or its first breakout bar. Base depth is measured but is not a validity gate.-0
T33PMarket above rising weekly MA10T_PVWAP33_MARKET_ABOVE_RISING_MA10Wpower vwap pullbackcontextT_PVWAP33_MARKET_ABOVE_RISING_MA10WThe completed weekly close is above weekly MA10, and that average is above its value four completed weeks earlier.-0
T331Market above rising weekly MA30T_PVWAP33_MARKET_ABOVE_RISING_MA30Wpower vwap pullbackcontextT_PVWAP33_MARKET_ABOVE_RISING_MA30WThe completed weekly close is above weekly MA30, and that average is above its value four completed weeks earlier.-0
T332Rolling power VWAP touch in completed monthT_PVWAP33_MONTHLY_TOUCHpower vwap pullbackcontextT_PVWAP33_MONTHLY_TOUCHAt a completed month end, at least one completed week in that month had a rolling 33-week power VWAP return touch.-0
T333Sector above rising weekly MA10T_PVWAP33_SECTOR_ABOVE_RISING_MA10Wpower vwap pullbackcontextT_PVWAP33_SECTOR_ABOVE_RISING_MA10WThe completed weekly close is above weekly MA10, and that average is above its value four completed weeks earlier.-0
T334Sector above rising weekly MA30T_PVWAP33_SECTOR_ABOVE_RISING_MA30Wpower vwap pullbackcontextT_PVWAP33_SECTOR_ABOVE_RISING_MA30WThe completed weekly close is above weekly MA30, and that average is above its value four completed weeks earlier.2.1%100
T335Rolling 33-week power VWAP slope upT_PVWAP33_SLOPE_UP_4Wpower vwap pullbackcontextT_PVWAP33_SLOPE_UP_4WThe rolling 33-week power VWAP is above its value four completed weeks earlier.-0
T336Ticker above rising weekly MA10T_PVWAP33_TICKER_ABOVE_RISING_MA10Wpower vwap pullbackcontextT_PVWAP33_TICKER_ABOVE_RISING_MA10WThe completed weekly close is above weekly MA10, and that average is above its value four completed weeks earlier.-0
T337Ticker above rising weekly MA30T_PVWAP33_TICKER_ABOVE_RISING_MA30Wpower vwap pullbackcontextT_PVWAP33_TICKER_ABOVE_RISING_MA30WThe completed weekly close is above weekly MA30, and that average is above its value four completed weeks earlier.-9.8%53
T338Rolling power VWAP extension launchT_PVWAP33_LAUNCH_BEFORE_TOUCHpower vwap pullbackoutcomeT_PVWAP33_LAUNCH_BEFORE_TOUCHThe maximum positive completed-week close extension before the next touch exceeds the causal pooled median of positive extensions.-0
T339Rolling 33-week power VWAP armedT_PVWAP33_ARMEDpower vwap pullbacksetupT_PVWAP33_ARMEDA completed weekly close is at least two weekly ATR13 units above the rolling 33-week power VWAP.-0
T310First armed rolling power VWAP return touchT_PVWAP33_RETURN_TOUCHpower vwap pullbacktriggerT_PVWAP33_RETURN_TOUCHThe first later completed weekly range intersects the rolling 33-week power VWAP tolerance band after the line is armed. VWAP slope is context, not a touch condition.2.1%660
EBEXBullish engulfing candlestickE_BULLISH_ENGULFINGprice actiontriggerclose[t] > open[t] AND open[t] < close[t-1] AND close[t] > open[t-1] AND close[t-1] < open[t-1]Bullish engulfing pattern: current candle completely engulfs prior candle's body.-0
TSCXStacked support confluenceT_SUPPORT_CONFLUENCEpullback supportsetuplevels = {ema21[t], ma50[t], prior_pivot, trendline[t], base_low_20d}; count(level within band_pct of close[t]) >= min_levelsAt least min_levels of {EMA21, MA50, prior breakout pivot, trendline, base low} sit within a tight band around the current price. Encodes the framework's requirement that entries happen where multiple support levels stack up: the more levels that share the invalidation zone, the more meaningful the level and the tighter the defensible stop.-0
TPRSPrior resistance holds as supportT_PRIOR_RESISTANCE_SUPPORT_HOLDpullback supporttriggerpivot = prior_breakout_pivot_high[t-min_pivot_age:t-1]; low[t] <= pivot * (1 + touch_buffer) AND close[t] > pivotPrice pulls back into a prior breakout pivot/resistance level from earlier in the current uptrend and closes back above it. The pivot must be at least min_pivot_age days old so it represents a completed structural breakout, not noise. This is dip type 2 of the asymmetric R:R framework: previous resistance acting as new support.-0
TSRXShakeout reversal at supportT_SHAKEOUT_REVERSALpullback supporttriggersupport = nearest_structural_level[t]; avg(vol[t-pullback_days:t-1]) <= dryup_ratio * avg(vol[t-20:t-1]); low[t] < support AND close[t] > support AND close_position_in_range[t] >= min_close_pos (reclaim within max_reclaim_days)Intraday low briefly breaks the nearby support level (MA, prior pivot, or base low) on dried-up volume, then the close reclaims the level the same day or the next, finishing in the upper half of the day's range. This is dip type 4 of the asymmetric R:R framework: a brief shakeout attracts late shorts and panicked sellers, followed by an immediate reversal. Distinct from the U&R atoms: U&R requires a multi-day break-and-reclaim of a specific MA/base level and rests on a trapped-participant thesis; the shakeout is a fast flush-and-recover defined by location and volume behavior (dry-up on the pull, demand on the reversal). The U&R atoms are the closest existing daily-bar approximation.-0
TTSHRising trendline support holdsT_TRENDLINE_SUPPORT_HOLDpullback supporttriggerline = least_squares_fit(swing_lows[t-fit_window:t]); slope(line) > 0 AND low[t] <= line[t] * (1 + touch_buffer) AND close[t] > line[t]Price touches a least-squares support line fitted through the swing lows of the trailing window and closes back above it, with the line slope positive. This is dip type 3 of the asymmetric R:R framework. Trendline fitting is parameter-fragile: window choice and swing-low detection materially change the line. Treat as a robustness test, not a conviction candidate.-0
TVDXVWAP support holdT_VWAP_DIPpullback supporttriggervwap = sum(typical_price * volume) / sum(volume) over window; |low - vwap|/vwap <= touch_pct AND close > vwap AND close_pos_in_range >= min_close_posThe bar's low touches the rolling VWAP (within the configured tolerance) and the close reclaims above it, finishing in the upper half of the day's range. VWAP is a volume-confirmed support level distinct from the MA/pivot/trendline atoms: it weights price by where actual volume traded. The level is exported across a rolling-window grid (vwap_w10/w20/w50) so the window dimension is sweepable; the touch tolerance and close-position thresholds are swept via the exported vwap_touch_dist_pct and close_pos_in_range numerics.-0
TSSDStructural stop distance within bandT_STRUCT_STOP_DISTANCE_MAXrisk structuretriggerinvalidation = max(undercut_day_low, support_band_low, base_low_20d); stop_distance_pct = 1 - invalidation / close[t]; min_distance <= stop_distance_pct <= max_distanceDistance from entry price to the nearest structural invalidation level (undercut-day low, support-band low, or base low) is within the configured band, default 1-4%. This is the core gate of the asymmetric R:R framework: if the risk/stop size is large, there is no trade. It conditions the entry on the payoff structure rather than placing a stop after deciding to enter, and is the direct test of whether tight stops work when the entry location provides the nearby invalidation.-0
T33RMarket above rising weekly MA10T_RVWAP33_MARKET_ABOVE_RISING_MA10Wrolling vwap pullbackcontextT_RVWAP33_MARKET_ABOVE_RISING_MA10WThe completed weekly close is above weekly MA10, and that average is above its value four completed weeks earlier.-0
T311Market above rising weekly MA30T_RVWAP33_MARKET_ABOVE_RISING_MA30Wrolling vwap pullbackcontextT_RVWAP33_MARKET_ABOVE_RISING_MA30WThe completed weekly close is above weekly MA30, and that average is above its value four completed weeks earlier.-0
T312Rolling VWAP touch in completed monthT_RVWAP33_MONTHLY_TOUCHrolling vwap pullbackcontextT_RVWAP33_MONTHLY_TOUCHAt a completed month end, at least one completed week in that month had a rolling 33-week VWAP return touch.-0
T313Sector above rising weekly MA10T_RVWAP33_SECTOR_ABOVE_RISING_MA10Wrolling vwap pullbackcontextT_RVWAP33_SECTOR_ABOVE_RISING_MA10WThe completed weekly close is above weekly MA10, and that average is above its value four completed weeks earlier.-0
T314Sector above rising weekly MA30T_RVWAP33_SECTOR_ABOVE_RISING_MA30Wrolling vwap pullbackcontextT_RVWAP33_SECTOR_ABOVE_RISING_MA30WThe completed weekly close is above weekly MA30, and that average is above its value four completed weeks earlier.-0
T315Rolling 33-week VWAP slope upT_RVWAP33_SLOPE_UP_4Wrolling vwap pullbackcontextT_RVWAP33_SLOPE_UP_4WThe rolling 33-week VWAP is above its value four completed weeks earlier.-0
T316Ticker above rising weekly MA10T_RVWAP33_TICKER_ABOVE_RISING_MA10Wrolling vwap pullbackcontextT_RVWAP33_TICKER_ABOVE_RISING_MA10WThe completed weekly close is above weekly MA10, and that average is above its value four completed weeks earlier.-0
T317Ticker above rising weekly MA30T_RVWAP33_TICKER_ABOVE_RISING_MA30Wrolling vwap pullbackcontextT_RVWAP33_TICKER_ABOVE_RISING_MA30WThe completed weekly close is above weekly MA30, and that average is above its value four completed weeks earlier.-0
T318Rolling VWAP extension launchT_RVWAP33_LAUNCH_BEFORE_TOUCHrolling vwap pullbackoutcomeT_RVWAP33_LAUNCH_BEFORE_TOUCHThe maximum positive completed-week close extension before the next touch exceeds the causal pooled median of positive extensions.-0
T319Rolling 33-week VWAP armedT_RVWAP33_ARMEDrolling vwap pullbacksetupT_RVWAP33_ARMEDA completed weekly close is at least two weekly ATR13 units above the rolling 33-week VWAP.-0
T320First armed rolling VWAP return touchT_RVWAP33_RETURN_TOUCHrolling vwap pullbacktriggerT_RVWAP33_RETURN_TOUCHThe first later completed weekly range intersects the rolling 33-week VWAP tolerance band after the line is armed. VWAP slope is context, not a touch condition.-1.5%136
SSSASector season ageS_SECTOR_SEASON_AGEseasonalitycontextSector season age == trueDuration of sector relative outperformance or underperformance season.-0
SSSPSector positive seasonalityS_SECTOR_SEASON_POSseasonalitycontextSector positive seasonality == trueSector historically outperforms in current month, quarter, or half year.-0
SSAPSector season age percentile localsector_season_age_pctile_localsector seasonfeatureSector season age percentile local == truePercentile of current hot/cold sector season age versus the same ETF's prior seasons.-0
SSRPSector season return percentile localsector_season_return_pctile_localsector seasonfeatureSector season return percentile local == truePercentile of current hot/cold sector season cumulative return versus the same ETF's prior seasons.-0
RDAXDefensive accelerationR_DEFENSIVE_ACCELsector strength/weaknessblockerDefensive acceleration > 0%Defensive relative strength acceleration versus SPY or risk-on proxies.-0
SHMRMean-reverting sector extensionS_HURST_MEAN_REVERTING_EXTENDEDsector strength/weaknessblockerMean-reverting sector extension == trueSector has durable mean-reversion behavior and is stretched positively versus SPY.-0
SHPUPersistent sector underperformanceS_HURST_PERSISTENT_UNDERPERFORMANCEsector strength/weaknessblockerPersistent sector underperformance == trueSector/SPY relative strength is persistent but negative across long windows.-0
S3RXSector RS HMM chaosS_RS_HMM3_CHAOSsector strength/weaknessblockerSector RS HMM chaos == high-volatility chaoticPoint-in-time 3-state HMM assigns the sector/style ETF versus SPY relative-strength line to a high-volatility chaotic relative state.-0
S3R1Sector RS HMM coldS_RS_HMM3_COLDsector strength/weaknessblockerSector RS HMM cold == configured_statePoint-in-time 3-state HMM assigns the sector/style ETF versus SPY relative-strength line to a negative relative-drift state.-0
S5RXSector RS HMM chaosS_RS_HMM5_CHAOSsector strength/weaknessblockerSector RS HMM chaos == high-volatility chaoticPoint-in-time 5-state HMM assigns the sector/style ETF versus SPY relative-strength line to a high-volatility chaotic relative state.-0
S5R1Sector RS HMM cold driftS_RS_HMM5_COLD_DRIFTsector strength/weaknessblockerSector RS HMM cold drift == negative low-volatility driftPoint-in-time 5-state HMM assigns the sector/style ETF versus SPY relative-strength line to a negative low-volatility drift state.-0
S5R2Sector RS HMM cold trendS_RS_HMM5_COLD_TRENDsector strength/weaknessblockerSector RS HMM cold trend == persistent negativePoint-in-time 5-state HMM assigns the sector/style ETF versus SPY relative-strength line to a persistent negative relative trend state.-0
SRSEEarly sector RS cold seasonS_RS_SEASON_EARLY_COLDsector strength/weaknessblockerEarly sector RS cold season == trueSector relative underperformance is young and deteriorating.-0
SRSMMature sector RS hot seasonS_RS_SEASON_MATURE_HOTsector strength/weaknessblockerMature sector RS hot season == trueSector relative leadership is mature by age, relative return, or both.-0
SRSSSector RS season switch riskS_RS_SEASON_SWITCH_RISKsector strength/weaknessblockerSector RS season switch risk == trueEmpirical probability of the current sector relative regime ending soon is elevated.-0
S50RGlobal SMA50/200 cold exhaustionS_RS_SMA50_200_COLD_EXHAUSTED_GLOBALsector strength/weaknessblockerGlobal SMA50/200 cold exhaustion == trueParent ETF cold season is mature versus a configured cross-ETF sector/style universe.-0
S501Local SMA50/200 cold exhaustionS_RS_SMA50_200_COLD_EXHAUSTED_LOCALsector strength/weaknessblockerLocal SMA50/200 cold exhaustion == trueParent ETF cold season is mature versus that ETF's own prior cold seasons by age, relative return, or both.-0
S502Global SMA50/200 hot exhaustionS_RS_SMA50_200_HOT_EXHAUSTED_GLOBALsector strength/weaknessblockerGlobal SMA50/200 hot exhaustion == trueParent ETF hot season is mature versus a configured cross-ETF sector/style universe.-0
S503Local SMA50/200 hot exhaustionS_RS_SMA50_200_HOT_EXHAUSTED_LOCALsector strength/weaknessblockerLocal SMA50/200 hot exhaustion == trueParent ETF hot season is mature versus that ETF's own prior hot seasons by age, relative return, or both.-0
SSDBDefensive sector breakoutS_SECTOR_DEF_BREAKOUTsector strength/weaknessblockerDefensive sector breakout == trueDefensive sector ETF is breaking out or basing constructively.-0
S1SXDefensive 1M leadershipS_SECTOR_DEF_LEAD_1Msector strength/weaknessblockerDefensive 1M leadership == trueDefensive sectors are leading SPY over 1 month.-0
S3SXDefensive 3M leadershipS_SECTOR_DEF_LEAD_3Msector strength/weaknessblockerDefensive 3M leadership == trueDefensive sectors are leading SPY over 3 months.-0
TRCSSignal-close risk to structural stop in ATRT_RS_CROSS_SIGNAL_STOP_RISK_ATRsector strength/weaknessblocker(close[t] - (low[t] - 0.25 * atr20[t])) / atr20[t]Distance from signal close to signal-day low minus 0.25 ATR, divided by ATR20.-0
RSSASector/SPY RS accelerationR_SECTOR_SPY_ACCELsector strength/weaknesscontextSector/SPY RS acceleration > 0%Sector 1M relative strength is improving versus 3M relative trend.-0
R1TXTicker/sector 1M RSR_TICKER_SECTOR_1M_UPsector strength/weaknesscontextTicker/sector 1M RS > 0%Ticker versus sector relative strength is rising over 1 month.-0
R3TXTicker/sector 3M RSR_TICKER_SECTOR_3M_UPsector strength/weaknesscontextTicker/sector 3M RS > 0%Ticker versus sector relative strength is rising over 3 months.-0
RTSATicker/sector RS accelerationR_TICKER_SECTOR_ACCELsector strength/weaknesscontextTicker/sector RS acceleration == trueTicker 1M sector-relative strength is improving versus 3M relative trend.-0
R1T1Ticker/SPY 1M RSR_TICKER_SPY_1M_UPsector strength/weaknesscontextTicker/SPY 1M RS > 0%Ticker versus SPY relative strength is rising over 1 month.-0
R3T1Ticker/SPY 3M RSR_TICKER_SPY_3M_UPsector strength/weaknesscontextTicker/SPY 3M RS > 0%Ticker versus SPY relative strength is rising over 3 months.-0
SATBSector adaptive trend bull stateS_ADAPTIVE_TREND_BULLsector strength/weaknesscontextregime == bullParent sector ETF is in the causal DEMA20, median5, Wilder ATR14 bull state with +2.1 ATR and -1.5 ATR rails.2.6%184
SHDNDurable sector Hurst noiseS_HURST_DURABLE_NOISEsector strength/weaknesscontextDurable sector Hurst noise == trueSector Hurst remains neutral across long windows, so Hurst should be de-emphasized.-0
SHFTSector Hurst flip to mean reversionS_HURST_FLIP_TO_MRsector strength/weaknesscontextSector Hurst flip to mean reversion == trueSector Hurst has fallen from trend into mean-reversion/noise range.-0
SHF1Sector Hurst flip to trendS_HURST_FLIP_TO_TRENDsector strength/weaknesscontextSector Hurst flip to trend == trueSector Hurst has risen from mean-reversion/noise into trend range.-0
SHLTSector long Hurst trendS_HURST_LONG_TRENDsector strength/weaknesscontextSector long Hurst trend >= trend thresholdSector long-window Hurst is above trend threshold.-0
SHMDSector Hurst mean-reversion durabilityS_HURST_MEANREV_DURABILITYsector strength/weaknesscontextSector Hurst mean-reversion durability == trueCount or share of long sector Hurst windows at or below the mean-reversion threshold.-0
SHM1Mean-reverting sector depressionS_HURST_MEAN_REVERTING_DEPRESSEDsector strength/weaknesscontextMean-reverting sector depression == trueSector has durable mean-reversion behavior and is stretched negatively versus SPY.-0
SHMTSector medium Hurst trendS_HURST_MED_TRENDsector strength/weaknesscontextSector medium Hurst trend >= trend thresholdSector medium-window Hurst is above trend threshold.-0
SHNXSector Hurst noiseS_HURST_NOISEsector strength/weaknesscontextSector Hurst noise == trueSector Hurst is near 0.5 and should not strongly route strategy.-0
SHNDSector Hurst noise durabilityS_HURST_NOISE_DURABILITYsector strength/weaknesscontextSector Hurst noise durability == trueCount or share of long sector Hurst windows inside the neutral noise band.-0
SHPLPersistent sector leadershipS_HURST_PERSISTENT_LEADERSHIPsector strength/weaknesscontextPersistent sector leadership == trueSector/SPY relative strength is both persistent and positive across long windows.-0
S12HSector price Hurst 120DS_HURST_PRICE_120Dsector strength/weaknesscontextSector price Hurst 120D == trueLonger-window Hurst exponent on sector ETF price.-0
S20HSector price Hurst 20DS_HURST_PRICE_20Dsector strength/weaknesscontextSector price Hurst 20D == trueShort-window Hurst exponent on sector ETF price.-0
S25HSector price Hurst 250DS_HURST_PRICE_250Dsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Long-window Hurst exponent on sector ETF price.-0
S50HSector price Hurst 500DS_HURST_PRICE_500Dsector strength/weaknesscontextSector price Hurst 500D == trueMulti-year Hurst exponent on sector ETF price.-0
S60HSector price Hurst 60DS_HURST_PRICE_60Dsector strength/weaknesscontextSector price Hurst 60D == trueMedium-window Hurst exponent on sector ETF price.-0
S75HSector price Hurst 750DS_HURST_PRICE_750Dsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Long multi-year Hurst exponent on sector ETF price.-0
S121Sector/SPY RS Hurst 120DS_HURST_RS_SPY_120Dsector strength/weaknesscontextSector/SPY RS Hurst 120D == trueLonger-window Hurst exponent on sector versus SPY relative strength line.-0
S251Sector/SPY RS Hurst 250DS_HURST_RS_SPY_250Dsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Long-window Hurst exponent on sector versus SPY relative strength line.-0
S252Sector/SPY RS Hurst 250D mean-reversion stateS_HURST_RS_SPY_250_MEANREVsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Sector versus SPY relative-strength 250-day Hurst exponent is <= 0.40.-0
S253Sector/SPY RS Hurst 250D trend stateS_HURST_RS_SPY_250_TRENDsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Sector versus SPY relative-strength 250-day Hurst exponent is >= 0.60.-0
S504Sector/SPY RS Hurst 500DS_HURST_RS_SPY_500Dsector strength/weaknesscontextSector/SPY RS Hurst 500D == trueMulti-year Hurst exponent on sector versus SPY relative strength line.-0
S601Sector/SPY RS Hurst 60DS_HURST_RS_SPY_60Dsector strength/weaknesscontextSector/SPY RS Hurst 60D == trueMedium-window Hurst exponent on sector versus SPY relative strength line.-0
S751Sector/SPY RS Hurst 750DS_HURST_RS_SPY_750Dsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Long multi-year Hurst exponent on sector versus SPY relative strength line.-0
SHSMSector short Hurst mean reversionS_HURST_SHORT_MRsector strength/weaknesscontextSector short Hurst mean reversion <= mean-reversion thresholdSector short/medium Hurst is below mean-reversion threshold.-0
SHTDSector Hurst trend durabilityS_HURST_TREND_DURABILITYsector strength/weaknesscontextSector Hurst trend durability == trueCount or share of long sector Hurst windows at or above the trend threshold.-0
S3R2Sector RS HMM hotS_RS_HMM3_HOTsector strength/weaknesscontextSector RS HMM hot == configured_statePoint-in-time 3-state HMM assigns the sector/style ETF versus SPY relative-strength line to a positive relative-drift state.-0
S5R3Sector RS HMM hot driftS_RS_HMM5_HOT_DRIFTsector strength/weaknesscontextSector RS HMM hot drift == positive low-volatility driftPoint-in-time 5-state HMM assigns the sector/style ETF versus SPY relative-strength line to a positive low-volatility drift state.-0
S5R4Sector RS HMM hot trendS_RS_HMM5_HOT_TRENDsector strength/weaknesscontextSector RS HMM hot trend == configured_statePoint-in-time 5-state HMM assigns the sector/style ETF versus SPY relative-strength line to a positive directional leadership state.-0
SRSASector RS season age percentileS_RS_SEASON_AGE_PCTILEsector strength/weaknesscontextSector RS season age percentile == trueCurrent hot/cold relative regime duration percentile versus prior same-state sector regimes.-0
SRSCSector RS cold seasonS_RS_SEASON_COLDsector strength/weaknesscontextSector RS cold season == trueSector versus SPY relative-strength regime is negative.-0
SRS1Early sector RS hot seasonS_RS_SEASON_EARLY_HOTsector strength/weaknesscontextEarly sector RS hot season == trueSector relative leadership is young and improving.-0
SRSHSector RS hot seasonS_RS_SEASON_HOTsector strength/weaknesscontextSector RS hot season == trueSector versus SPY relative-strength regime is positive.-0
SRS2Mature sector RS cold seasonS_RS_SEASON_MATURE_COLDsector strength/weaknesscontextMature sector RS cold season == trueSector relative underperformance is mature by age, relative return, or both.-0
SRSRSector RS season return percentileS_RS_SEASON_RETURN_PCTILEsector strength/weaknesscontextSector RS season return percentile == trueCurrent hot/cold relative regime return percentile versus prior same-state sector regimes.-0
S505SMA50/200 sector RS cold seasonS_RS_SMA50_200_COLDsector strength/weaknesscontextSMA50/200 sector RS cold season < 0Parent ETF versus SPY relative SMA50 is below relative SMA200.-0
S506SMA50/200 sector RS hot seasonS_RS_SMA50_200_HOTsector strength/weaknesscontextSMA50/200 sector RS hot season > 0Parent ETF versus SPY relative SMA50 is above relative SMA200.-0
S3S1Sector RS 3-month upS_SECTOR_RS_3M_UPsector strength/weaknesscontextSector RS 3-month up > 0%Sector is outperforming SPY over the trailing 3 months. Confirms sector leadership.-0.1%54,543
SSRASector relative accelerationS_SECTOR_RS_ACCELsector strength/weaknesscontextSector relative acceleration > 0%Sector 1M relative strength is improving versus its 3M relative trend.-0
S1S1Sector 1M relative strengthS_SECTOR_SPY_RS_1M_UPsector strength/weaknesscontextSector 1M relative strength > 0%Sector versus SPY relative strength is rising over 1 month.-0
S3S2Sector 3M relative strengthS_SECTOR_SPY_RS_3M_UPsector strength/weaknesscontextSector 3M relative strength > 0%Sector versus SPY relative strength is rising over 3 months.-0
S20SSector 200D trendS_SECTOR_TREND_200Dsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 200)[t] and slope(sma(sector_etf, 200), 20)[t] > 0Parent sector ETF is above a rising 200-day moving average.-0
S50SSector 50D trendS_SECTOR_TREND_50Dsector strength/weaknesscontextsector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Parent sector ETF is above a rising 50-day moving average.-0
T1TXTicker vs sector RS 1M upT_TICKER_SECTOR_RS_1M_UPsector strength/weaknesscontext1M return > Sector ETF 1M returnTicker is outperforming its sector ETF over 1 month. Leading within its sector.-0
X10RTicker/SPY RS EMA10/SMA50 bearish crossoverX_RS_SPY_EMA10_SMA50_CROSS_DOWNsector strength/weaknessexitema(100 * adj_close_ticker / adj_close_spy, 10)[t] < sma(100 * adj_close_ticker / adj_close_spy, 50)[t] AND ema(...)[t-1] >= sma(...)[t-1]The 10-session EMA of adjusted ticker close divided by adjusted SPY close crosses below its 50-session SMA.-0
H12SSector/SPY RS Hurst 120Dhurst_sector_rs_spy_120sector strength/weaknessfeatureSector/SPY RS Hurst 120D == observedRaw 120-day Hurst exponent on sector versus SPY relative strength line.-0
H25SSector/SPY RS Hurst 250Dhurst_sector_rs_spy_250sector strength/weaknessfeaturesector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Raw 250-day Hurst exponent on sector versus SPY relative strength line.-0
H60SSector/SPY RS Hurst 60Dhurst_sector_rs_spy_60sector strength/weaknessfeatureSector/SPY RS Hurst 60D == observedRaw 60-day Hurst exponent on sector versus SPY relative strength line.-0
FRCSPoint-in-time size rank at RS crossoverF_RS_CROSS_SIZE_RANK_PITsector strength/weaknesssetupF_RS_CROSS_SIZE_RANK_PITPoint-in-time market-cap rank in the liquid common-stock universe. A larger value means a smaller company.-0
T20RATR20 percent at RS crossoverT_RS_CROSS_ATR20_PCTsector strength/weaknesssetupatr20[t] / close[t]Signal-close ATR20 divided by signal close.-0
T12RDistance below prior 126-session high at RS crossoverT_RS_CROSS_DISTANCE_BELOW_126_HIGHsector strength/weaknesssetup1 - close[t] / max(high[t-126:t-1])Signal close distance below the highest high in the prior 126 completed sessions.-0
T219Point-in-time 20-session dollar-volume percentile at RS crossoverT_RS_CROSS_DVOL20_PCTLsector strength/weaknesssetupT_RS_CROSS_DVOL20_PCTLPercentile rank of median 20-session dollar volume within the monthly point-in-time liquid universe.-0
TRCRRS crossover reset sessionsT_RS_CROSS_RESET_SESSIONSsector strength/weaknesssetupcount backward from t-1 while rs_ema10 <= rs_sma50Number of consecutive completed sessions before the bullish crossover for which the RS EMA10 was not above the RS SMA50.-0
E10RTicker/SPY RS EMA10/SMA50 bullish crossoverE_RS_SPY_EMA10_SMA50_CROSS_UPsector strength/weaknesstriggerema(100 * adj_close_ticker / adj_close_spy, 10)[t] > sma(100 * adj_close_ticker / adj_close_spy, 50)[t] AND ema(...)[t-1] <= sma(...)[t-1]The 10-session EMA of adjusted ticker close divided by adjusted SPY close crosses above its 50-session SMA.-0
SGRPMinimum sector or industry relative-strength percentileS_GROUP_RS_PERCENTILE_MINsector strength/weaknesstriggercross_sectional_percentile(return(group, lookback_days), group_universe, t) >= min_percentileMapped sector or industry group ranks above a cross-sectional return percentile. Entry criterion, not a merit-model feature.-0
SRS3Sector RS season reversal candidateS_RS_SEASON_REVERSAL_CANDIDATEsector strength/weaknesstriggerSector RS season reversal candidate == trueMature cold sector relative regime is starting to improve and may support reversal/base entries.-0
S507SMA50/200 cold rebound signalS_RS_SMA50_200_COLD_REBOUND_SIGNALsector strength/weaknesstriggerSMA50/200 cold rebound signal == trueCold exhaustion combined with confirming ticker or sector reclaim/relative-strength turn for rebound entry tests.-0
TRCNNext-close RS crossover entry extension in ATRT_RS_CROSS_NEXT_CLOSE_EXTENSION_ATRsector strength/weaknesstrigger(close[t+1] - close[t]) / atr20[t]Next-session close minus signal close, divided by signal ATR20. This value is known only at the next-close entry decision.-0
TRC1Signal-day close location at RS crossoverT_RS_CROSS_SIGNAL_CLOSE_LOCATIONsector strength/weaknesstrigger(close[t] - low[t]) / (high[t] - low[t])Signal close location in the signal-day high-low range.-0
S508SMA50/200 hot fade signalS_RS_SMA50_200_HOT_FADE_SIGNALsector strength/weaknesstrimSMA50/200 hot fade signal == trueHot exhaustion combined with confirming ticker or sector weakness for avoid/add-block/trim strategy tests.-0
L2AX2 ATR stopL_ATR_2stop lossstop2 ATR stop >= 2 ATRStop two ATRs below entry or reference price.-0
L3AX3 ATR stopL_ATR_3stop lossstop3 ATR stop >= 3 ATRStop three ATRs below entry or reference price.-0
LEDLEvent-day low initial stopL_EVENT_DAY_LOWstop lossstopstop_price = event_low - buffer_atr * atr20; require (entry_price - stop_price) / entry_price <= max_stop_pctSet the initial stop below the episodic event day's low; skip entries whose initial risk exceeds the configured maximum.-0
L15FFixed 15% stopL_FIXED_15stop lossstopFixed 15% stop <= -15%Fixed 15% stop-loss.-0
L8FXFixed 8% stopL_FIXED_8stop lossstopFixed 8% stop <= -8%Fixed 8% stop-loss.-0
LFPXParameterised fixed percentage stopL_FIXED_PCTstop lossstopstop_price = entry_price * (1 - loss_pct)Fixed loss limit below entry, including the 7% maximum associated with the source hypothesis.-0
L20MMA200 close stopL_MA200_CLOSEstop lossstopclose[t] > sma(close, 200)[t] and slope(sma(close, 200), 20)[t] > 0Stop on close below 200-day moving average.-0
L50MMA50 close stopL_MA50_CLOSEstop lossstopclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Stop on close below 50-day moving average.-0
LNXXNo stopL_NONEstop lossstopNo stop == trueNo stop; fixed-horizon or exit-rule hold.-0
LTSXTime stopL_TIME_STOPstop lossstopTime stop == trueExit if no progress after a fixed number of days.-0
QBADDelayed breakeven stop resetQ_BREAKEVEN_AFTER_DAYSstop resetstop_resetif days_since_entry >= delay_days then stop_price = max(stop_price, entry_price)Move the stop to entry only after a configurable delay, allowing comparison with an unchanged initial stop.-0
QNRXNo stop resetQ_NO_RESETstop resetstop_resetNo stop reset == trueOriginal stop remains unchanged.-0
QRBXReset breakevenQ_RESET_BREAKEVENstop resetstop_resetReset breakeven == trueMove stop to breakeven after gain threshold.-0
Q50RReset MA50Q_RESET_MA50stop resetstop_resetclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Trail stop using 50-day moving average after trend confirms.-0
QRSLReset swing lowQ_RESET_SWING_LOWstop resetstop_resetReset swing low == trueTrail stop to new swing low after add or confirmation.-0
MBGXBX Trender green (net buying pressure)M_BX_GREENtht bx trendercontextbx[t] > 0BX > 0. Institutional buying pressure is active. This is the dark green + light green states. A stricter entry gate than M_BX_NOT_DARK_RED — requires confirmed positive pressure, not just improving.-0
MBIXBX Trender improving (light red increasing)M_BX_IMPROVINGtht bx trendercontextbx[t] < 0 AND slope(bx, slope_days)[t] > 0BX is negative but rising — the 'increasing light red' state in THT. Buying pressure is returning from a dark-red regime. Entry is still allowed: the cycle is turning back on. This is the earliest entry signal in the THT system.-0
MBNDBX Trender not dark red (bull cycle active)M_BX_NOT_DARK_REDtht bx trendercontextbx[t] = ema(ema(ema(2*close - high - low, 5), 20), 5) - ema(ema(2*close - high - low, 20), 5); NOT dark_red: bx[t] > 0 OR slope(bx, 5)[t] > 0THT BX is in any state except dark red. This includes dark green (BX>0, rising), light green (BX>0, flat), and increasing light red (BX<0 but rising — buying pressure returning). Entry is allowed in all these states. The bull cycle is ON.-15.7%13,223
MSBNSPY monthly BX permits THT entriesM_SPY_BX_NOT_DARK_REDtht bx trendercontextSPY bx[t] > 0 OR SPY slope(bx, 5)[t] > 0The SPY monthly BX state is not dark red. This is the portfolio-level market permission used by the promoted weekly THT scanner.-0
T2FXClean weekly FV low recovery — 2% capT_FV_LOW_RECOVER_2tht fair valueentry_diagnosticT_FV_TOUCH_RECLAIM_2 AND weekly_low >= fv_basisThe 2% touch/reclaim component whose weekly low remained at or above the FV basis.-15.7%4,893
T2F1Weekly FV sweep/reclaim — 2% capT_FV_SWEEP_RECLAIM_2tht fair valueentry_diagnosticT_FV_TOUCH_RECLAIM_2 AND weekly_low < fv_basisThe 2% touch/reclaim component whose weekly low swept below the FV basis before the close reclaimed it.-15.8%6,940
LFLSStop below FV lower bandL_FV_LOWER_STOPtht fair valuestopstop_price = fv_lower[t]Hard stop at the FV lower band. The band itself defines the invalidation level — if price closes below it, the bullish structure is invalid.-0
TFBGFV band is green (basis rising)T_FV_BAND_GREENtht fair valuetriggerslope(sma(ohlc4, period), slope_days)[t] > 0The FV ribbon is green — the basis (SMA(ohlc4, period)) is rising over slope_days. This confirms bullish structure. Price has been above the center (basis) but may not have been above the upper band. The green state is about the trend of the band itself, not the current price position.-15.7%13,223
TFIOPrice in or near fair value zoneT_FV_IN_OR_NEAR_ZONEtht fair valuetriggerclose[t] <= fv_upper[t] * (1 + tolerance) AND close[t] >= fv_lower[t]Price is within or near the FV band — between fv_lower and fv_upper, or just above fv_upper within a tolerance. This is the entry zone: price is near fair value, not extended away from it. Does NOT require a pullback from above — just that price is near value.-0
TFNBPrice near fair value basisT_FV_NEAR_BASIStht fair valuetriggerabs(close[t] - fv_basis[t]) <= atr20[t]Price is within 1 ATR of the FV basis (SMA of ohlc4). Tighter entry zone — price has returned to the mean, not just the band edge.-0
TFTRWeekly FV touch and basis reclaimT_FV_TOUCH_RECLAIMtht fair valuetriggerweekly_low[t] <= fv_upper[t] AND weekly_close[t] >= fv_basis[t] AND weekly_close[t] <= fv_upper[t] * (1 + tolerance)The completed weekly low reached the FV upper band or deeper, while the weekly close reclaimed the basis and finished no more than the configured tolerance above the upper band. This combines clean upper-half recoveries and below-basis sweep/reclaims without admitting a close below the basis. The tolerance-specific computed atoms are T_FV_TOUCH_RECLAIM_0 through _3.-0
T0FXWeekly FV touch/reclaim — 0% controlT_FV_TOUCH_RECLAIM_0tht fair valuetriggerweekly_low <= fv_upper AND fv_basis <= weekly_close <= fv_upperCompleted weekly low touched the upper FV band or deeper and the close reclaimed the basis without closing above the upper band.-15.8%7,108
T1FXWeekly FV touch/reclaim — 1% capT_FV_TOUCH_RECLAIM_1tht fair valuetriggerweekly_low <= fv_upper AND fv_basis <= weekly_close <= fv_upper * 1.01Completed weekly low touched the upper FV band or deeper and the close reclaimed the basis, allowing at most 1% above the upper band.-15.9%9,818
T2F2Weekly FV touch/reclaim — 2% capT_FV_TOUCH_RECLAIM_2tht fair valuetriggerweekly_low <= fv_upper AND fv_basis <= weekly_close <= fv_upper * 1.02Completed weekly low touched the upper FV band or deeper and the close reclaimed the basis, allowing at most 2% above the upper band.-15.7%11,833
T3FXWeekly FV touch/reclaim — 3% capT_FV_TOUCH_RECLAIM_3tht fair valuetriggerweekly_low <= fv_upper AND fv_basis <= weekly_close <= fv_upper * 1.03Completed weekly low touched the upper FV band or deeper and the close reclaimed the basis, allowing at most 3% above the upper band.-15.8%13,223
TFT1Weekly FV touch and basis recovery — uncappedT_FV_TOUCH_RECOVER_UNCAPPEDtht fair valuetriggerweekly_low <= fv_upper AND weekly_close >= fv_basisCompleted weekly low touched the FV upper band or deeper and the close recovered to at least the FV basis. The close may finish above the FV upper band; there is deliberately no upper-distance cap. A close below the basis is excluded.-0
TFUHPrice in strict upper half of fair value bandT_FV_UPPER_HALFtht fair valuetriggerclose[t] >= fv_basis[t] AND close[t] <= fv_upper[t]Weekly close is at or above the FV basis and at or below the FV upper band. This is the confirmed-recovery entry zone selected by the THT Stage 5 portfolio tests.-0
T30BBroken below 30%T_BROKEN_BELOW_30ticker contextblockerBroken below 30% > 30%Ticker is more than 30% below a recent high.-0
T20EMA200 extensionT_EXTENDED_MA200ticker contextblockerclose[t] > sma(close, 200)[t] and slope(sma(close, 200), 20)[t] > 0Ticker is far above the 200-day moving average.-0
T50EMA50 extensionT_EXTENDED_MA50ticker contextblockerclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker is far above the 50-day moving average.-0
TLRXTicker LPPL riskT_LPPL_RISKticker contextblockerTicker LPPL risk == trueTicker LPPL bubble/exhaustion risk is elevated.-0
THLTTicker long Hurst trendT_HURST_LONG_TRENDticker contextcontextTicker long Hurst trend >= trend thresholdTicker long-window Hurst is above trend threshold.-0
THMDTicker Hurst mean-reversion durabilityT_HURST_MEANREV_DURABILITYticker contextcontextTicker Hurst mean-reversion durability == trueCount or share of long ticker Hurst windows at or below the mean-reversion threshold.-0
THNDTicker Hurst noise durabilityT_HURST_NOISE_DURABILITYticker contextcontextTicker Hurst noise durability == trueCount or share of long ticker Hurst windows inside the neutral noise band.-0
T12HTicker price Hurst 120DT_HURST_PRICE_120Dticker contextcontextTicker price Hurst 120D == trueLonger-window Hurst exponent on ticker price.-0
T25HTicker price Hurst 250DT_HURST_PRICE_250Dticker contextcontextclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Long-window Hurst exponent on ticker price.-0
T50HTicker price Hurst 500DT_HURST_PRICE_500Dticker contextcontextTicker price Hurst 500D == trueMulti-year Hurst exponent on ticker price.-0
THSMTicker short Hurst mean reversionT_HURST_SHORT_MRticker contextcontextTicker short Hurst mean reversion <= mean-reversion thresholdTicker short-window Hurst is below mean-reversion threshold.-0
THTDTicker Hurst trend durabilityT_HURST_TREND_DURABILITYticker contextcontextTicker Hurst trend durability == trueCount or share of long ticker Hurst windows at or above the trend threshold.-0
TNHXNear highT_NEAR_HIGHticker contextcontextNear high <= near high thresholdTicker is within a near-high band.-0
T20TTicker 200D trendT_TREND_200Dticker contextcontextclose[t] > sma(close, 200)[t] and slope(sma(close, 200), 20)[t] > 0Ticker is above a rising 200-day moving average.-0
T50TTicker 50D trendT_TREND_50Dticker contextcontextclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker is above a rising 50-day moving average.-0
TDCXControlled drawdownT_DD_CONTROLLEDticker contexttriggerControlled drawdown == trueTicker drawdown is in an acceptable pullback band.-0
T3HXTicker HMM high-vol chaosT_HMM3_HIGH_VOL_CHAOSticker hmm regimeblockerTicker HMM high-vol chaos == high-volatility chaoticPoint-in-time 3-state HMM assigns the ticker price series to a high-volatility chaotic state.-0
T5HXTicker HMM bear driftT_HMM5_BEAR_DRIFTticker hmm regimeblockerTicker HMM bear drift == negative low-volatility driftPoint-in-time 5-state HMM assigns the ticker price series to a negative low-volatility drift state.-0
T5H1Ticker HMM bear trendT_HMM5_BEAR_TRENDticker hmm regimeblockerTicker HMM bear trend == directional trendPoint-in-time 5-state HMM assigns the ticker price series to a negative directional trend state.-0
T5H2Ticker HMM chaosT_HMM5_CHAOSticker hmm regimeblockerTicker HMM chaos == high-volatility chaoticPoint-in-time 5-state HMM assigns the ticker price series to a high-volatility chaotic state.-0
T3H1Ticker HMM directional trendT_HMM3_DIRECTIONAL_TRENDticker hmm regimecontextTicker HMM directional trend == directional trendPoint-in-time 3-state HMM assigns the ticker price series to a directional trend state.-0
T3H2Ticker HMM low-vol driftT_HMM3_LOW_VOL_DRIFTticker hmm regimecontextTicker HMM low-vol drift == low-volatility drift/rangePoint-in-time 3-state HMM assigns the ticker price series to a low-volatility drift/range state.-0
T5H3Ticker HMM bull driftT_HMM5_BULL_DRIFTticker hmm regimecontextTicker HMM bull drift == positive low-volatility driftPoint-in-time 5-state HMM assigns the ticker price series to a positive low-volatility drift state.-0
T5H4Ticker HMM bull trendT_HMM5_BULL_TRENDticker hmm regimecontextTicker HMM bull trend == directional trendPoint-in-time 5-state HMM assigns the ticker price series to a positive directional trend state.-0
T251Ticker Hurst 250D mean-reversion stateT_HURST_250_MEANREVticker hurstcontextclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker price 250-day Hurst exponent is <= 0.40.-0
T252Ticker Hurst 250D trend stateT_HURST_250_TRENDticker hurstcontextclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker price 250-day Hurst exponent is >= 0.60.-0
H12TTicker Hurst 120Dhurst_ticker_120ticker hurstfeatureTicker Hurst 120D == observedRaw 120-day Hurst exponent on ticker price.-0
H25TTicker Hurst 250Dhurst_ticker_250ticker hurstfeatureclose[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Raw 250-day Hurst exponent on ticker price.-0
H60TTicker Hurst 60Dhurst_ticker_60ticker hurstfeatureTicker Hurst 60D == observedRaw 60-day Hurst exponent on ticker price.-0
H121Ticker/Sector RS Hurst 120Dhurst_ticker_sector_rs_120ticker hurstfeatureTicker/Sector RS Hurst 120D == observedRaw 120-day Hurst exponent on ticker versus sector relative strength line.-0
H251Ticker/Sector RS Hurst 250Dhurst_ticker_sector_rs_250ticker hurstfeaturesector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Raw 250-day Hurst exponent on ticker versus sector relative strength line.-0
H601Ticker/Sector RS Hurst 60Dhurst_ticker_sector_rs_60ticker hurstfeatureTicker/Sector RS Hurst 60D == observedRaw 60-day Hurst exponent on ticker versus sector relative strength line.-0
T141RSI14 extendedT_RSI14_EXTENDEDticker momentumblockerRSI14 extended >= 70Ticker 14-day RSI is >= 70.-0
T5RXRSI5 extendedT_RSI5_EXTENDEDticker momentumblockerRSI5 extended >= 90Ticker 5-day RSI is >= 90.-0
T1MX1-month momentum strongT_MOM_1M_STRONGticker momentumcontext1M return >= 10%Ticker 1-month return >= 10%. Strong short-term momentum.-0
T1M11-month momentum upT_MOM_1M_UPticker momentumcontext1-month momentum up > 0%Ticker 21-day return is positive.-0
T3MX3-month momentum strongT_MOM_3M_STRONGticker momentumcontext3M return >= 30%Ticker 3-month return >= 30%. Strong medium-term momentum.-0
T3M13-month momentum upT_MOM_3M_UPticker momentumcontext3M return > 0%Ticker 3-month return is positive. Basic uptrend confirmation.-0
T3RXRelative strength vs SPY 3MT_RS_SPY_3M_UPticker momentumcontext3M return > SPY 3M returnTicker 3-month return exceeds SPY 3-month return. Outperforming the market.-0.4%124
R14XRSI 14-dayrsi14ticker momentumfeatureRSI 14-day == observedRaw 14-day RSI value.-0
R5XXRSI 5-dayrsi5ticker momentumfeatureRSI 5-day == observedRaw 5-day RSI value.-0
TPAMMinimum prior advanceT_PRIOR_ADVANCE_MINticker momentumsetupclose[t] / min(low[t-lookback_days+1:t]) - 1 >= min_advanceRequires evidence of exceptional prior price strength before the current setup.-0
TRPMMinimum ticker relative-strength percentileT_RS_PERCENTILE_MINticker momentumtriggercross_sectional_percentile(return(ticker, lookback_days), universe_id, t) >= min_percentileTicker trailing return ranks above a cross-sectional percentile in the configured point-in-time universe. Entry criterion, not a merit-model feature.-0
TBDMMaximum base depthT_BASE_DEPTH_MAXticker recent patternsetuppivot_index = argmax(high[t-lookback_days:t-min_base_days]); base_low = min(low[pivot_index+1:t-1]); base_pullback_depth = 1 - base_low / high[pivot_index]; base_pullback_depth <= max_depthSequential pre-breakout correction depth from a prior pivot high to the lowest later low does not exceed a configurable limit. The pivot must be old enough to form a base, and all inputs end at t-1.-0
TBRCBase range contractionT_BASE_RANGE_CONTRACTIONticker recent patternsetupshort_range = max(high[t-short_days:t-1]) / min(low[t-short_days:t-1]) - 1; long_range = max(high[t-long_days:t-1]) / min(low[t-long_days:t-1]) - 1; base_range_contraction_ratio = short_range / long_range; base_range_contraction_ratio <= max_ratioThe normalized price span of the terminal pre-breakout window is a configurable fraction of the full base span. All windows end at t-1.-0
TBVDBase volume dry-upT_BASE_VOLUME_DRYUPticker recent patternsetupavg(volume[t-short_days:t-1]) / avg(volume[t-long_days:t-1]) <= max_ratioRecent average volume contracts relative to the longer base-period average before entry. Both windows end before the breakout session so event-day volume cannot contaminate base quality.-0
T60RRange contraction strict 60%T_RANGE_CONTRACT_STRICT60ticker recent patternsetup5D range / 20D avg range <= 0.605-day range is at most 60% of the 20-day average range. Volatility contraction pattern (VCP-like).-0
T5R1RSI5 washoutT_RSI5_WASHOUTticker recent patternsetupRSI5 washout <= 355-period RSI <= 35. Short-term oversold condition for mean reversion entries.-0
TTCUTight range + close upper halfT_TIGHT_CLOSE_UPPER_HALFticker recent patternsetup5D range / 20D avg range <= 0.60 AND Close position in 5D range >= 0.50Range is contracted (5v20 <= 0.60) AND close is in the upper half of the weekly range. Tight base with accumulation.-0
TBVRBreakout volume ratioT_BREAKOUT_VOLUME_RATIOticker recent patterntriggervolume[t] / avg(volume[t-average_days:t-1]) >= min_ratioBreakout-day volume exceeds a configurable multiple of its prior average. Generalises binary volume confirmation.-0
T45BForward markup break forecast top 5%T_BREAK_FORECAST_4W_TOP_5ticker recent patterntriggerT_BREAK_FORECAST_4W_TOP_5Frozen OOS probability of a stable markup break in the next four weeks ranks in the global weekly top 5%. The K1/D126 entry gate rejected positive-return trades and failed Stage 3.-0
T90BBroad breakout ridge Q90T_BROAD_BO_RIDGE_Q90ticker recent patterntriggerT_BROAD_BO_RIDGE_Q90The fixed 30-feature causal ridge score is at or above its prior-training 90th percentile.1.8%1,376
T22020-day close breakoutT_CLOSE_BREAK_20D_HIGHticker recent patterntriggerClose > Prior 20D highClose broke above the 20-day high. Primary breakout entry trigger.-0
TCBRClose breakout above rolling highT_CLOSE_BREAK_ROLLING_HIGHticker recent patterntriggerclose[t] > prior_high(lookback_days)[t] + buffer_atr * atr(atr_days)[t]Close exceeds a prior rolling high by the configured ATR buffer. Generalises the promoted 20-day close breakout.-0
TCGXCML regime green (stacked EMAs + momentum)T_CML_GREENticker recent patterntriggerstate machine: arm when ema8[t] > ema21[t] > ema50[t] AND roc10[t] >= 0; reset when ema8[t] < ema21[t]Regime state for the triangle breakout family: EMA8 > EMA21 > EMA50 with ROC(10) >= 0 arms the state; EMA8 crossing below EMA21 resets it. This is the trend gate that precedes any consolidation geometry check, analogous to the uptrend gate in the asymmetric R:R dip framework.-0
TCLBClassic-quiet immediate-entry controlT_CQ_LBO_BASEticker recent patterntriggerT_CQ_LBO_BASEThe frozen classic-quiet arm enters without a daily timing delay.-27.8%731
TCL1Classic-quiet broad first breakoutT_CQ_LBO_BROAD_BOticker recent patterntriggerT_CQ_LBO_BROAD_BOThe first completed close above the prior 20-session closing high occurs within 40 armed sessions.-24.2%502
T104Ten-session large-breakout full forecastT_CQ_LBO_FULL_H10_Q80ticker recent patterntriggerT_CQ_LBO_FULL_H10_Q80The causal full-model score is above the training 80th percentile for a large accepted breakout within ten sessions.-30.9%418
T58CFive-session large-breakout full forecastT_CQ_LBO_FULL_H5_Q80ticker recent patterntriggerT_CQ_LBO_FULL_H5_Q80The causal full-model score is above the training 80th percentile for a large accepted breakout within five sessions.-27.0%500
T105Ten-session large-breakout proximity forecastT_CQ_LBO_PROXIMITY_H10_Q80ticker recent patterntriggerT_CQ_LBO_PROXIMITY_H10_Q80The causal proximity-model score is above the training 80th percentile for a large accepted breakout within ten sessions.-28.7%486
T581Five-session large-breakout proximity forecastT_CQ_LBO_PROXIMITY_H5_Q80ticker recent patterntriggerT_CQ_LBO_PROXIMITY_H5_Q80The causal proximity-model score is above the training 80th percentile for a large accepted breakout within five sessions.-26.7%545
TCLSClassic-quiet small controlled breakoutT_CQ_LBO_SMALL_BOticker recent patterntriggerT_CQ_LBO_SMALL_BOThe first breakout is no more than 0.5 ATR above its pivot and its daily range is no more than 1.5 ATR.-36.1%175
T5NXNo 5-day chaseT_NO_CHASE_5Dticker recent patterntrigger5D return <= 8%5-day return <= 8%. Avoid entries after the stock has already run up significantly.-0
TPDMMaximum distance above pivotT_PIVOT_DISTANCE_MAXticker recent patterntriggerpivot_distance_pct = close[t] / pivot_price - 1; pivot_distance_atr = (close[t] - pivot_price) / signal_atr20; require close[t] >= pivot_price AND distance(mode) <= max_distanceRejects signal-day closes that have moved too far above the stored breakout pivot. Percentage and ATR-normalised distances are separate variants, never an OR condition.-0
TTBXTriangle resistance breakout triggerT_TRIANGLE_BREAKOUTticker recent patterntriggerT_TRIANGLE_CONSOLIDATION AND close[t] > res_slope*t + res_intercept AND body_strength >= 0.5 AND (high-low) <= 2*atr20Trigger for the triangle consolidation: close breaks above the swing-fitted resistance line with a strong body ((close-open)/(high-low) >= 0.5) and a controlled range (<= 2x ATR20). The EMA21 breach count is exported as tri_ema21_breaches so the sweep can test tolerance (0 = strict no-breach, <=1 = allow one wick, etc.) crossed with tri_sup_slope_pct > 0 (support trend still rising). The initial impulse strength (ROC at CML arming) is exported as tri_cml_arm_roc so thresholds like >= 0.1 can be tested. The stop is the entry-day low (stop_type = breakout_low). Candle anatomy and flag quality metrics are exported as continuous features for entry-quality measurement.-0.2%10,645
TTCXTriangle consolidation with fitted geometryT_TRIANGLE_CONSOLIDATIONticker recent patterntriggerorigin = argmax high[t-60:t-1]; hold_frac(close >= ema21*0.99) >= 0.8 over [origin, t-1]; any low <= ema8 in window; res = linreg(swing highs, order 2); sup = linreg(swing lows, order 2); sup_slope > 0A valid consolidation is present: anchored at the first-leg high (highest high of the last 10-60 bars), price holds EMA21 on at least 80% of bars, touches EMA8 at least once, and both the swing-high resistance line and swing-low support line are fittable (>= 2 swings each) with the support line sloping upward (higher lows). The raw geometry (res/sup R^2, slopes, days-to-apex) is exported as continuous features for threshold search; this atom only asserts that the geometry exists.-0.1%4,546
TVCXVolume confirmationT_VOLUME_CONFIRMticker recent patterntriggerVolume > Prior 20D avg volumeBreakout volume is above recent average. Demand confirmation on the breakout entry.-0
T10WWide-base ten-session full forecastT_WIDE_LBO_FULL_H10_Q80ticker recent patterntriggerT_WIDE_LBO_FULL_H10_Q80The full causal score is above its training 80th percentile for a durable breakout within ten sessions.-11.1%2,036
T58WWide-base five-session full forecastT_WIDE_LBO_FULL_H5_Q80ticker recent patterntriggerT_WIDE_LBO_FULL_H5_Q80The full causal score is above its training 80th percentile for a durable breakout within five sessions.-10.8%2,390
T106Wide-base ten-session proximity forecastT_WIDE_LBO_PROXIMITY_H10_Q80ticker recent patterntriggerT_WIDE_LBO_PROXIMITY_H10_Q80The pivot-proximity score is above its causal training 80th percentile.-11.7%2,458
T582Wide-base five-session proximity forecastT_WIDE_LBO_PROXIMITY_H5_Q80ticker recent patterntriggerT_WIDE_LBO_PROXIMITY_H5_Q80The pivot-proximity score is above its causal training 80th percentile.-11.7%2,467
T451Recent markup break nowcast top 5%T_BREAK_NOWCAST_4W_TOP_5ticker recent patterntrimT_BREAK_NOWCAST_4W_TOP_5Frozen OOS probability that a stable markup break began in the prior four weeks ranks in the global weekly top 5%. Raw 25% and 50% trims failed Stage 3 on K1/D126.-0
T452Recent markup break nowcast top 5%, price confirmedT_BREAK_NOWCAST_4W_TOP_5_CONFIRMEDticker recent patterntrimT_BREAK_NOWCAST_4W_TOP_5_CONFIRMEDTop-5% recent-break nowcast combined with MA50 loss and negative 20-session slope. The 25% trim remains a research challenger after only 12 concentrated Stage 3 events.-0
TBPCMarkup break price confirmationT_BREAK_PRICE_CONFIRMEDticker recent patterntrimT_BREAK_PRICE_CONFIRMEDTicker is below MA50 and its 20-session log-price slope is negative on the frozen weekly break-model observation. Stage 3 model-free trim comparator.-0
R3T2Ticker/sector HMM chaosR_TICKER_SECTOR_HMM3_CHAOSticker relative hmm regimeblockerTicker/sector HMM chaos == high-volatility chaoticPoint-in-time 3-state HMM assigns the ticker versus sector relative-strength line to a high-volatility chaotic relative state.-0
R3T3Ticker/sector HMM lagR_TICKER_SECTOR_HMM3_LAGticker relative hmm regimeblockerTicker/sector HMM lag == negative laggingPoint-in-time 3-state HMM assigns the ticker versus sector relative-strength line to a negative lagging state.-0
R5TXTicker/sector HMM chaosR_TICKER_SECTOR_HMM5_CHAOSticker relative hmm regimeblockerTicker/sector HMM chaos == high-volatility chaoticPoint-in-time 5-state HMM assigns the ticker versus sector relative-strength line to a high-volatility chaotic relative state.-0
R5T1Ticker/sector HMM lag driftR_TICKER_SECTOR_HMM5_LAG_DRIFTticker relative hmm regimeblockerTicker/sector HMM lag drift == negative low-volatility driftPoint-in-time 5-state HMM assigns the ticker versus sector relative-strength line to a negative low-volatility drift state.-0
R5T2Ticker/sector HMM lag trendR_TICKER_SECTOR_HMM5_LAG_TRENDticker relative hmm regimeblockerTicker/sector HMM lag trend == persistent negativePoint-in-time 5-state HMM assigns the ticker versus sector relative-strength line to a persistent negative relative trend state.-0
R3T4Ticker/sector HMM leadR_TICKER_SECTOR_HMM3_LEADticker relative hmm regimecontextTicker/sector HMM lead == positive leadershipPoint-in-time 3-state HMM assigns the ticker versus sector relative-strength line to a positive leadership state.-0
R5T3Ticker/sector HMM lead driftR_TICKER_SECTOR_HMM5_LEAD_DRIFTticker relative hmm regimecontextTicker/sector HMM lead drift == positive low-volatility driftPoint-in-time 5-state HMM assigns the ticker versus sector relative-strength line to a positive low-volatility drift state.-0
R5T4Ticker/sector HMM lead trendR_TICKER_SECTOR_HMM5_LEAD_TRENDticker relative hmm regimecontextTicker/sector HMM lead trend == configured_statePoint-in-time 5-state HMM assigns the ticker versus sector relative-strength line to a positive directional leadership state.-0
R11X1-month returnret_1mticker returnfeature1-month return == observedRaw ticker 21-day simple return.-0
R33X3-month returnret_3mticker returnfeature3-month return == observedRaw ticker 63-day simple return.-0
T221Above EMA200T_ABOVE_EMA200ticker trendcontextclose[t] > ema(close, 200)[t]Ticker close is above the 200-day exponential moving average.-0
T21AAbove EMA21T_ABOVE_EMA21ticker trendcontextclose[t] > ema(close, 21)[t]Ticker close is above the 21-day exponential moving average. Short-term trend positive.-0
T50AAbove EMA50T_ABOVE_EMA50ticker trendcontextClose > 50D EMATicker is trading above its 50-day exponential moving average.-0
T8AXAbove EMA8T_ABOVE_EMA8ticker trendcontextClose > 8D EMATicker is trading above its 8-day exponential moving average. Short-term strength.-0
T501Above MA50T_ABOVE_MA50ticker trendcontextClose > 50D SMATicker is trading above its 50-day moving average. Uptrend context.-0
TESBEMA stack bullishT_EMA_STACK_BULLticker trendcontextclose[t] > ema(close, 8)[t] > ema(close, 21)[t] > ema(close, 50)[t] > ema(close, 200)[t]Price above EMA8 > EMA21 > EMA50 > EMA200. Full bullish EMA stack.-0
TMSBMA stack bullishT_MA_STACK_BULLticker trendcontextsma(close, 10)[t] > sma(close, 20)[t] > sma(close, 50)[t] > sma(close, 200)[t]MA10 > MA20 > MA50 > MA200. Full bullish moving average stack confirms structural uptrend.-0
AABXAdd breakoutA_ADD_BREAKOUTtrade managementaddAdd breakout == trueAdd on breakout after initial entry.-0
AAPHAdd pullback holdA_ADD_PULLBACK_HOLDtrade managementaddAdd pullback hold == trueAdd when pullback holds support.-0
AARCAdd RS confirmationA_ADD_RS_CONFIRMtrade managementaddAdd RS confirmation == trueAdd when ticker or sector relative strength confirms.-0
AAVRAdd VCP reloadA_ADD_VCP_RELOADtrade managementaddAdd VCP reload == trueAdd on a later VCP setup.-0
ANXXNo addA_NONEtrade managementaddNo add == trueNo additional buys after initial entry.-0
X22X2R profit targetX_2R_TARGETtrade managementexitX_2R_TARGETTrim at entry + 2*risk (where risk = entry - initial stop). R-multiple based profit target.-0.9%827
X44X4 consecutive green candle signalX_4GC_SIGNALtrade managementexitX_4GC_SIGNALTrim when 4 consecutive bars have close > previous close. Momentum signal for second-stage trim.-0
X4GX4 consecutive green candles exitX_4_GREEN_CANDLEStrade managementexitcount(close[t-i] > close[t-i-1] for i in 0..3) >= 4Exit long after 4 consecutive higher closing days (momentum exhaustion).-0
XBBXSubsequent base breakdown exitX_BASE_BREAKDOWNtrade managementexitclose[t] < prior_base_low(lookback_days)[t] - buffer_atr * atr20 for confirm_daysExit a winner when price closes below the lower boundary of its later rolling base.-0
XBEXBearish engulfing exitX_BEARISH_ENGULFINGtrade managementexitclose[t] < open[t] AND open[t] > close[t-1] AND close[t] < open[t-1] AND close[t-1] > open[t-1]Exit long on bearish engulfing candlestick pattern.-0
XBUXUpper Bollinger Band exitX_BOLLINGER_UPPERtrade managementexitclose[t] > sma(close, 20)[t] + 2 * stddev(close, 20)[t]Exit long when price closes above 20-day upper Bollinger Band.-0
XBBRFailed breakout base re-entryX_BREAKOUT_BASE_REENTRYtrade managementexitdays_since_entry <= max_age_days AND close[t] < pivot - buffer_atr * atr20Trim or exit when price closes back below the stored breakout pivot soon after entry.-0
XBDRBX Trender dark red (regime change)X_BX_DARK_REDtrade managementexitbx[t] < 0 AND slope(bx, slope_days)[t] < 0 for confirm_days consecutive sessionsBX is negative AND declining — institutional buying pressure is gone, sellers in control, and conditions are worsening. This is NOT the same as BX < 0: a negative-but-rising BX (light red) is still a valid bull-cycle state. Dark red = BX < 0 AND slope(BX) < 0. Exit all longs immediately.-0
X21EEarly EMA21 exitX_EARLY_EMA21trade managementexitX_EARLY_EMA21Exit on close < EMA21 before first trim fires. Catches failed breakouts that never reach the first profit target.-0
X10E10-day EMA trailing exitX_EMA10_TRAILtrade managementexitclose[t] < ema(close, 10)[t]Exit long when price closes below 10-day EMA.-0
X211EMA21-ATR fixed stop (set-once)X_EMA21_ATR_FIXEDtrade managementexitX_EMA21_ATR_FIXEDInitial stop = EMA(21) - 0.25*ATR(14), set once at entry. Non-trailing; stop only moves when a trim target or signal fires.-0
X212EMA21 trail exitX_EMA21_TRAILtrade managementexittrend_filter == trueExit on close < EMA21. Medium-term trend trail. Pairs with X_HOLD_MIN_D63 for 3-month hold-then-trail.-0.9%827
X50EEMA50 trail exitX_EMA50_TRAILtrade managementexittrend_filter == trueExit on close < EMA50. Slow trail for long-term trend following. Wider room, fewer whipsaws.-0
X8EXEMA8 trail exitX_EMA8_TRAILtrade managementexittrend_filter == trueExit on close < EMA8. Fast trail for runner positions or short-term trend following.-0.9%827
X101Episodic event EMA10 runner exitX_EVENT_RUNNER_EMA10trade managementexitexit remaining position when close[t] < ema(close, 10)[t] OR days_since_entry >= max_hold_daysTrail the retained runner using a close below EMA10, subject to a maximum campaign horizon.-0
X1FXExit 1MX_FIXED_1Mtrade managementexitExit 1M >= 21 barsExit after 1 month.-0
X3FXExit 3MX_FIXED_3Mtrade managementexitExit 3M >= 63 barsExit after 3 months.-0
X6FXExit 6MX_FIXED_6Mtrade managementexitExit 6M >= 126 barsExit after 6 months.-0
XFBXPrice closed below FV lower bandX_FV_BREAKDOWNtrade managementexitclose[t] < fv_lower[t] for confirm_days consecutive sessionsPrice closes below the FV lower band (SMA of low, period). Structure is broken — the fair value ribbon has turned red. Secondary exit independent of BX.-0
X1F1Price reached X1 deviation band (moderate overextension)X_FV_X1_TRIMtrade managementexitclose[t] >= fv_basis[t] + atr_mult * atr_wilder(atr_period, weekly)[t]Price has reached the X1 deviation level — the first overextension rail above the FV ribbon. X1 = fv_basis + atr_mult * ATR_Wilder(atr_period, weekly). Confirmed via reverse-engineering on SPY/NVDA weekly data (CV of k = 1.12% across 3 equity points). This is a moderate trim signal: take partial profit while letting the remainder ride the regime.-0
X2FXPrice reached X2 deviation band (severe overextension)X_FV_X2_TRIMtrade managementexitclose[t] >= fv_basis[t] + 2 * atr_mult * atr_wilder(atr_period, weekly)[t]Price has reached the X2 deviation level — the second overextension rail. X2 = fv_basis + 2 * atr_mult * ATR_Wilder(atr_period, weekly). The ladder structure (X2 - basis = 2 * (X1 - basis)) was confirmed to <0.6% on all measured data points. This is a stronger trim or full exit: the move is severely overextended relative to fair value.-0
X10HHold minimum 10 daysX_HOLD_MIN_D10trade managementexittrend_filter == trueTime gate: no trend exit before 10 trading days. Compose with an EMA trail atom.-0.9%827
X12HHold minimum 126 daysX_HOLD_MIN_D126trade managementexittrend_filter == trueTime gate: no trend exit before 126 trading days (6 months). Long-hold runner strategies.-0
X21HHold minimum 21 daysX_HOLD_MIN_D21trade managementexittrend_filter == trueTime gate: no trend exit before 21 trading days (1 month). Compose with an EMA trail atom.-0
X5HXHold minimum 5 daysX_HOLD_MIN_D5trade managementexittrend_filter == trueTime gate: no trend exit before 5 trading days. Compose with an EMA trail atom.-0.1%4,546
X63HHold minimum 63 daysX_HOLD_MIN_D63trade managementexittrend_filter == trueTime gate: no trend exit before 63 trading days (3 months). Compose with an EMA trail atom.-0
XMBXMarket bear exitX_MARKET_BEARtrade managementexitMarket bear exit == bearExit or de-risk on bear regime.-0
X20MMA 20/50 crossover exitX_MA_CROSS_20_50trade managementexitsma(close, 20)[t] < sma(close, 50)[t] AND sma(close, 20)[t-1] >= sma(close, 50)[t-1]Exit long when 20-day SMA crosses below 50-day SMA.-0
XNPXEarly no-progress exitX_NO_PROGRESStrade managementexitdays_since_entry >= evaluation_day AND close[t] / entry_price - 1 < min_returnExit when a new position has failed to achieve a minimum return by a configured holding day.-0
XPSXParabolic SAR exitX_PARABOLIC_SARtrade managementexitclose[t] < psar[t]Exit long when price closes below the Parabolic SAR dot.-0
X14RRSI(14) overbought exitX_RSI14_70trade managementexitrsi(close, 14)[t] >= 70Exit long when RSI(14) reaches 70 (overbought). Pairs with RSI oversold entry.-0
XRBXRelative strength breakX_RS_BREAKtrade managementexitRelative strength break == trueExit on ticker-sector or ticker-SPY relative strength break.-0
XRRXRelative-strength rollover exitX_RS_ROLLOVERtrade managementexitlinreg_slope(log(close[ticker] / close[benchmark]), slope_days) < 0 for confirm_daysExit after ticker relative strength versus SPY or its group develops a confirmed negative slope.-0
XSDXScore decay exitX_SCORE_DECAYtrade managementexitScore decay exit == trueExit when selection or entry score decays.-0
XSBXSector breakX_SECTOR_BREAKtrade managementexitSector break == trueExit when sector trend or relative strength fails.-0
X21SSnapshot EMA21-ATR stop actionX_SNAPSHOT_EMA21_ATRtrade managementexitrelative_regime == hotAt trim time, set stop to max(breakeven, EMA(21) - 0.25*ATR(14)), capped at first target price. Non-trailing, ratchets up only.-0
XSOXStop only exitX_STOP_ONLYtrade managementexitStop only exit == trueExit only by stop or explicit risk rule.-0.1%4,546
X5TX5% profit targetX_TARGET_5PCTtrade managementexitclose[t] >= entry_price * 1.05Close trade when 5% gain is reached.-0
X5T15-day time exitX_TIME_5Dtrade managementexitexit when bars_since_entry >= 5Exit all trades after exactly 5 trading days.-0
X25TBreak-even trailing stop (2%/5%)X_TRAIL_2PCT_5PCTtrade managementexitif max_close_since_entry >= entry * 1.02 then stop = max_high_since_entry * 0.95After 2% gain, trail stop 5% behind highest price since entry.-0.9%827
E20MMA 20/50 crossover entryE_MA_CROSS_20_50trend followingtriggersma(close, 20)[t] > sma(close, 50)[t] AND sma(close, 20)[t-1] <= sma(close, 50)[t-1]20-day SMA crosses above 50-day SMA (golden cross). Long entry signal.-0
PTMRTrim market riskP_TRIM_MARKET_RISKtrimblockerTrim market risk == trueTrim if broad market risk rises.-0
PESTEarly strength partial trimP_EARLY_STRENGTH_TRIMtrimtrimif days_since_entry <= max_days AND gain >= target_gain then trim trim_fractionTrim most of the position into an early gain while retaining a minority runner. Exploratory 80/20 management hypothesis.-0
PNXXNo trimP_NONEtrimtrimNo trim == trueNo partial trims.-0
P25TTrim 25% at +20%P_TRIM_25_AT_20trimtrimTrim 25% at +20% >= 20%Trim 25% of position after 20% gain.-0
P33TTrim 33% at +50%P_TRIM_33_AT_50trimtrimTrim 33% at +50% >= 50%Trim one-third of position after 50% gain.-0
PTEXTrim extensionP_TRIM_EXTENSIONtrimtrimTrim extension == trueTrim on MA or RSI extension.-0
PTLXTrim LPPL riskP_TRIM_LPPLtrimtrimTrim LPPL risk == trueTrim on high LPPL risk.-0
PTSRTrim sector rolloverP_TRIM_SECTOR_ROLLOVERtrimtrimTrim sector rollover == trueTrim if sector relative strength rolls over.-0
TVPAPrior advance random-window percentileT_VCP_PRIOR_ADVANCE_PCTLvcp contractioncontextT_VCP_PRIOR_ADVANCE_PCTLPercentile of advance from the prior equal-duration low to the base start among ungated windows in the same duration band.-0
TVP1VCP any prior uptrendT_VCP_PRIOR_ANY_UPTRENDvcp contractioncontexttrend_filter == trueThe structural, efficient-impulse, or leader-position prior-uptrend condition is true at the close before the candidate base starts.-0
TVPEVCP prior efficient impulseT_VCP_PRIOR_EFFICIENT_IMPULSEvcp contractioncontextT_VCP_PRIOR_EFFICIENT_IMPULSEAt the close before the candidate base starts, the 63-session return is at least 10%, path efficiency is at least 0.30, and drawdown from the 63-session high is no more than 15%.-0
TVPLVCP prior leader positionT_VCP_PRIOR_LEADER_POSITIONvcp contractioncontextT_VCP_PRIOR_LEADER_POSITIONAt the close before the candidate base starts, price is at least 30% above its 252-session low, within 25% of its 252-session high, and has positive 126-session excess return versus SPY.-0
TVPSVCP prior structural uptrendT_VCP_PRIOR_STRUCTURAL_UPTRENDvcp contractioncontexttrend_filter == trueAt the close before the candidate base starts, price is above MA50, MA50 is above MA200, and the 20-session MA50 slope is positive.-0
TVCPBase close position random-window percentileT_VCP_CLOSE_POSITION_PCTLvcp contractionsetupT_VCP_CLOSE_POSITION_PCTLPercentile of last pre-breakout close position in the full base range among ungated windows in the same duration band.-0
TVCSBase close slope random-window percentileT_VCP_CLOSE_SLOPE_ATR_PCTLvcp contractionsetupT_VCP_CLOSE_SLOPE_ATR_PCTLPercentile of fitted close slope per session divided by ATR20 among ungated windows in the same duration band.-0
TVDPBase depth random-window percentileT_VCP_DEPTH_PCTLvcp contractionsetupT_VCP_DEPTH_PCTLPercentile of full high-low depth among ungated windows in the same duration band.-0
TVGTBase gap share random-window percentileT_VCP_GAP_TR_SHARE_PCTLvcp contractionsetupT_VCP_GAP_TR_SHARE_PCTLPercentile of absolute opening gaps as a share of total base true range among ungated windows in the same duration band.-0
TVHLBase higher-low fraction random-window percentileT_VCP_HIGHER_LOW_FRACTION_PCTLvcp contractionsetupT_VCP_HIGHER_LOW_FRACTION_PCTLPercentile of share of adjacent five-block lows that rise among ungated windows in the same duration band.-0
TVHSBase high slope random-window percentileT_VCP_HIGH_SLOPE_ATR_PCTLvcp contractionsetupT_VCP_HIGH_SLOPE_ATR_PCTLPercentile of fitted high slope per session divided by ATR20 among ungated windows in the same duration band.-0
TVLTBase large-range concentration random-window percentileT_VCP_LARGE_TR_SHARE_PCTLvcp contractionsetupT_VCP_LARGE_TR_SHARE_PCTLPercentile of two largest true ranges as a share of total base true range among ungated windows in the same duration band.-0
TVLHBase lower-high fraction random-window percentileT_VCP_LOWER_HIGH_FRACTION_PCTLvcp contractionsetupT_VCP_LOWER_HIGH_FRACTION_PCTLPercentile of share of adjacent five-block highs that fall among ungated windows in the same duration band.-0
TVLSBase low slope random-window percentileT_VCP_LOW_SLOPE_ATR_PCTLvcp contractionsetupT_VCP_LOW_SLOPE_ATR_PCTLPercentile of fitted low slope per session divided by ATR20 among ungated windows in the same duration band.-0
TVMCBase midpoint-cross rate random-window percentileT_VCP_MIDPOINT_CROSS_RATE_PCTLvcp contractionsetupT_VCP_MIDPOINT_CROSS_RATE_PCTLPercentile of close crossings through the full-base midpoint per session among ungated windows in the same duration band.-0
TVPCBase path churn random-window percentileT_VCP_PATH_CHURN_PCTLvcp contractionsetupT_VCP_PATH_CHURN_PCTLPercentile of total absolute close path divided by full base range among ungated windows in the same duration band.-0
TVRFBase reversal fraction random-window percentileT_VCP_REVERSAL_FRACTION_PCTLvcp contractionsetupT_VCP_REVERSAL_FRACTION_PCTLPercentile of share of sessions where the close-change sign reverses among ungated windows in the same duration band.-0
TVSEBase signed efficiency random-window percentileT_VCP_SIGNED_EFFICIENCY_PCTLvcp contractionsetupT_VCP_SIGNED_EFFICIENCY_PCTLPercentile of net close change divided by total absolute close path among ungated windows in the same duration band.-0
TVTRBase terminal-range ratio random-window percentileT_VCP_TERMINAL_RANGE_RATIO_PCTLvcp contractionsetupT_VCP_TERMINAL_RANGE_RATIO_PCTLPercentile of terminal-quarter range divided by first-half range among ungated windows in the same duration band.-0
T2VXBase trend fit random-window percentileT_VCP_TREND_R2_PCTLvcp contractionsetuptrend_filter == truePercentile of close-on-time regression R squared among ungated windows in the same duration band.-0
TVTHBase true-range half ratio random-window percentileT_VCP_TR_HALF_RATIO_PCTLvcp contractionsetupT_VCP_TR_HALF_RATIO_PCTLPercentile of second-half mean true range divided by first-half mean true range among ungated windows in the same duration band.-0
TVVHBase volume half ratio random-window percentileT_VCP_VOLUME_HALF_RATIO_PCTLvcp contractionsetupT_VCP_VOLUME_HALF_RATIO_PCTLPercentile of second-half mean volume divided by first-half mean volume among ungated windows in the same duration band.-0
TVVTBase volume trend random-window percentileT_VCP_VOLUME_TREND_TOTAL_PCTLvcp contractionsetuptrend_filter == truePercentile of fitted total log-volume change across the base among ungated windows in the same duration band.-0
TVWSBase width slope random-window percentileT_VCP_WIDTH_SLOPE_ATR_PCTLvcp contractionsetupT_VCP_WIDTH_SLOPE_ATR_PCTLPercentile of fitted five-block high-low width slope divided by ATR20 among ungated windows in the same duration band.-0
T60GGap activity 60DT_GAP_ACTIVITY_60DvolatilitysetupGap activity 60D >= 2At least 2 gap moves in the trailing 60 days. Indicates institutional activity or news catalysts.-0
THAXHigh ADRT_HIGH_ADRvolatilitysetupATR20 / close >= 2%Average daily range (ATR as % of price) >= 2%. Enough volatility to pay for the risk of the trade.-0
ENRBNarrowest range breakout upE_NARROW_RANGE_BREAKOUT_UPvolatility expansiontriggerrange[t-1] = min(range[t-7..t-1]) AND close[t] > high[t-1]Upward breakout following the narrowest daily range of the last 7 days.-0
TGVEGARCH volatility expansion gateT_GARCH_VOL_EXPANSIONvolatility forecastcontextgarch_vol_forecast[t] >= thresholdGARCH(1,1) forecasted true range / price >= threshold. Binary regime gate: forecasted vol above threshold means conditions are active for breakout follow-through; below threshold means stay out. A breakout strategy needs volatility expansion — without it, the setup can look perfect and still go nowhere. This gate filters out breakouts that occur when GARCH forecasts low next-period volatility.-0
TGVFGARCH(1,1) forecasted true rangeT_GARCH_VOL_FORECASTvolatility forecastcontextlog_tr = log(true_range[t] + epsilon); demeaned = log_tr - SMA(log_tr, trailing_window); fit GARCH(1,1) on demeaned[t-fit_window:t]; forecast = exp(sigma2[t+1] + SMA(log_tr, trailing_window)); garch_vol_forecast = forecast / close[t]GARCH(1,1) one-step-ahead forecast of daily True Range, as a percentage of price. The forecast is computed on log-transformed, demeaned True Range to handle skew and isolate the volatility signal. Unlike T_HIGH_ADR (which measures current ATR level), this forecasts next-period volatility using the GARCH volatility-clustering model.-0
EBBUUpper Bollinger Band breakoutE_BOLLINGER_BREAKOUT_UPvolatility momentumtriggerclose[t] > sma(close, 20)[t] + 2 * stddev(close, 20)[t]Close above 20-day upper Bollinger Band (2 std dev). Volatility momentum entry.-0
T20UUp-volume 20D strongT_UPVOL_20D_STRONGvolumecontextUp-volume 20D strong >= 60%Up-day volume ratio over 20 days >= 60%. Buying pressure dominates selling pressure.-0
T20W20-week EMA slope upT_WSUP_EMA20_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_EMA20_SLOPE_UP_4WThe 20-week EMA is above its value four completed weeks earlier.-0
T33W33-week EMA slope upT_WSUP_EMA33_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_EMA33_SLOPE_UP_4WThe 33-week EMA is above its value four completed weeks earlier.-0
T222Market above rising weekly MA20T_WSUP_MARKET_ABOVE_RISING_MA20Wweekly support pullbackcontextT_WSUP_MARKET_ABOVE_RISING_MA20WThe completed weekly market close is above MA20, and MA20 is above its value four completed weeks earlier.-0
T321Market above rising weekly MA33T_WSUP_MARKET_ABOVE_RISING_MA33Wweekly support pullbackcontextT_WSUP_MARKET_ABOVE_RISING_MA33WThe completed weekly market close is above MA33, and MA33 is above its value four completed weeks earlier.-0
T32233-week power VWAP slope upT_WSUP_PVWAP33_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_PVWAP33_SLOPE_UP_4WThe 33-week power VWAP is above its value four completed weeks earlier.-0
T223Sector above rising weekly MA20T_WSUP_SECTOR_ABOVE_RISING_MA20Wweekly support pullbackcontextT_WSUP_SECTOR_ABOVE_RISING_MA20WThe completed weekly sector close is above MA20, and MA20 is above its value four completed weeks earlier.-0
T323Sector above rising weekly MA33T_WSUP_SECTOR_ABOVE_RISING_MA33Wweekly support pullbackcontextT_WSUP_SECTOR_ABOVE_RISING_MA33WThe completed weekly sector close is above MA33, and MA33 is above its value four completed weeks earlier.-0
T22420-week SMA slope upT_WSUP_SMA20_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_SMA20_SLOPE_UP_4WThe 20-week SMA is above its value four completed weeks earlier.-0
T32433-week SMA slope upT_WSUP_SMA33_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_SMA33_SLOPE_UP_4WThe 33-week SMA is above its value four completed weeks earlier.-0
T225Ticker above rising weekly MA20T_WSUP_TICKER_ABOVE_RISING_MA20Wweekly support pullbackcontextT_WSUP_TICKER_ABOVE_RISING_MA20WThe completed weekly ticker close is above MA20, and MA20 is above its value four completed weeks earlier.-0
T325Ticker above rising weekly MA33T_WSUP_TICKER_ABOVE_RISING_MA33Wweekly support pullbackcontextT_WSUP_TICKER_ABOVE_RISING_MA33WThe completed weekly ticker close is above MA33, and MA33 is above its value four completed weeks earlier.-0
T22620-week VWAP slope upT_WSUP_VWAP20_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_VWAP20_SLOPE_UP_4WThe 20-week VWAP is above its value four completed weeks earlier.-0
T32633-week VWAP slope upT_WSUP_VWAP33_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_VWAP33_SLOPE_UP_4WThe 33-week VWAP is above its value four completed weeks earlier.-0
T22720-week VWMA slope upT_WSUP_VWMA20_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_VWMA20_SLOPE_UP_4WThe 20-week VWMA is above its value four completed weeks earlier.-0
T32733-week VWMA slope upT_WSUP_VWMA33_SLOPE_UP_4Wweekly support pullbackcontextT_WSUP_VWMA33_SLOPE_UP_4WThe 33-week VWMA is above its value four completed weeks earlier.-0
TWAAAny actual support touchT_WSUP_ANY_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_ANY_ACTUAL_TOUCHAt least one touched support line intersects the completed weekly range.-0
TWACAny green support confirmationT_WSUP_ANY_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_ANY_CONFIRM_GREENA later support confirmation occurs on a green completed weekly candle.-0
TWAHAny weekly support holdT_WSUP_ANY_HOLDweekly support pullbackentry_contextT_WSUP_ANY_HOLDAt least one touched line is held by the weekly close.-0
TWANAny near-above support approachT_WSUP_ANY_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_ANY_NEAR_ABOVEAt least one support line is approached from above within 0.5 weekly ATR13 without a range intersection.-0
TWATAny green support-touch weekT_WSUP_ANY_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_ANY_TOUCH_GREENA support touch occurs on a green completed weekly candle.-0
TWAUAny weekly support undercutT_WSUP_ANY_UNDERCUTweekly support pullbackentry_contextT_WSUP_ANY_UNDERCUTThe weekly close is below at least one touched line.-0
TWAWAny weekly support wick reclaimT_WSUP_ANY_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_ANY_WICK_RECLAIMAt least one touched line is swept by the weekly low and reclaimed by the close.-0
T2WXTwo-line support-confirmation confluenceT_WSUP_CONFIRM_CONFLUENCE_2weekly support pullbackentry_contextT_WSUP_CONFIRM_CONFLUENCE_2At least two tested support lines confirm in the same completed week.-0
T22820-week EMA actual touchT_WSUP_EMA20_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_EMA20_ACTUAL_TOUCHThe touch-week range intersects the 20-week EMA.-0
T22920-week EMA green confirmationT_WSUP_EMA20_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_EMA20_CONFIRM_GREENThe 20-week EMA confirmation week also closes above its weekly open.-0
T23020-week EMA weekly holdT_WSUP_EMA20_HOLDweekly support pullbackentry_contextT_WSUP_EMA20_HOLDThe touch week closes at or above the 20-week EMA.-0
T23120-week EMA near-above approachT_WSUP_EMA20_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_EMA20_NEAR_ABOVEThe touch-week low remains above the 20-week EMA, but is no more than 0.5 weekly ATR13 above it.-0
T23220-week EMA green touch weekT_WSUP_EMA20_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_EMA20_TOUCH_GREENThe touch week closes above its weekly open.-0
T23320-week EMA weekly undercutT_WSUP_EMA20_UNDERCUTweekly support pullbackentry_contextT_WSUP_EMA20_UNDERCUTThe touch week closes below the 20-week EMA.-0
T23420-week EMA wick reclaimT_WSUP_EMA20_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_EMA20_WICK_RECLAIMThe touch-week low is below the 20-week EMA, and its close is at or above the line.-0
T32833-week EMA actual touchT_WSUP_EMA33_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_EMA33_ACTUAL_TOUCHThe touch-week range intersects the 33-week EMA.-0
T32933-week EMA green confirmationT_WSUP_EMA33_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_EMA33_CONFIRM_GREENThe 33-week EMA confirmation week also closes above its weekly open.-0
T33033-week EMA weekly holdT_WSUP_EMA33_HOLDweekly support pullbackentry_contextT_WSUP_EMA33_HOLDThe touch week closes at or above the 33-week EMA.-0
T34033-week EMA near-above approachT_WSUP_EMA33_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_EMA33_NEAR_ABOVEThe touch-week low remains above the 33-week EMA, but is no more than 0.5 weekly ATR13 above it.-0
T34133-week EMA green touch weekT_WSUP_EMA33_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_EMA33_TOUCH_GREENThe touch week closes above its weekly open.-0
T34233-week EMA weekly undercutT_WSUP_EMA33_UNDERCUTweekly support pullbackentry_contextT_WSUP_EMA33_UNDERCUTThe touch week closes below the 33-week EMA.-0
T34333-week EMA wick reclaimT_WSUP_EMA33_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_EMA33_WICK_RECLAIMThe touch-week low is below the 33-week EMA, and its close is at or above the line.-0
T34433-week power VWAP actual touchT_WSUP_PVWAP33_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_PVWAP33_ACTUAL_TOUCHThe touch-week range intersects the 33-week power VWAP.-0
T34533-week power VWAP green confirmationT_WSUP_PVWAP33_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_PVWAP33_CONFIRM_GREENThe 33-week power VWAP confirmation week also closes above its weekly open.-0
T34633-week power VWAP weekly holdT_WSUP_PVWAP33_HOLDweekly support pullbackentry_contextT_WSUP_PVWAP33_HOLDThe touch week closes at or above the 33-week power VWAP.-0
T34733-week power VWAP near-above approachT_WSUP_PVWAP33_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_PVWAP33_NEAR_ABOVEThe touch-week low remains above the 33-week power VWAP, but is no more than 0.5 weekly ATR13 above it.-0
T34833-week power VWAP green touch weekT_WSUP_PVWAP33_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_PVWAP33_TOUCH_GREENThe touch week closes above its weekly open.-0
T34933-week power VWAP weekly undercutT_WSUP_PVWAP33_UNDERCUTweekly support pullbackentry_contextT_WSUP_PVWAP33_UNDERCUTThe touch week closes below the 33-week power VWAP.-0
T35033-week power VWAP wick reclaimT_WSUP_PVWAP33_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_PVWAP33_WICK_RECLAIMThe touch-week low is below the 33-week power VWAP, and its close is at or above the line.-0
T23520-week SMA actual touchT_WSUP_SMA20_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_SMA20_ACTUAL_TOUCHThe touch-week range intersects the 20-week SMA.-0
T23620-week SMA green confirmationT_WSUP_SMA20_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_SMA20_CONFIRM_GREENThe 20-week SMA confirmation week also closes above its weekly open.-0
T23720-week SMA weekly holdT_WSUP_SMA20_HOLDweekly support pullbackentry_contextT_WSUP_SMA20_HOLDThe touch week closes at or above the 20-week SMA.-0
T23820-week SMA near-above approachT_WSUP_SMA20_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_SMA20_NEAR_ABOVEThe touch-week low remains above the 20-week SMA, but is no more than 0.5 weekly ATR13 above it.-0
T23920-week SMA green touch weekT_WSUP_SMA20_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_SMA20_TOUCH_GREENThe touch week closes above its weekly open.-0
T24020-week SMA weekly undercutT_WSUP_SMA20_UNDERCUTweekly support pullbackentry_contextT_WSUP_SMA20_UNDERCUTThe touch week closes below the 20-week SMA.-0
T24120-week SMA wick reclaimT_WSUP_SMA20_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_SMA20_WICK_RECLAIMThe touch-week low is below the 20-week SMA, and its close is at or above the line.-0
T35133-week SMA actual touchT_WSUP_SMA33_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_SMA33_ACTUAL_TOUCHThe touch-week range intersects the 33-week SMA.-0
T35233-week SMA green confirmationT_WSUP_SMA33_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_SMA33_CONFIRM_GREENThe 33-week SMA confirmation week also closes above its weekly open.-0
T35333-week SMA weekly holdT_WSUP_SMA33_HOLDweekly support pullbackentry_contextT_WSUP_SMA33_HOLDThe touch week closes at or above the 33-week SMA.-0
T35433-week SMA near-above approachT_WSUP_SMA33_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_SMA33_NEAR_ABOVEThe touch-week low remains above the 33-week SMA, but is no more than 0.5 weekly ATR13 above it.-0
T35533-week SMA green touch weekT_WSUP_SMA33_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_SMA33_TOUCH_GREENThe touch week closes above its weekly open.-0
T35633-week SMA weekly undercutT_WSUP_SMA33_UNDERCUTweekly support pullbackentry_contextT_WSUP_SMA33_UNDERCUTThe touch week closes below the 33-week SMA.-0
T35733-week SMA wick reclaimT_WSUP_SMA33_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_SMA33_WICK_RECLAIMThe touch-week low is below the 33-week SMA, and its close is at or above the line.-0
T2W1Two-line support-touch confluenceT_WSUP_TOUCH_CONFLUENCE_2weekly support pullbackentry_contextT_WSUP_TOUCH_CONFLUENCE_2At least two tested support lines have a return touch in the same completed week.-0
T24220-week VWAP actual touchT_WSUP_VWAP20_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_VWAP20_ACTUAL_TOUCHThe touch-week range intersects the 20-week VWAP.-0
T24320-week VWAP green confirmationT_WSUP_VWAP20_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_VWAP20_CONFIRM_GREENThe 20-week VWAP confirmation week also closes above its weekly open.-0
T24420-week VWAP weekly holdT_WSUP_VWAP20_HOLDweekly support pullbackentry_contextT_WSUP_VWAP20_HOLDThe touch week closes at or above the 20-week VWAP.-0
T24520-week VWAP near-above approachT_WSUP_VWAP20_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_VWAP20_NEAR_ABOVEThe touch-week low remains above the 20-week VWAP, but is no more than 0.5 weekly ATR13 above it.-0
T24620-week VWAP green touch weekT_WSUP_VWAP20_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_VWAP20_TOUCH_GREENThe touch week closes above its weekly open.-0
T24720-week VWAP weekly undercutT_WSUP_VWAP20_UNDERCUTweekly support pullbackentry_contextT_WSUP_VWAP20_UNDERCUTThe touch week closes below the 20-week VWAP.-0
T24820-week VWAP wick reclaimT_WSUP_VWAP20_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_VWAP20_WICK_RECLAIMThe touch-week low is below the 20-week VWAP, and its close is at or above the line.-0
T35833-week VWAP actual touchT_WSUP_VWAP33_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_VWAP33_ACTUAL_TOUCHThe touch-week range intersects the 33-week VWAP.-0
T35933-week VWAP green confirmationT_WSUP_VWAP33_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_VWAP33_CONFIRM_GREENThe 33-week VWAP confirmation week also closes above its weekly open.-0
T36033-week VWAP weekly holdT_WSUP_VWAP33_HOLDweekly support pullbackentry_contextT_WSUP_VWAP33_HOLDThe touch week closes at or above the 33-week VWAP.-0
T36133-week VWAP near-above approachT_WSUP_VWAP33_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_VWAP33_NEAR_ABOVEThe touch-week low remains above the 33-week VWAP, but is no more than 0.5 weekly ATR13 above it.-0
T36233-week VWAP green touch weekT_WSUP_VWAP33_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_VWAP33_TOUCH_GREENThe touch week closes above its weekly open.-0
T36333-week VWAP weekly undercutT_WSUP_VWAP33_UNDERCUTweekly support pullbackentry_contextT_WSUP_VWAP33_UNDERCUTThe touch week closes below the 33-week VWAP.-0
T36433-week VWAP wick reclaimT_WSUP_VWAP33_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_VWAP33_WICK_RECLAIMThe touch-week low is below the 33-week VWAP, and its close is at or above the line.-0
T24920-week VWMA actual touchT_WSUP_VWMA20_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_VWMA20_ACTUAL_TOUCHThe touch-week range intersects the 20-week VWMA.-0
T25020-week VWMA green confirmationT_WSUP_VWMA20_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_VWMA20_CONFIRM_GREENThe 20-week VWMA confirmation week also closes above its weekly open.-0
T25320-week VWMA weekly holdT_WSUP_VWMA20_HOLDweekly support pullbackentry_contextT_WSUP_VWMA20_HOLDThe touch week closes at or above the 20-week VWMA.-0
T25420-week VWMA near-above approachT_WSUP_VWMA20_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_VWMA20_NEAR_ABOVEThe touch-week low remains above the 20-week VWMA, but is no more than 0.5 weekly ATR13 above it.-0
T25520-week VWMA green touch weekT_WSUP_VWMA20_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_VWMA20_TOUCH_GREENThe touch week closes above its weekly open.-0
T25620-week VWMA weekly undercutT_WSUP_VWMA20_UNDERCUTweekly support pullbackentry_contextT_WSUP_VWMA20_UNDERCUTThe touch week closes below the 20-week VWMA.-0
T25720-week VWMA wick reclaimT_WSUP_VWMA20_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_VWMA20_WICK_RECLAIMThe touch-week low is below the 20-week VWMA, and its close is at or above the line.-0
T36533-week VWMA actual touchT_WSUP_VWMA33_ACTUAL_TOUCHweekly support pullbackentry_contextT_WSUP_VWMA33_ACTUAL_TOUCHThe touch-week range intersects the 33-week VWMA.-0
T36633-week VWMA green confirmationT_WSUP_VWMA33_CONFIRM_GREENweekly support pullbackentry_contextT_WSUP_VWMA33_CONFIRM_GREENThe 33-week VWMA confirmation week also closes above its weekly open.-0
T36733-week VWMA weekly holdT_WSUP_VWMA33_HOLDweekly support pullbackentry_contextT_WSUP_VWMA33_HOLDThe touch week closes at or above the 33-week VWMA.-0
T36833-week VWMA near-above approachT_WSUP_VWMA33_NEAR_ABOVEweekly support pullbackentry_contextT_WSUP_VWMA33_NEAR_ABOVEThe touch-week low remains above the 33-week VWMA, but is no more than 0.5 weekly ATR13 above it.-0
T36933-week VWMA green touch weekT_WSUP_VWMA33_TOUCH_GREENweekly support pullbackentry_contextT_WSUP_VWMA33_TOUCH_GREENThe touch week closes above its weekly open.-0
T37033-week VWMA weekly undercutT_WSUP_VWMA33_UNDERCUTweekly support pullbackentry_contextT_WSUP_VWMA33_UNDERCUTThe touch week closes below the 33-week VWMA.-0
T37133-week VWMA wick reclaimT_WSUP_VWMA33_WICK_RECLAIMweekly support pullbackentry_contextT_WSUP_VWMA33_WICK_RECLAIMThe touch-week low is below the 33-week VWMA, and its close is at or above the line.-0
T25820-week EMA armedT_WSUP_EMA20_ARMEDweekly support pullbacksetupT_WSUP_EMA20_ARMEDThe 20-week EMA remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T37233-week EMA armedT_WSUP_EMA33_ARMEDweekly support pullbacksetupT_WSUP_EMA33_ARMEDThe 33-week EMA remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T37333-week power VWAP armedT_WSUP_PVWAP33_ARMEDweekly support pullbacksetupT_WSUP_PVWAP33_ARMEDThe 33-week power VWAP remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T25920-week SMA armedT_WSUP_SMA20_ARMEDweekly support pullbacksetupT_WSUP_SMA20_ARMEDThe 20-week SMA remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T37433-week SMA armedT_WSUP_SMA33_ARMEDweekly support pullbacksetupT_WSUP_SMA33_ARMEDThe 33-week SMA remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T26020-week VWAP armedT_WSUP_VWAP20_ARMEDweekly support pullbacksetupT_WSUP_VWAP20_ARMEDThe 20-week VWAP remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T37533-week VWAP armedT_WSUP_VWAP33_ARMEDweekly support pullbacksetupT_WSUP_VWAP33_ARMEDThe 33-week VWAP remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T26120-week VWMA armedT_WSUP_VWMA20_ARMEDweekly support pullbacksetupT_WSUP_VWMA20_ARMEDThe 20-week VWMA remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T37633-week VWMA armedT_WSUP_VWMA33_ARMEDweekly support pullbacksetupT_WSUP_VWMA33_ARMEDThe 33-week VWMA remains armed after a completed weekly close was at least 1.5 weekly ATR13 above it and before the next return touch.-0
T262Any 20-week support confirmationT_WSUP_20W_CONFIRMweekly support pullbacktriggerT_WSUP_20W_CONFIRMAt least one tested 20-week support line has a later valid confirmation.-0
T26320W same-week support confirmationT_WSUP_20W_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_20W_SAME_WEEK_CONFIRMAny 20-week support line has a same-week confirmation.-0
T264Any 20-week support touchT_WSUP_20W_TOUCHweekly support pullbacktriggerT_WSUP_20W_TOUCHAt least one tested 20-week support line has a first armed return touch.-0
T377Any 33-week support confirmationT_WSUP_33W_CONFIRMweekly support pullbacktriggerT_WSUP_33W_CONFIRMAt least one tested 33-week support line has a later valid confirmation.-0
T37833W same-week support confirmationT_WSUP_33W_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_33W_SAME_WEEK_CONFIRMAny 33-week support line has a same-week confirmation.-0
T379Any 33-week support touchT_WSUP_33W_TOUCHweekly support pullbacktriggerT_WSUP_33W_TOUCHAt least one tested 33-week support line has a first armed return touch.-0
TWA1Any 20/33-week support confirmationT_WSUP_ANY_CONFIRMweekly support pullbacktriggerT_WSUP_ANY_CONFIRMAt least one tested support line has its first valid confirmation within three completed weeks.-0
TWASANY same-week support confirmationT_WSUP_ANY_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_ANY_SAME_WEEK_CONFIRMAny tested support line has a same-week confirmation.-0
TWA2Any 20/33-week support touchT_WSUP_ANY_TOUCHweekly support pullbacktriggerT_WSUP_ANY_TOUCHAt least one tested 20-week or 33-week support line has a first armed return touch.-0
T26520-week EMA later confirmationT_WSUP_EMA20_CONFIRMweekly support pullbacktriggerT_WSUP_EMA20_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 20-week EMA.-0
T266First armed 20-week EMA returnT_WSUP_EMA20_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_EMA20_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 20-week EMA.-0
T267EMA20 same-week support confirmationT_WSUP_EMA20_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_EMA20_SAME_WEEK_CONFIRMThe EMA20 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T38033-week EMA later confirmationT_WSUP_EMA33_CONFIRMweekly support pullbacktriggerT_WSUP_EMA33_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 33-week EMA.-0
T381First armed 33-week EMA returnT_WSUP_EMA33_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_EMA33_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 33-week EMA.-0
T382EMA33 same-week support confirmationT_WSUP_EMA33_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_EMA33_SAME_WEEK_CONFIRMThe EMA33 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T38333-week power VWAP later confirmationT_WSUP_PVWAP33_CONFIRMweekly support pullbacktriggerT_WSUP_PVWAP33_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 33-week power VWAP.-0
T384First armed 33-week power VWAP returnT_WSUP_PVWAP33_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_PVWAP33_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 33-week power VWAP.-0
T385PVWAP33 same-week support confirmationT_WSUP_PVWAP33_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_PVWAP33_SAME_WEEK_CONFIRMThe PVWAP33 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T26820-week SMA later confirmationT_WSUP_SMA20_CONFIRMweekly support pullbacktriggerT_WSUP_SMA20_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 20-week SMA.-0
T269First armed 20-week SMA returnT_WSUP_SMA20_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_SMA20_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 20-week SMA.-0
T270SMA20 same-week support confirmationT_WSUP_SMA20_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_SMA20_SAME_WEEK_CONFIRMThe SMA20 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T38633-week SMA later confirmationT_WSUP_SMA33_CONFIRMweekly support pullbacktriggerT_WSUP_SMA33_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 33-week SMA.-0
T387First armed 33-week SMA returnT_WSUP_SMA33_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_SMA33_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 33-week SMA.-0
T388SMA33 same-week support confirmationT_WSUP_SMA33_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_SMA33_SAME_WEEK_CONFIRMThe SMA33 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T27120-week VWAP later confirmationT_WSUP_VWAP20_CONFIRMweekly support pullbacktriggerT_WSUP_VWAP20_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 20-week VWAP.-0
T272First armed 20-week VWAP returnT_WSUP_VWAP20_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_VWAP20_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 20-week VWAP.-0
T273VWAP20 same-week support confirmationT_WSUP_VWAP20_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_VWAP20_SAME_WEEK_CONFIRMThe VWAP20 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T38933-week VWAP later confirmationT_WSUP_VWAP33_CONFIRMweekly support pullbacktriggerT_WSUP_VWAP33_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 33-week VWAP.-0
T390First armed 33-week VWAP returnT_WSUP_VWAP33_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_VWAP33_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 33-week VWAP.-0
T391VWAP33 same-week support confirmationT_WSUP_VWAP33_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_VWAP33_SAME_WEEK_CONFIRMThe VWAP33 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T27420-week VWMA later confirmationT_WSUP_VWMA20_CONFIRMweekly support pullbacktriggerT_WSUP_VWMA20_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 20-week VWMA.-0
T275First armed 20-week VWMA returnT_WSUP_VWMA20_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_VWMA20_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 20-week VWMA.-0
T276VWMA20 same-week support confirmationT_WSUP_VWMA20_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_VWMA20_SAME_WEEK_CONFIRMThe VWMA20 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
T39233-week VWMA later confirmationT_WSUP_VWMA33_CONFIRMweekly support pullbacktriggerT_WSUP_VWMA33_CONFIRMWithin three completed weeks after the touch, this is the first close above the touch close, with no intervening close below the current 33-week VWMA.-0
T393First armed 33-week VWMA returnT_WSUP_VWMA33_RETURN_TOUCHweekly support pullbacktriggerT_WSUP_VWMA33_RETURN_TOUCHThe first later completed weekly range comes within 0.5 weekly ATR13 of the armed 33-week VWMA.-0
T394VWMA33 same-week support confirmationT_WSUP_VWMA33_SAME_WEEK_CONFIRMweekly support pullbacktriggerT_WSUP_VWMA33_SAME_WEEK_CONFIRMThe VWMA33 touch has a close in the top half of the weekly range and either closes within the support buffer or wicks below support and reclaims it.-0
MWRRWeekly-support risk-off regimeM_WSUP_REGIME_RISK_OFFweekly support regimeblockerM_WSUP_REGIME_RISK_OFFSPY is not above a rising completed-week MA33. The weekly-support router enters this state immediately and routes to cash.-0
MWRFWeekly-support fragile regimeM_WSUP_REGIME_FRAGILEweekly support regimecontexttrend_filter == trueSPY has a positive completed-week MA33 trend but breadth is below its causal trailing median or SPY ATR13 percentage is at or above its causal trailing 80th percentile after operational hysteresis.-0
MWRSWeekly-support supportive regimeM_WSUP_REGIME_SUPPORTIVEweekly support regimecontexttrend_filter == trueSPY has a positive completed-week MA33 trend, top-1000 breadth is at or above its causal trailing median, and SPY ATR13 percentage is below its causal trailing 80th percentile after operational hysteresis.-0