Atom Catalog
Short codes, exact/best-effort logic, stage, edge, and usage signals.
| Code | Atom | Group | Role | Logic | Edge | Samples |
|---|---|---|---|---|---|---|
| T20A | Ascending base geometryT_ASCENDING_BASE_GEOMETRY_20D | ascending flag | trigger | 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 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 |
| T201 | Ascending base geometry with RSI resetT_ASCENDING_BASE_GEOMETRY_RESET_20D | ascending flag | trigger | 20D 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 |
| T202 | Ascending flag breakoutT_ASCENDING_FLAG_BREAKOUT_20D | ascending flag | trigger | 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 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 |
| T203 | Ascending flag with RSI resetT_ASCENDING_FLAG_RESET_20D | ascending flag | trigger | 20D 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 |
| T204 | Ascending flag structureT_ASCENDING_FLAG_STRUCTURE_20D | ascending flag | trigger | 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 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 |
| T20B | 20-day base convergingT_BASE_CONVERGING_20D | ascending flag | trigger | 20D low-line slope > 20D high-line slopeLow-line slope exceeds high-line slope, approximating a tightening ascending base. | - | 0 |
| T205 | 20-day base highs roughly flatT_BASE_HIGH_DRIFT_20D_FLAT | ascending flag | trigger | 20D 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 |
| T206 | 20-day base highs not verticalT_BASE_HIGH_DRIFT_20D_NOT_VERTICAL | ascending flag | trigger | 20D high-line slope <= 15%Regression slope of daily highs over the 20-day base is no more than +15%. | - | 0 |
| T207 | 20-day base highs drifting mildly upwardT_BASE_HIGH_DRIFT_20D_UP_MINOR | ascending flag | trigger | 20D high-line slope between 0%..10%Regression slope of daily highs over the 20-day base is between 0% and +10%. | - | 0 |
| T208 | 20-day base lows risingT_BASE_LOW_DRIFT_20D_UP | ascending flag | trigger | 20D low-line slope > 0%Regression slope of daily lows over the 20-day base is positive. | - | 0 |
| T209 | 20-day base lows rising stronglyT_BASE_LOW_DRIFT_20D_UP_STRONG | ascending flag | trigger | 20D low-line slope >= 5%Regression slope of daily lows over the 20-day base is at least +5%. | - | 0 |
| T210 | 20-day base range compactT_BASE_RANGE_COMPACT_20D | ascending flag | trigger | 20D base range <= 20%The 20-day high-low range is no more than 20%. | - | 0 |
| T211 | 20-day base range not excessiveT_BASE_RANGE_NORMAL_20D | ascending flag | trigger | 20D base range <= 35%The 20-day high-low range is no more than 35%. | - | 0 |
| T212 | Close in upper half of 20-day baseT_BASE_UPPER_HALF_20D | ascending flag | trigger | Close position in 20D base >= 0.50Current close is in the upper half of the 20-day high-low range. | - | 0 |
| T213 | Close in upper third of 20-day baseT_BASE_UPPER_THIRD_20D | ascending flag | trigger | Close position in 20D base >= 0.67Current close is in the upper third of the 20-day high-low range. | - | 0 |
| T51H | Recent low above prior 10-day base lowT_HIGHER_LOW_5V10 | ascending flag | trigger | min(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 |
| T511 | Recent low above prior 15-day base lowT_HIGHER_LOW_5V15 | ascending flag | trigger | Recent 5D low > Prior 15D lowThe lowest low in the last 5 sessions is above the lowest low in the prior 15-session window. | - | 0 |
| T20N | Near 20-day high in ATR unitsT_NEAR_20D_HIGH_ATR | ascending flag | trigger | Distance 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 |
| T14R | RSI14 reset but still constructiveT_RSI14_RESET_50_65 | ascending flag | trigger | RSI14 between 50..6514-day RSI is between 50 and 65, suggesting a cooled but not broken consolidation. | - | 0 |
| EEPM | Maximum executed entry distance from pivotE_ENTRY_PRICE_MAX_FROM_PIVOT | entry execution | trigger | entry_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 |
| EBNB | Buy now baselineE_BUY_NOW_BASE | entry trigger | trigger | Buy now baseline == trueEnter at candidate date. | - | 0 |
| EGHX | Gap holdE_GAP_HOLD | entry trigger | trigger | Gap hold == trueEnter after a post-gap digestion that does not fail. | - | 0 |
| E10P | Pullback 10-20%E_PULLBACK_10_20 | entry trigger | trigger | Pullback 10-20% between 10%..20%Enter only after a 10-20% pullback. | - | 0 |
| E31P | Pullback 3-10%E_PULLBACK_3_10 | entry trigger | trigger | Pullback 3-10% between 3%..10%Enter only after a 3-10% pullback. | - | 0 |
| ERBX | Resistance breakE_RESISTANCE_BREAK | entry trigger | trigger | Resistance break == trueEnter on resistance breakout. | - | 0 |
| E14R | RSI14 oversoldE_RSI_14_OVERSOLD | entry trigger | trigger | RSI14 oversold < 30Enter when medium RSI is below threshold. | - | 0 |
| E5RX | RSI5 oversoldE_RSI_5_OVERSOLD | entry trigger | trigger | RSI5 oversold < thresholdEnter when short RSI is below threshold. | - | 0 |
| ERDB | Bullish RSI divergenceE_RSI_DIVERGENCE_BULL | entry trigger | trigger | Bullish RSI divergence == trueEnter on bullish RSI divergence. | - | 0 |
| ETSX | Trendline supportE_TRENDLINE_SUPPORT | entry trigger | trigger | Trendline support == trueEnter near trendline or structural support. | - | 0 |
| EVBX | VCP breakoutE_VCP_BREAKOUT | entry trigger | trigger | 5D 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 |
| EVPH | VCP pullback holdE_VCP_PULLBACK_HOLD | entry trigger | trigger | VCP pullback hold == trueEnter when contraction/pullback holds support. | - | 0 |
| E10W | Wait 10DE_WAIT_10D | entry trigger | trigger | Wait 10D == trueWait 10 trading days before entry. | - | 0 |
| E20W | Wait 20DE_WAIT_20D | entry trigger | trigger | Wait 20D == trueWait 20 trading days before entry. | - | 0 |
| E5WX | Wait 5DE_WAIT_5D | entry trigger | trigger | Wait 5D == trueWait 5 trading days before entry. | - | 0 |
| EDEB | Delayed post-event consolidation breakoutE_DELAYED_EVENT_BREAKOUT | episodic entry | trigger | 2 <= 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 |
| EENO | Episodic event next-open entryE_EVENT_NEXT_OPEN | episodic entry | trigger | signal 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 |
| EERR | Event retest and reclaimE_EVENT_RETEST_RECLAIM | episodic entry | trigger | within 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 |
| TASV | Minimum absolute daily share volumeT_ABSOLUTE_SHARE_VOLUME_MIN | episodic volume | setup | volume[t] >= min_sharesFlags an unusually active session using an absolute share-count floor, including the Stockbee 8.9-million-share threshold. | - | 0 |
| TDVM | Minimum event-day dollar volumeT_DOLLAR_VOLUME_MIN | episodic volume | setup | close[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 |
| TECL | Minimum event-day close locationT_EVENT_CLOSE_LOCATION_MIN | episodic volume | setup | (close[t] - low[t]) / (high[t] - low[t]) >= min_locationRequires the event candle to close in the upper portion of its daily range. | - | 0 |
| TERE | Minimum event-day range expansionT_EVENT_RANGE_EXPANSION_MIN | episodic volume | setup | true_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 |
| TERM | Minimum event-day relative volumeT_EVENT_RVOL_MIN | episodic volume | setup | volume[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 |
| TFTM | Minimum event-day float turnoverT_FLOAT_TURNOVER_MIN | episodic volume | setup | volume[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 |
| TPEA | Minimum pre-event ADR percentageT_PRE_EVENT_ADR_PCT_MIN | episodic volume | setup | avg(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 |
| TPHV | Prior high-volume event countT_PRIOR_HIGH_VOLUME_EVENT_COUNT | episodic volume | setup | count(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 |
| SSEC | Sector EPS cap-weighted growth (correlation-mapped)S_SEC_EPS_CORR_CAPWTD_GROWTH | fundamental quality/value | filter | Sector EPS cap-weighted growth (correlation-mapped) == trueFirst derivative (level) of cap-weighted sector EPS growth, mapped via 126d rolling correlation. | - | 0 |
| SSE1 | Sector EPS median acceleration (correlation-mapped)S_SEC_EPS_CORR_MEDIAN_ACCEL | fundamental quality/value | filter | Sector EPS median acceleration (correlation-mapped) == trueSecond derivative of sector median EPS growth, mapped via 126d rolling correlation to sector ETFs. | - | 0 |
| SSEG | Sector EPS cap-weighted acceleration (GICS)S_SEC_EPS_GICS_CAPWTD_ACCEL | fundamental quality/value | filter | Sector EPS cap-weighted acceleration (GICS) == trueSecond derivative of cap-weighted sector EPS growth, GICS-mapped. Negative = sector earnings decelerating. | - | 0 |
| SSE2 | Sector EPS cap-weighted growth (GICS)S_SEC_EPS_GICS_CAPWTD_GROWTH | fundamental quality/value | filter | Sector EPS cap-weighted growth (GICS) == trueFirst derivative (level) of cap-weighted sector EPS growth, GICS-mapped. | - | 0 |
| SSE3 | Sector EPS median acceleration (GICS)S_SEC_EPS_GICS_MEDIAN_ACCEL | fundamental quality/value | filter | Sector EPS median acceleration (GICS) == trueSecond derivative of sector median EPS growth, GICS-mapped. Negative = sector earnings decelerating. | - | 0 |
| FMEC | Material event catalystF_MATERIAL_EVENT_CATALYST | fundamental quality/value | setup | latest_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 |
| M3HX | Market HMM high-vol chaosM_HMM3_HIGH_VOL_CHAOS | market regime | blocker | Market HMM high-vol chaos == high-volatility chaoticPoint-in-time 3-state HMM assigns SPY to a high-volatility chaotic state. | - | 0 |
| M5HX | Market HMM bear driftM_HMM5_BEAR_DRIFT | market regime | blocker | Market HMM bear drift == negative low-volatility driftPoint-in-time 5-state HMM assigns SPY to a negative low-volatility drift state. | - | 0 |
| M5H1 | Market HMM bear trendM_HMM5_BEAR_TREND | market regime | blocker | Market HMM bear trend == directional trendPoint-in-time 5-state HMM assigns SPY to a negative directional trend state. | - | 0 |
| M5H2 | Market HMM chaosM_HMM5_CHAOS | market regime | blocker | Market HMM chaos == high-volatility chaoticPoint-in-time 5-state HMM assigns SPY to a high-volatility chaotic state. | - | 0 |
| MLRX | Market LPPL riskM_LPPL_RISK | market regime | blocker | Market LPPL risk == trueSPY or QQQ LPPL bubble/crash risk is elevated. | - | 0 |
| MSEX | SPY extendedM_SPY_EXTENDED | market regime | blocker | SPY extended >= 90SPY 5-day RSI is >= 90. | - | 0 |
| MECX | Market EMA constructiveM_EMA_CONSTRUCTIVE | market regime | context | Market EMA constructive == trueMarket EMAs are Constructively aligned — not necessarily a full stack but trending constructively. | - | 0 |
| M82E | Market EMA stack 8/21/50M_EMA_STACK_8_21_50 | market regime | context | SPY[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 |
| MEVB | Episodic-volume trigger breadthM_EPISODIC_VOLUME_BREADTH | market regime | context | qualified_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 |
| M3H1 | Market HMM directional trendM_HMM3_DIRECTIONAL_TREND | market regime | context | Market HMM directional trend == directional trendPoint-in-time 3-state HMM assigns SPY to a directional trend state. | - | 0 |
| M3H2 | Market HMM low-vol driftM_HMM3_LOW_VOL_DRIFT | market regime | context | Market HMM low-vol drift == low-volatility drift/rangePoint-in-time 3-state HMM assigns SPY to a low-volatility drift/range state. | - | 0 |
| M5H3 | Market HMM bull driftM_HMM5_BULL_DRIFT | market regime | context | Market HMM bull drift == positive low-volatility driftPoint-in-time 5-state HMM assigns SPY to a positive low-volatility drift state. | - | 0 |
| M5H4 | Market HMM bull trendM_HMM5_BULL_TREND | market regime | context | Market HMM bull trend == directional trendPoint-in-time 5-state HMM assigns SPY to a positive directional trend state. | - | 0 |
| MHLT | Market long Hurst trendM_HURST_LONG_TREND | market regime | context | Market long Hurst trend >= trend thresholdSPY long-window Hurst is above trend threshold. | - | 0 |
| MHSM | Market short Hurst mean reversionM_HURST_SHORT_MR | market regime | context | Market short Hurst mean reversion <= mean-reversion thresholdSPY short-window Hurst is below mean-reversion threshold. | - | 0 |
| MLBF | Leader breakout failure breadthM_LEADER_BREAKOUT_FAILURE_BREADTH | market regime | context | failed_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 |
| MRBX | Bear regimeM_REGIME_BEAR | market regime | context | Bear regime == trueExisting market regime model labels the environment as bear or high bear probability. | - | 0 |
| MRB1 | Bull regimeM_REGIME_BULL | market regime | context | Bull regime == trueExisting market regime model labels the environment as bull or high bull probability. | - | 0 |
| MRTX | Transition regimeM_REGIME_TRANSITION | market regime | context | Transition regime == transitionExisting market regime model labels the environment as transition/chop. | - | 0 |
| MSPX | SPY controlled pullbackM_SPY_PULLBACK | market regime | context | SPY controlled pullback == trueSPY is in a controlled pullback rather than structural damage. | - | 0 |
| M20S | SPY 200D trendM_SPY_TREND_200D | market regime | context | SPY[t] > sma(SPY, 200)[t] and slope(sma(SPY, 200), 20)[t] > 0SPY is above a rising 200-day moving average. | - | 0 |
| M50S | SPY 50D trendM_SPY_TREND_50D | market regime | context | SPY[t] > sma(SPY, 50)[t] and slope(sma(SPY, 50), 20)[t] > 0SPY is above a rising 50-day moving average. | - | 0 |
| E141 | RSI(14) mean reversion longE_RSI14_MR_LONG | mean reversion | trigger | rsi(close, 14)[t] < 30RSI(14) drops below 30 (oversold). Mean reversion entry. | - | 0 |
| CMRX | Cash on market riskCASH_MARKET_RISK | portfolio management | blocker | Cash on market risk == trueHold cash when market risk budget is too low. | - | 0 |
| COXX | Cash when overextendedCASH_OVEREXTENDED | portfolio management | blocker | Cash when overextended == trueHold cash when extension risk is too high. | - | 0 |
| CSRX | Cash on sector riskCASH_SECTOR_RISK | portfolio management | blocker | Cash on sector risk == trueHold cash when sector risk is too high. | - | 0 |
| ZRPX | Risk-based sizing (0.5%)Z_RISK_PCT | portfolio management | blocker | Z_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 |
| CNXX | No cash waitCASH_NONE | portfolio management | cash | No cash wait == trueAlways invested once entered. | - | 0 |
| CNSX | Cash when no sponsorshipCASH_NO_SPONSORSHIP | portfolio management | cash | Cash when no sponsorship == trueHold cash if sector or ticker sponsorship is absent. | - | 0 |
| CWTX | Wait for trigger in cashCASH_WAIT_TRIGGER | portfolio management | cash | Wait for trigger in cash == trueHold cash until entry trigger occurs. | - | 0 |
| ZMCP | Max cost basis pctZ_MAX_COST_PCT | portfolio management | portfolio | Z_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 |
| ZMHX | Max distinct holdings (10)Z_MAX_HOLDINGS | portfolio management | portfolio | Z_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 |
| ZMPP | Max position pct (15%)Z_MAX_POSITION_PCT | portfolio management | portfolio | Z_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 |
| ZMCR | Min cash reserve (5%)Z_MIN_CASH_RESERVE | portfolio management | portfolio | Z_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 |
| ZRBX | Rank by breakout strengthZ_RANK_BREAKOUT | portfolio management | portfolio | Z_RANK_BREAKOUTEntry ranking toggle: candidates are scored using breakout_20d_atr feature. | -15.7% | 13,223 |
| ZRMX | Rank by momentum (10d)Z_RANK_MOMENTUM | portfolio management | portfolio | Z_RANK_MOMENTUMEntry ranking toggle: candidates are scored using ret_10d feature. | - | 0 |
| ZRRS | Rank by sector RS (3M)Z_RANK_RS_SECTOR | portfolio management | portfolio | Z_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 |
| ZRRT | Rank by ticker RS (3M)Z_RANK_RS_TICKER | portfolio management | portfolio | Z_RANK_RS_TICKEREntry ranking toggle: candidates are scored using ticker_sector_rs_3m feature. | - | 0 |
| ZRVX | Rank by volume ratioZ_RANK_VOLUME | portfolio management | portfolio | Z_RANK_VOLUMEEntry ranking toggle: candidates are scored using volume_ratio_20 feature. | - | 0 |
| ZRRE | RS-driven rebalance evaluationZ_REBAL_RS_EVAL | portfolio management | portfolio | Z_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 |
| ZSTC | Scale to available cashZ_SCALE_TO_CASH | portfolio management | portfolio | Z_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 |
| Z1TX | T+1 entry executionZ_T_PLUS_1 | portfolio management | portfolio | Z_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 |
| ZWSX | Weekly signal evaluationZ_WEEKLY_SIGNALS | portfolio management | portfolio | Z_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 |
| Z1FX | Fixed 1xZ_FIXED_1X | portfolio management | sizing | Fixed 1x == trueFixed full test size. | - | 0 |
| ZMTX | Market throttleZ_MARKET_THROTTLE | portfolio management | sizing | Market 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 |
| ZSEX | Exponential score sizeZ_SCORE_EXP | portfolio management | sizing | Exponential score size == trueAggressive exponential score-based sizing. | - | 0 |
| ZSLX | Linear score sizeZ_SCORE_LINEAR | portfolio management | sizing | Linear score size == trueSize proportional to selection or entry score. | - | 0 |
| ZSTX | Sector throttleZ_SECTOR_THROTTLE | portfolio management | sizing | Sector throttle == trueSize multiplied by sector sponsorship or sector risk. | - | 0 |
| Z02S | 25% starterZ_STARTER_025 | portfolio management | sizing | 25% starter == trueQuarter-size starter position. | - | 0 |
| Z05S | 50% starterZ_STARTER_050 | portfolio management | sizing | 50% starter == trueHalf-size starter position. | - | 0 |
| ZVTX | Vol target sizeZ_VOL_TARGET | portfolio management | sizing | Vol target size == trueSize inversely to realized volatility. | - | 0 |
| EBEX | Bullish engulfing candlestickE_BULLISH_ENGULFING | price action | trigger | close[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 |
| TSCX | Stacked support confluenceT_SUPPORT_CONFLUENCE | pullback support | setup | levels = {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 |
| TPRS | Prior resistance holds as supportT_PRIOR_RESISTANCE_SUPPORT_HOLD | pullback support | trigger | pivot = 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 |
| TSRX | Shakeout reversal at supportT_SHAKEOUT_REVERSAL | pullback support | trigger | support = 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 |
| TTSH | Rising trendline support holdsT_TRENDLINE_SUPPORT_HOLD | pullback support | trigger | line = 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 |
| TVDX | VWAP support holdT_VWAP_DIP | pullback support | trigger | vwap = 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 |
| TSSD | Structural stop distance within bandT_STRUCT_STOP_DISTANCE_MAX | risk structure | trigger | invalidation = 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 |
| SSSA | Sector season ageS_SECTOR_SEASON_AGE | seasonality | context | Sector season age == trueDuration of sector relative outperformance or underperformance season. | - | 0 |
| SSSP | Sector positive seasonalityS_SECTOR_SEASON_POS | seasonality | context | Sector positive seasonality == trueSector historically outperforms in current month, quarter, or half year. | - | 0 |
| SSAP | Sector season age percentile localsector_season_age_pctile_local | sector season | feature | Sector season age percentile local == truePercentile of current hot/cold sector season age versus the same ETF's prior seasons. | - | 0 |
| SSRP | Sector season return percentile localsector_season_return_pctile_local | sector season | feature | Sector season return percentile local == truePercentile of current hot/cold sector season cumulative return versus the same ETF's prior seasons. | - | 0 |
| RDAX | Defensive accelerationR_DEFENSIVE_ACCEL | sector strength/weakness | blocker | Defensive acceleration > 0%Defensive relative strength acceleration versus SPY or risk-on proxies. | - | 0 |
| SHMR | Mean-reverting sector extensionS_HURST_MEAN_REVERTING_EXTENDED | sector strength/weakness | blocker | Mean-reverting sector extension == trueSector has durable mean-reversion behavior and is stretched positively versus SPY. | - | 0 |
| SHPU | Persistent sector underperformanceS_HURST_PERSISTENT_UNDERPERFORMANCE | sector strength/weakness | blocker | Persistent sector underperformance == trueSector/SPY relative strength is persistent but negative across long windows. | - | 0 |
| S3RX | Sector RS HMM chaosS_RS_HMM3_CHAOS | sector strength/weakness | blocker | Sector 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 |
| S3R1 | Sector RS HMM coldS_RS_HMM3_COLD | sector strength/weakness | blocker | Sector 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 |
| S5RX | Sector RS HMM chaosS_RS_HMM5_CHAOS | sector strength/weakness | blocker | Sector 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 |
| S5R1 | Sector RS HMM cold driftS_RS_HMM5_COLD_DRIFT | sector strength/weakness | blocker | Sector 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 |
| S5R2 | Sector RS HMM cold trendS_RS_HMM5_COLD_TREND | sector strength/weakness | blocker | Sector 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 |
| SRSE | Early sector RS cold seasonS_RS_SEASON_EARLY_COLD | sector strength/weakness | blocker | Early sector RS cold season == trueSector relative underperformance is young and deteriorating. | - | 0 |
| SRSM | Mature sector RS hot seasonS_RS_SEASON_MATURE_HOT | sector strength/weakness | blocker | Mature sector RS hot season == trueSector relative leadership is mature by age, relative return, or both. | - | 0 |
| SRSS | Sector RS season switch riskS_RS_SEASON_SWITCH_RISK | sector strength/weakness | blocker | Sector RS season switch risk == trueEmpirical probability of the current sector relative regime ending soon is elevated. | - | 0 |
| S50R | Global SMA50/200 cold exhaustionS_RS_SMA50_200_COLD_EXHAUSTED_GLOBAL | sector strength/weakness | blocker | Global SMA50/200 cold exhaustion == trueParent ETF cold season is mature versus a configured cross-ETF sector/style universe. | - | 0 |
| S501 | Local SMA50/200 cold exhaustionS_RS_SMA50_200_COLD_EXHAUSTED_LOCAL | sector strength/weakness | blocker | Local 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 |
| S502 | Global SMA50/200 hot exhaustionS_RS_SMA50_200_HOT_EXHAUSTED_GLOBAL | sector strength/weakness | blocker | Global SMA50/200 hot exhaustion == trueParent ETF hot season is mature versus a configured cross-ETF sector/style universe. | - | 0 |
| S503 | Local SMA50/200 hot exhaustionS_RS_SMA50_200_HOT_EXHAUSTED_LOCAL | sector strength/weakness | blocker | Local 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 |
| SSDB | Defensive sector breakoutS_SECTOR_DEF_BREAKOUT | sector strength/weakness | blocker | Defensive sector breakout == trueDefensive sector ETF is breaking out or basing constructively. | - | 0 |
| S1SX | Defensive 1M leadershipS_SECTOR_DEF_LEAD_1M | sector strength/weakness | blocker | Defensive 1M leadership == trueDefensive sectors are leading SPY over 1 month. | - | 0 |
| S3SX | Defensive 3M leadershipS_SECTOR_DEF_LEAD_3M | sector strength/weakness | blocker | Defensive 3M leadership == trueDefensive sectors are leading SPY over 3 months. | - | 0 |
| RSSA | Sector/SPY RS accelerationR_SECTOR_SPY_ACCEL | sector strength/weakness | context | Sector/SPY RS acceleration > 0%Sector 1M relative strength is improving versus 3M relative trend. | - | 0 |
| R1TX | Ticker/sector 1M RSR_TICKER_SECTOR_1M_UP | sector strength/weakness | context | Ticker/sector 1M RS > 0%Ticker versus sector relative strength is rising over 1 month. | - | 0 |
| R3TX | Ticker/sector 3M RSR_TICKER_SECTOR_3M_UP | sector strength/weakness | context | Ticker/sector 3M RS > 0%Ticker versus sector relative strength is rising over 3 months. | - | 0 |
| RTSA | Ticker/sector RS accelerationR_TICKER_SECTOR_ACCEL | sector strength/weakness | context | Ticker/sector RS acceleration == trueTicker 1M sector-relative strength is improving versus 3M relative trend. | - | 0 |
| R1T1 | Ticker/SPY 1M RSR_TICKER_SPY_1M_UP | sector strength/weakness | context | Ticker/SPY 1M RS > 0%Ticker versus SPY relative strength is rising over 1 month. | - | 0 |
| R3T1 | Ticker/SPY 3M RSR_TICKER_SPY_3M_UP | sector strength/weakness | context | Ticker/SPY 3M RS > 0%Ticker versus SPY relative strength is rising over 3 months. | - | 0 |
| SHDN | Durable sector Hurst noiseS_HURST_DURABLE_NOISE | sector strength/weakness | context | Durable sector Hurst noise == trueSector Hurst remains neutral across long windows, so Hurst should be de-emphasized. | - | 0 |
| SHFT | Sector Hurst flip to mean reversionS_HURST_FLIP_TO_MR | sector strength/weakness | context | Sector Hurst flip to mean reversion == trueSector Hurst has fallen from trend into mean-reversion/noise range. | - | 0 |
| SHF1 | Sector Hurst flip to trendS_HURST_FLIP_TO_TREND | sector strength/weakness | context | Sector Hurst flip to trend == trueSector Hurst has risen from mean-reversion/noise into trend range. | - | 0 |
| SHLT | Sector long Hurst trendS_HURST_LONG_TREND | sector strength/weakness | context | Sector long Hurst trend >= trend thresholdSector long-window Hurst is above trend threshold. | - | 0 |
| SHMD | Sector Hurst mean-reversion durabilityS_HURST_MEANREV_DURABILITY | sector strength/weakness | context | Sector Hurst mean-reversion durability == trueCount or share of long sector Hurst windows at or below the mean-reversion threshold. | - | 0 |
| SHM1 | Mean-reverting sector depressionS_HURST_MEAN_REVERTING_DEPRESSED | sector strength/weakness | context | Mean-reverting sector depression == trueSector has durable mean-reversion behavior and is stretched negatively versus SPY. | - | 0 |
| SHMT | Sector medium Hurst trendS_HURST_MED_TREND | sector strength/weakness | context | Sector medium Hurst trend >= trend thresholdSector medium-window Hurst is above trend threshold. | - | 0 |
| SHNX | Sector Hurst noiseS_HURST_NOISE | sector strength/weakness | context | Sector Hurst noise == trueSector Hurst is near 0.5 and should not strongly route strategy. | - | 0 |
| SHND | Sector Hurst noise durabilityS_HURST_NOISE_DURABILITY | sector strength/weakness | context | Sector Hurst noise durability == trueCount or share of long sector Hurst windows inside the neutral noise band. | - | 0 |
| SHPL | Persistent sector leadershipS_HURST_PERSISTENT_LEADERSHIP | sector strength/weakness | context | Persistent sector leadership == trueSector/SPY relative strength is both persistent and positive across long windows. | - | 0 |
| S12H | Sector price Hurst 120DS_HURST_PRICE_120D | sector strength/weakness | context | Sector price Hurst 120D == trueLonger-window Hurst exponent on sector ETF price. | - | 0 |
| S20H | Sector price Hurst 20DS_HURST_PRICE_20D | sector strength/weakness | context | Sector price Hurst 20D == trueShort-window Hurst exponent on sector ETF price. | - | 0 |
| S25H | Sector price Hurst 250DS_HURST_PRICE_250D | sector strength/weakness | context | sector_etf[t] > sma(sector_etf, 50)[t] and slope(sma(sector_etf, 50), 20)[t] > 0Long-window Hurst exponent on sector ETF price. | - | 0 |
| S50H | Sector price Hurst 500DS_HURST_PRICE_500D | sector strength/weakness | context | Sector price Hurst 500D == trueMulti-year Hurst exponent on sector ETF price. | - | 0 |
| S60H | Sector price Hurst 60DS_HURST_PRICE_60D | sector strength/weakness | context | Sector price Hurst 60D == trueMedium-window Hurst exponent on sector ETF price. | - | 0 |
| S75H | Sector price Hurst 750DS_HURST_PRICE_750D | sector strength/weakness | context | sector_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 |
| S121 | Sector/SPY RS Hurst 120DS_HURST_RS_SPY_120D | sector strength/weakness | context | Sector/SPY RS Hurst 120D == trueLonger-window Hurst exponent on sector versus SPY relative strength line. | - | 0 |
| S251 | Sector/SPY RS Hurst 250DS_HURST_RS_SPY_250D | sector strength/weakness | context | sector_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 |
| S252 | Sector/SPY RS Hurst 250D mean-reversion stateS_HURST_RS_SPY_250_MEANREV | sector strength/weakness | context | sector_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 |
| S253 | Sector/SPY RS Hurst 250D trend stateS_HURST_RS_SPY_250_TREND | sector strength/weakness | context | sector_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 |
| S504 | Sector/SPY RS Hurst 500DS_HURST_RS_SPY_500D | sector strength/weakness | context | Sector/SPY RS Hurst 500D == trueMulti-year Hurst exponent on sector versus SPY relative strength line. | - | 0 |
| S601 | Sector/SPY RS Hurst 60DS_HURST_RS_SPY_60D | sector strength/weakness | context | Sector/SPY RS Hurst 60D == trueMedium-window Hurst exponent on sector versus SPY relative strength line. | - | 0 |
| S751 | Sector/SPY RS Hurst 750DS_HURST_RS_SPY_750D | sector strength/weakness | context | sector_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 |
| SHSM | Sector short Hurst mean reversionS_HURST_SHORT_MR | sector strength/weakness | context | Sector short Hurst mean reversion <= mean-reversion thresholdSector short/medium Hurst is below mean-reversion threshold. | - | 0 |
| SHTD | Sector Hurst trend durabilityS_HURST_TREND_DURABILITY | sector strength/weakness | context | Sector Hurst trend durability == trueCount or share of long sector Hurst windows at or above the trend threshold. | - | 0 |
| S3R2 | Sector RS HMM hotS_RS_HMM3_HOT | sector strength/weakness | context | Sector 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 |
| S5R3 | Sector RS HMM hot driftS_RS_HMM5_HOT_DRIFT | sector strength/weakness | context | Sector 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 |
| S5R4 | Sector RS HMM hot trendS_RS_HMM5_HOT_TREND | sector strength/weakness | context | Sector 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 |
| SRSA | Sector RS season age percentileS_RS_SEASON_AGE_PCTILE | sector strength/weakness | context | Sector RS season age percentile == trueCurrent hot/cold relative regime duration percentile versus prior same-state sector regimes. | - | 0 |
| SRSC | Sector RS cold seasonS_RS_SEASON_COLD | sector strength/weakness | context | Sector RS cold season == trueSector versus SPY relative-strength regime is negative. | - | 0 |
| SRS1 | Early sector RS hot seasonS_RS_SEASON_EARLY_HOT | sector strength/weakness | context | Early sector RS hot season == trueSector relative leadership is young and improving. | - | 0 |
| SRSH | Sector RS hot seasonS_RS_SEASON_HOT | sector strength/weakness | context | Sector RS hot season == trueSector versus SPY relative-strength regime is positive. | - | 0 |
| SRS2 | Mature sector RS cold seasonS_RS_SEASON_MATURE_COLD | sector strength/weakness | context | Mature sector RS cold season == trueSector relative underperformance is mature by age, relative return, or both. | - | 0 |
| SRSR | Sector RS season return percentileS_RS_SEASON_RETURN_PCTILE | sector strength/weakness | context | Sector RS season return percentile == trueCurrent hot/cold relative regime return percentile versus prior same-state sector regimes. | - | 0 |
| S505 | SMA50/200 sector RS cold seasonS_RS_SMA50_200_COLD | sector strength/weakness | context | SMA50/200 sector RS cold season < 0Parent ETF versus SPY relative SMA50 is below relative SMA200. | - | 0 |
| S506 | SMA50/200 sector RS hot seasonS_RS_SMA50_200_HOT | sector strength/weakness | context | SMA50/200 sector RS hot season > 0Parent ETF versus SPY relative SMA50 is above relative SMA200. | - | 0 |
| S3S1 | Sector RS 3-month upS_SECTOR_RS_3M_UP | sector strength/weakness | context | Sector RS 3-month up > 0%Sector is outperforming SPY over the trailing 3 months. Confirms sector leadership. | -9.5% | 54,543 |
| SSRA | Sector relative accelerationS_SECTOR_RS_ACCEL | sector strength/weakness | context | Sector relative acceleration > 0%Sector 1M relative strength is improving versus its 3M relative trend. | - | 0 |
| S1S1 | Sector 1M relative strengthS_SECTOR_SPY_RS_1M_UP | sector strength/weakness | context | Sector 1M relative strength > 0%Sector versus SPY relative strength is rising over 1 month. | - | 0 |
| S3S2 | Sector 3M relative strengthS_SECTOR_SPY_RS_3M_UP | sector strength/weakness | context | Sector 3M relative strength > 0%Sector versus SPY relative strength is rising over 3 months. | - | 0 |
| S20S | Sector 200D trendS_SECTOR_TREND_200D | sector strength/weakness | context | sector_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 |
| S50S | Sector 50D trendS_SECTOR_TREND_50D | sector strength/weakness | context | sector_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 |
| T1TX | Ticker vs sector RS 1M upT_TICKER_SECTOR_RS_1M_UP | sector strength/weakness | context | 1M return > Sector ETF 1M returnTicker is outperforming its sector ETF over 1 month. Leading within its sector. | - | 0 |
| H12S | Sector/SPY RS Hurst 120Dhurst_sector_rs_spy_120 | sector strength/weakness | feature | Sector/SPY RS Hurst 120D == observedRaw 120-day Hurst exponent on sector versus SPY relative strength line. | - | 0 |
| H25S | Sector/SPY RS Hurst 250Dhurst_sector_rs_spy_250 | sector strength/weakness | feature | sector_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 |
| H60S | Sector/SPY RS Hurst 60Dhurst_sector_rs_spy_60 | sector strength/weakness | feature | Sector/SPY RS Hurst 60D == observedRaw 60-day Hurst exponent on sector versus SPY relative strength line. | - | 0 |
| SGRP | Minimum sector or industry relative-strength percentileS_GROUP_RS_PERCENTILE_MIN | sector strength/weakness | trigger | cross_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 |
| SRS3 | Sector RS season reversal candidateS_RS_SEASON_REVERSAL_CANDIDATE | sector strength/weakness | trigger | Sector RS season reversal candidate == trueMature cold sector relative regime is starting to improve and may support reversal/base entries. | - | 0 |
| S507 | SMA50/200 cold rebound signalS_RS_SMA50_200_COLD_REBOUND_SIGNAL | sector strength/weakness | trigger | SMA50/200 cold rebound signal == trueCold exhaustion combined with confirming ticker or sector reclaim/relative-strength turn for rebound entry tests. | - | 0 |
| S508 | SMA50/200 hot fade signalS_RS_SMA50_200_HOT_FADE_SIGNAL | sector strength/weakness | trim | SMA50/200 hot fade signal == trueHot exhaustion combined with confirming ticker or sector weakness for avoid/add-block/trim strategy tests. | - | 0 |
| L2AX | 2 ATR stopL_ATR_2 | stop loss | stop | 2 ATR stop >= 2 ATRStop two ATRs below entry or reference price. | - | 0 |
| L3AX | 3 ATR stopL_ATR_3 | stop loss | stop | 3 ATR stop >= 3 ATRStop three ATRs below entry or reference price. | - | 0 |
| LEDL | Event-day low initial stopL_EVENT_DAY_LOW | stop loss | stop | stop_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 |
| L15F | Fixed 15% stopL_FIXED_15 | stop loss | stop | Fixed 15% stop <= -15%Fixed 15% stop-loss. | - | 0 |
| L8FX | Fixed 8% stopL_FIXED_8 | stop loss | stop | Fixed 8% stop <= -8%Fixed 8% stop-loss. | - | 0 |
| LFPX | Parameterised fixed percentage stopL_FIXED_PCT | stop loss | stop | stop_price = entry_price * (1 - loss_pct)Fixed loss limit below entry, including the 7% maximum associated with the source hypothesis. | - | 0 |
| L20M | MA200 close stopL_MA200_CLOSE | stop loss | stop | close[t] > sma(close, 200)[t] and slope(sma(close, 200), 20)[t] > 0Stop on close below 200-day moving average. | - | 0 |
| L50M | MA50 close stopL_MA50_CLOSE | stop loss | stop | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Stop on close below 50-day moving average. | - | 0 |
| LNXX | No stopL_NONE | stop loss | stop | No stop == trueNo stop; fixed-horizon or exit-rule hold. | - | 0 |
| LTSX | Time stopL_TIME_STOP | stop loss | stop | Time stop == trueExit if no progress after a fixed number of days. | - | 0 |
| QBAD | Delayed breakeven stop resetQ_BREAKEVEN_AFTER_DAYS | stop reset | stop_reset | if 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 |
| QNRX | No stop resetQ_NO_RESET | stop reset | stop_reset | No stop reset == trueOriginal stop remains unchanged. | - | 0 |
| QRBX | Reset breakevenQ_RESET_BREAKEVEN | stop reset | stop_reset | Reset breakeven == trueMove stop to breakeven after gain threshold. | - | 0 |
| Q50R | Reset MA50Q_RESET_MA50 | stop reset | stop_reset | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Trail stop using 50-day moving average after trend confirms. | - | 0 |
| QRSL | Reset swing lowQ_RESET_SWING_LOW | stop reset | stop_reset | Reset swing low == trueTrail stop to new swing low after add or confirmation. | - | 0 |
| MBGX | BX Trender green (net buying pressure)M_BX_GREEN | tht bx trender | context | bx[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 |
| MBIX | BX Trender improving (light red increasing)M_BX_IMPROVING | tht bx trender | context | bx[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 |
| MBND | BX Trender not dark red (bull cycle active)M_BX_NOT_DARK_RED | tht bx trender | context | bx[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 |
| MSBN | SPY monthly BX permits THT entriesM_SPY_BX_NOT_DARK_RED | tht bx trender | context | SPY 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 |
| T2FX | Clean weekly FV low recovery — 2% capT_FV_LOW_RECOVER_2 | tht fair value | entry_diagnostic | T_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 |
| T2F1 | Weekly FV sweep/reclaim — 2% capT_FV_SWEEP_RECLAIM_2 | tht fair value | entry_diagnostic | T_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 |
| LFLS | Stop below FV lower bandL_FV_LOWER_STOP | tht fair value | stop | stop_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 |
| TFBG | FV band is green (basis rising)T_FV_BAND_GREEN | tht fair value | trigger | slope(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 |
| TFIO | Price in or near fair value zoneT_FV_IN_OR_NEAR_ZONE | tht fair value | trigger | close[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 |
| TFNB | Price near fair value basisT_FV_NEAR_BASIS | tht fair value | trigger | abs(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 |
| TFTR | Weekly FV touch and basis reclaimT_FV_TOUCH_RECLAIM | tht fair value | trigger | weekly_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 |
| T0FX | Weekly FV touch/reclaim — 0% controlT_FV_TOUCH_RECLAIM_0 | tht fair value | trigger | weekly_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 |
| T1FX | Weekly FV touch/reclaim — 1% capT_FV_TOUCH_RECLAIM_1 | tht fair value | trigger | weekly_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 |
| T2F2 | Weekly FV touch/reclaim — 2% capT_FV_TOUCH_RECLAIM_2 | tht fair value | trigger | weekly_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 |
| T3FX | Weekly FV touch/reclaim — 3% capT_FV_TOUCH_RECLAIM_3 | tht fair value | trigger | weekly_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 |
| TFT1 | Weekly FV touch and basis recovery — uncappedT_FV_TOUCH_RECOVER_UNCAPPED | tht fair value | trigger | weekly_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 |
| TFUH | Price in strict upper half of fair value bandT_FV_UPPER_HALF | tht fair value | trigger | close[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 |
| T30B | Broken below 30%T_BROKEN_BELOW_30 | ticker context | blocker | Broken below 30% > 30%Ticker is more than 30% below a recent high. | - | 0 |
| T20E | MA200 extensionT_EXTENDED_MA200 | ticker context | blocker | close[t] > sma(close, 200)[t] and slope(sma(close, 200), 20)[t] > 0Ticker is far above the 200-day moving average. | - | 0 |
| T50E | MA50 extensionT_EXTENDED_MA50 | ticker context | blocker | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker is far above the 50-day moving average. | - | 0 |
| TLRX | Ticker LPPL riskT_LPPL_RISK | ticker context | blocker | Ticker LPPL risk == trueTicker LPPL bubble/exhaustion risk is elevated. | - | 0 |
| THLT | Ticker long Hurst trendT_HURST_LONG_TREND | ticker context | context | Ticker long Hurst trend >= trend thresholdTicker long-window Hurst is above trend threshold. | - | 0 |
| THMD | Ticker Hurst mean-reversion durabilityT_HURST_MEANREV_DURABILITY | ticker context | context | Ticker Hurst mean-reversion durability == trueCount or share of long ticker Hurst windows at or below the mean-reversion threshold. | - | 0 |
| THND | Ticker Hurst noise durabilityT_HURST_NOISE_DURABILITY | ticker context | context | Ticker Hurst noise durability == trueCount or share of long ticker Hurst windows inside the neutral noise band. | - | 0 |
| T12H | Ticker price Hurst 120DT_HURST_PRICE_120D | ticker context | context | Ticker price Hurst 120D == trueLonger-window Hurst exponent on ticker price. | - | 0 |
| T25H | Ticker price Hurst 250DT_HURST_PRICE_250D | ticker context | context | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Long-window Hurst exponent on ticker price. | - | 0 |
| T50H | Ticker price Hurst 500DT_HURST_PRICE_500D | ticker context | context | Ticker price Hurst 500D == trueMulti-year Hurst exponent on ticker price. | - | 0 |
| THSM | Ticker short Hurst mean reversionT_HURST_SHORT_MR | ticker context | context | Ticker short Hurst mean reversion <= mean-reversion thresholdTicker short-window Hurst is below mean-reversion threshold. | - | 0 |
| THTD | Ticker Hurst trend durabilityT_HURST_TREND_DURABILITY | ticker context | context | Ticker Hurst trend durability == trueCount or share of long ticker Hurst windows at or above the trend threshold. | - | 0 |
| TNHX | Near highT_NEAR_HIGH | ticker context | context | Near high <= near high thresholdTicker is within a near-high band. | - | 0 |
| T20T | Ticker 200D trendT_TREND_200D | ticker context | context | close[t] > sma(close, 200)[t] and slope(sma(close, 200), 20)[t] > 0Ticker is above a rising 200-day moving average. | - | 0 |
| T50T | Ticker 50D trendT_TREND_50D | ticker context | context | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker is above a rising 50-day moving average. | - | 0 |
| TDCX | Controlled drawdownT_DD_CONTROLLED | ticker context | trigger | Controlled drawdown == trueTicker drawdown is in an acceptable pullback band. | - | 0 |
| T3HX | Ticker HMM high-vol chaosT_HMM3_HIGH_VOL_CHAOS | ticker hmm regime | blocker | Ticker HMM high-vol chaos == high-volatility chaoticPoint-in-time 3-state HMM assigns the ticker price series to a high-volatility chaotic state. | - | 0 |
| T5HX | Ticker HMM bear driftT_HMM5_BEAR_DRIFT | ticker hmm regime | blocker | Ticker 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 |
| T5H1 | Ticker HMM bear trendT_HMM5_BEAR_TREND | ticker hmm regime | blocker | Ticker HMM bear trend == directional trendPoint-in-time 5-state HMM assigns the ticker price series to a negative directional trend state. | - | 0 |
| T5H2 | Ticker HMM chaosT_HMM5_CHAOS | ticker hmm regime | blocker | Ticker HMM chaos == high-volatility chaoticPoint-in-time 5-state HMM assigns the ticker price series to a high-volatility chaotic state. | - | 0 |
| T3H1 | Ticker HMM directional trendT_HMM3_DIRECTIONAL_TREND | ticker hmm regime | context | Ticker HMM directional trend == directional trendPoint-in-time 3-state HMM assigns the ticker price series to a directional trend state. | - | 0 |
| T3H2 | Ticker HMM low-vol driftT_HMM3_LOW_VOL_DRIFT | ticker hmm regime | context | Ticker 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 |
| T5H3 | Ticker HMM bull driftT_HMM5_BULL_DRIFT | ticker hmm regime | context | Ticker 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 |
| T5H4 | Ticker HMM bull trendT_HMM5_BULL_TREND | ticker hmm regime | context | Ticker HMM bull trend == directional trendPoint-in-time 5-state HMM assigns the ticker price series to a positive directional trend state. | - | 0 |
| T251 | Ticker Hurst 250D mean-reversion stateT_HURST_250_MEANREV | ticker hurst | context | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker price 250-day Hurst exponent is <= 0.40. | - | 0 |
| T252 | Ticker Hurst 250D trend stateT_HURST_250_TREND | ticker hurst | context | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Ticker price 250-day Hurst exponent is >= 0.60. | - | 0 |
| H12T | Ticker Hurst 120Dhurst_ticker_120 | ticker hurst | feature | Ticker Hurst 120D == observedRaw 120-day Hurst exponent on ticker price. | - | 0 |
| H25T | Ticker Hurst 250Dhurst_ticker_250 | ticker hurst | feature | close[t] > sma(close, 50)[t] and slope(sma(close, 50), 20)[t] > 0Raw 250-day Hurst exponent on ticker price. | - | 0 |
| H60T | Ticker Hurst 60Dhurst_ticker_60 | ticker hurst | feature | Ticker Hurst 60D == observedRaw 60-day Hurst exponent on ticker price. | - | 0 |
| H121 | Ticker/Sector RS Hurst 120Dhurst_ticker_sector_rs_120 | ticker hurst | feature | Ticker/Sector RS Hurst 120D == observedRaw 120-day Hurst exponent on ticker versus sector relative strength line. | - | 0 |
| H251 | Ticker/Sector RS Hurst 250Dhurst_ticker_sector_rs_250 | ticker hurst | feature | sector_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 |
| H601 | Ticker/Sector RS Hurst 60Dhurst_ticker_sector_rs_60 | ticker hurst | feature | Ticker/Sector RS Hurst 60D == observedRaw 60-day Hurst exponent on ticker versus sector relative strength line. | - | 0 |
| T141 | RSI14 extendedT_RSI14_EXTENDED | ticker momentum | blocker | RSI14 extended >= 70Ticker 14-day RSI is >= 70. | - | 0 |
| T5RX | RSI5 extendedT_RSI5_EXTENDED | ticker momentum | blocker | RSI5 extended >= 90Ticker 5-day RSI is >= 90. | - | 0 |
| T1MX | 1-month momentum strongT_MOM_1M_STRONG | ticker momentum | context | 1M return >= 10%Ticker 1-month return >= 10%. Strong short-term momentum. | - | 0 |
| T1M1 | 1-month momentum upT_MOM_1M_UP | ticker momentum | context | 1-month momentum up > 0%Ticker 21-day return is positive. | - | 0 |
| T3MX | 3-month momentum strongT_MOM_3M_STRONG | ticker momentum | context | 3M return >= 30%Ticker 3-month return >= 30%. Strong medium-term momentum. | - | 0 |
| T3M1 | 3-month momentum upT_MOM_3M_UP | ticker momentum | context | 3M return > 0%Ticker 3-month return is positive. Basic uptrend confirmation. | - | 0 |
| T3RX | Relative strength vs SPY 3MT_RS_SPY_3M_UP | ticker momentum | context | 3M return > SPY 3M returnTicker 3-month return exceeds SPY 3-month return. Outperforming the market. | - | 0 |
| R14X | RSI 14-dayrsi14 | ticker momentum | feature | RSI 14-day == observedRaw 14-day RSI value. | - | 0 |
| R5XX | RSI 5-dayrsi5 | ticker momentum | feature | RSI 5-day == observedRaw 5-day RSI value. | - | 0 |
| TPAM | Minimum prior advanceT_PRIOR_ADVANCE_MIN | ticker momentum | setup | close[t] / min(low[t-lookback_days+1:t]) - 1 >= min_advanceRequires evidence of exceptional prior price strength before the current setup. | - | 0 |
| TRPM | Minimum ticker relative-strength percentileT_RS_PERCENTILE_MIN | ticker momentum | trigger | cross_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 |
| TBDM | Maximum base depthT_BASE_DEPTH_MAX | ticker recent pattern | setup | pivot_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 |
| TBRC | Base range contractionT_BASE_RANGE_CONTRACTION | ticker recent pattern | setup | short_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 |
| TBVD | Base volume dry-upT_BASE_VOLUME_DRYUP | ticker recent pattern | setup | avg(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 |
| T60R | Range contraction strict 60%T_RANGE_CONTRACT_STRICT60 | ticker recent pattern | setup | 5D range / 20D avg range <= 0.605-day range is at most 60% of the 20-day average range. Volatility contraction pattern (VCP-like). | - | 0 |
| T5R1 | RSI5 washoutT_RSI5_WASHOUT | ticker recent pattern | setup | RSI5 washout <= 355-period RSI <= 35. Short-term oversold condition for mean reversion entries. | - | 0 |
| TTCU | Tight range + close upper halfT_TIGHT_CLOSE_UPPER_HALF | ticker recent pattern | setup | 5D 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 |
| TBVR | Breakout volume ratioT_BREAKOUT_VOLUME_RATIO | ticker recent pattern | trigger | volume[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 |
| T45B | Forward markup break forecast top 5%T_BREAK_FORECAST_4W_TOP_5 | ticker recent pattern | trigger | T_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 |
| T20C | 20-day close breakoutT_CLOSE_BREAK_20D_HIGH | ticker recent pattern | trigger | Close > Prior 20D highClose broke above the 20-day high. Primary breakout entry trigger. | - | 0 |
| TCBR | Close breakout above rolling highT_CLOSE_BREAK_ROLLING_HIGH | ticker recent pattern | trigger | close[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 |
| TCGX | CML regime green (stacked EMAs + momentum)T_CML_GREEN | ticker recent pattern | trigger | state 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 > EMA20 > EMA50 with ROC(10) >= 0 arms the state; EMA8 crossing below EMA20 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 |
| T5NX | No 5-day chaseT_NO_CHASE_5D | ticker recent pattern | trigger | 5D return <= 8%5-day return <= 8%. Avoid entries after the stock has already run up significantly. | - | 0 |
| TPDM | Maximum distance above pivotT_PIVOT_DISTANCE_MAX | ticker recent pattern | trigger | pivot_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 |
| TTBX | Triangle resistance breakout triggerT_TRIANGLE_BREAKOUT | ticker recent pattern | trigger | T_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 stop is the entry-day low (stop_type = breakout_low) so the trade carries a defined structural invalidation. Candle anatomy is exported as continuous features (body strength, range in ATR, stop distance) for entry-quality measurement. | -0.2% | 10,645 |
| TTCX | Triangle consolidation with fitted geometryT_TRIANGLE_CONSOLIDATION | ticker recent pattern | trigger | origin = 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 EMA20 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 |
| TVCX | Volume confirmationT_VOLUME_CONFIRM | ticker recent pattern | trigger | Volume > Prior 20D avg volumeBreakout volume is above recent average. Demand confirmation on the breakout entry. | - | 0 |
| T451 | Recent markup break nowcast top 5%T_BREAK_NOWCAST_4W_TOP_5 | ticker recent pattern | trim | T_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 |
| T452 | Recent markup break nowcast top 5%, price confirmedT_BREAK_NOWCAST_4W_TOP_5_CONFIRMED | ticker recent pattern | trim | T_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 |
| TBPC | Markup break price confirmationT_BREAK_PRICE_CONFIRMED | ticker recent pattern | trim | T_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 |
| R3T2 | Ticker/sector HMM chaosR_TICKER_SECTOR_HMM3_CHAOS | ticker relative hmm regime | blocker | Ticker/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 |
| R3T3 | Ticker/sector HMM lagR_TICKER_SECTOR_HMM3_LAG | ticker relative hmm regime | blocker | Ticker/sector HMM lag == negative laggingPoint-in-time 3-state HMM assigns the ticker versus sector relative-strength line to a negative lagging state. | - | 0 |
| R5TX | Ticker/sector HMM chaosR_TICKER_SECTOR_HMM5_CHAOS | ticker relative hmm regime | blocker | Ticker/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 |
| R5T1 | Ticker/sector HMM lag driftR_TICKER_SECTOR_HMM5_LAG_DRIFT | ticker relative hmm regime | blocker | Ticker/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 |
| R5T2 | Ticker/sector HMM lag trendR_TICKER_SECTOR_HMM5_LAG_TREND | ticker relative hmm regime | blocker | Ticker/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 |
| R3T4 | Ticker/sector HMM leadR_TICKER_SECTOR_HMM3_LEAD | ticker relative hmm regime | context | Ticker/sector HMM lead == positive leadershipPoint-in-time 3-state HMM assigns the ticker versus sector relative-strength line to a positive leadership state. | - | 0 |
| R5T3 | Ticker/sector HMM lead driftR_TICKER_SECTOR_HMM5_LEAD_DRIFT | ticker relative hmm regime | context | Ticker/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 |
| R5T4 | Ticker/sector HMM lead trendR_TICKER_SECTOR_HMM5_LEAD_TREND | ticker relative hmm regime | context | Ticker/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 |
| R11X | 1-month returnret_1m | ticker return | feature | 1-month return == observedRaw ticker 21-day simple return. | - | 0 |
| R33X | 3-month returnret_3m | ticker return | feature | 3-month return == observedRaw ticker 63-day simple return. | - | 0 |
| T214 | Above EMA200T_ABOVE_EMA200 | ticker trend | context | close[t] > ema(close, 200)[t]Ticker close is above the 200-day exponential moving average. | - | 0 |
| T21A | Above EMA21T_ABOVE_EMA21 | ticker trend | context | close[t] > ema(close, 21)[t]Ticker close is above the 21-day exponential moving average. Short-term trend positive. | - | 0 |
| T50A | Above EMA50T_ABOVE_EMA50 | ticker trend | context | Close > 50D EMATicker is trading above its 50-day exponential moving average. | - | 0 |
| T8AX | Above EMA8T_ABOVE_EMA8 | ticker trend | context | Close > 8D EMATicker is trading above its 8-day exponential moving average. Short-term strength. | - | 0 |
| T501 | Above MA50T_ABOVE_MA50 | ticker trend | context | Close > 50D SMATicker is trading above its 50-day moving average. Uptrend context. | - | 0 |
| TESB | EMA stack bullishT_EMA_STACK_BULL | ticker trend | context | close[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 |
| TMSB | MA stack bullishT_MA_STACK_BULL | ticker trend | context | sma(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 |
| AABX | Add breakoutA_ADD_BREAKOUT | trade management | add | Add breakout == trueAdd on breakout after initial entry. | - | 0 |
| AAPH | Add pullback holdA_ADD_PULLBACK_HOLD | trade management | add | Add pullback hold == trueAdd when pullback holds support. | - | 0 |
| AARC | Add RS confirmationA_ADD_RS_CONFIRM | trade management | add | Add RS confirmation == trueAdd when ticker or sector relative strength confirms. | - | 0 |
| AAVR | Add VCP reloadA_ADD_VCP_RELOAD | trade management | add | Add VCP reload == trueAdd on a later VCP setup. | - | 0 |
| ANXX | No addA_NONE | trade management | add | No add == trueNo additional buys after initial entry. | - | 0 |
| X22X | 2R profit targetX_2R_TARGET | trade management | exit | X_2R_TARGETTrim at entry + 2*risk (where risk = entry - initial stop). R-multiple based profit target. | - | 0 |
| X44X | 4 consecutive green candle signalX_4GC_SIGNAL | trade management | exit | X_4GC_SIGNALTrim when 4 consecutive bars have close > previous close. Momentum signal for second-stage trim. | - | 0 |
| X4GX | 4 consecutive green candles exitX_4_GREEN_CANDLES | trade management | exit | count(close[t-i] > close[t-i-1] for i in 0..3) >= 4Exit long after 4 consecutive higher closing days (momentum exhaustion). | - | 0 |
| XBBX | Subsequent base breakdown exitX_BASE_BREAKDOWN | trade management | exit | close[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 |
| XBEX | Bearish engulfing exitX_BEARISH_ENGULFING | trade management | exit | close[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 |
| XBUX | Upper Bollinger Band exitX_BOLLINGER_UPPER | trade management | exit | close[t] > sma(close, 20)[t] + 2 * stddev(close, 20)[t]Exit long when price closes above 20-day upper Bollinger Band. | - | 0 |
| XBBR | Failed breakout base re-entryX_BREAKOUT_BASE_REENTRY | trade management | exit | days_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 |
| XBDR | BX Trender dark red (regime change)X_BX_DARK_RED | trade management | exit | bx[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 |
| X21E | Early EMA21 exitX_EARLY_EMA21 | trade management | exit | X_EARLY_EMA21Exit on close < EMA21 before first trim fires. Catches failed breakouts that never reach the first profit target. | - | 0 |
| X10E | 10-day EMA trailing exitX_EMA10_TRAIL | trade management | exit | close[t] < ema(close, 10)[t]Exit long when price closes below 10-day EMA. | - | 0 |
| X211 | EMA21-ATR fixed stop (set-once)X_EMA21_ATR_FIXED | trade management | exit | X_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 |
| X212 | EMA21 trail exitX_EMA21_TRAIL | trade management | exit | trend_filter == trueExit on close < EMA21. Medium-term trend trail. Pairs with X_HOLD_MIN_D63 for 3-month hold-then-trail. | - | 0 |
| X50E | EMA50 trail exitX_EMA50_TRAIL | trade management | exit | trend_filter == trueExit on close < EMA50. Slow trail for long-term trend following. Wider room, fewer whipsaws. | - | 0 |
| X8EX | EMA8 trail exitX_EMA8_TRAIL | trade management | exit | trend_filter == trueExit on close < EMA8. Fast trail for runner positions or short-term trend following. | - | 0 |
| X101 | Episodic event EMA10 runner exitX_EVENT_RUNNER_EMA10 | trade management | exit | exit 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 |
| X1FX | Exit 1MX_FIXED_1M | trade management | exit | Exit 1M >= 21 barsExit after 1 month. | - | 0 |
| X3FX | Exit 3MX_FIXED_3M | trade management | exit | Exit 3M >= 63 barsExit after 3 months. | - | 0 |
| X6FX | Exit 6MX_FIXED_6M | trade management | exit | Exit 6M >= 126 barsExit after 6 months. | - | 0 |
| XFBX | Price closed below FV lower bandX_FV_BREAKDOWN | trade management | exit | close[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 |
| X1F1 | Price reached X1 deviation band (moderate overextension)X_FV_X1_TRIM | trade management | exit | close[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 |
| X2FX | Price reached X2 deviation band (severe overextension)X_FV_X2_TRIM | trade management | exit | close[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 |
| X10H | Hold minimum 10 daysX_HOLD_MIN_D10 | trade management | exit | trend_filter == trueTime gate: no trend exit before 10 trading days. Compose with an EMA trail atom. | - | 0 |
| X12H | Hold minimum 126 daysX_HOLD_MIN_D126 | trade management | exit | trend_filter == trueTime gate: no trend exit before 126 trading days (6 months). Long-hold runner strategies. | - | 0 |
| X21H | Hold minimum 21 daysX_HOLD_MIN_D21 | trade management | exit | trend_filter == trueTime gate: no trend exit before 21 trading days (1 month). Compose with an EMA trail atom. | - | 0 |
| X5HX | Hold minimum 5 daysX_HOLD_MIN_D5 | trade management | exit | trend_filter == trueTime gate: no trend exit before 5 trading days. Compose with an EMA trail atom. | - | 0 |
| X63H | Hold minimum 63 daysX_HOLD_MIN_D63 | trade management | exit | trend_filter == trueTime gate: no trend exit before 63 trading days (3 months). Compose with an EMA trail atom. | - | 0 |
| XMBX | Market bear exitX_MARKET_BEAR | trade management | exit | Market bear exit == bearExit or de-risk on bear regime. | - | 0 |
| X20M | MA 20/50 crossover exitX_MA_CROSS_20_50 | trade management | exit | sma(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 |
| XNPX | Early no-progress exitX_NO_PROGRESS | trade management | exit | days_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 |
| XPSX | Parabolic SAR exitX_PARABOLIC_SAR | trade management | exit | close[t] < psar[t]Exit long when price closes below the Parabolic SAR dot. | - | 0 |
| X14R | RSI(14) overbought exitX_RSI14_70 | trade management | exit | rsi(close, 14)[t] >= 70Exit long when RSI(14) reaches 70 (overbought). Pairs with RSI oversold entry. | - | 0 |
| XRBX | Relative strength breakX_RS_BREAK | trade management | exit | Relative strength break == trueExit on ticker-sector or ticker-SPY relative strength break. | - | 0 |
| XRRX | Relative-strength rollover exitX_RS_ROLLOVER | trade management | exit | linreg_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 |
| XSDX | Score decay exitX_SCORE_DECAY | trade management | exit | Score decay exit == trueExit when selection or entry score decays. | - | 0 |
| XSBX | Sector breakX_SECTOR_BREAK | trade management | exit | Sector break == trueExit when sector trend or relative strength fails. | - | 0 |
| X21S | Snapshot EMA21-ATR stop actionX_SNAPSHOT_EMA21_ATR | trade management | exit | relative_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 |
| XSOX | Stop only exitX_STOP_ONLY | trade management | exit | Stop only exit == trueExit only by stop or explicit risk rule. | - | 0 |
| X5TX | 5% profit targetX_TARGET_5PCT | trade management | exit | close[t] >= entry_price * 1.05Close trade when 5% gain is reached. | - | 0 |
| X5T1 | 5-day time exitX_TIME_5D | trade management | exit | exit when bars_since_entry >= 5Exit all trades after exactly 5 trading days. | - | 0 |
| X25T | Break-even trailing stop (2%/5%)X_TRAIL_2PCT_5PCT | trade management | exit | if 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 |
| E20M | MA 20/50 crossover entryE_MA_CROSS_20_50 | trend following | trigger | sma(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 |
| PTMR | Trim market riskP_TRIM_MARKET_RISK | trim | blocker | Trim market risk == trueTrim if broad market risk rises. | - | 0 |
| PEST | Early strength partial trimP_EARLY_STRENGTH_TRIM | trim | trim | if 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 |
| PNXX | No trimP_NONE | trim | trim | No trim == trueNo partial trims. | - | 0 |
| P25T | Trim 25% at +20%P_TRIM_25_AT_20 | trim | trim | Trim 25% at +20% >= 20%Trim 25% of position after 20% gain. | - | 0 |
| P33T | Trim 33% at +50%P_TRIM_33_AT_50 | trim | trim | Trim 33% at +50% >= 50%Trim one-third of position after 50% gain. | - | 0 |
| PTEX | Trim extensionP_TRIM_EXTENSION | trim | trim | Trim extension == trueTrim on MA or RSI extension. | - | 0 |
| PTLX | Trim LPPL riskP_TRIM_LPPL | trim | trim | Trim LPPL risk == trueTrim on high LPPL risk. | - | 0 |
| PTSR | Trim sector rolloverP_TRIM_SECTOR_ROLLOVER | trim | trim | Trim sector rollover == trueTrim if sector relative strength rolls over. | - | 0 |
| T60G | Gap activity 60DT_GAP_ACTIVITY_60D | volatility | setup | Gap activity 60D >= 2At least 2 gap moves in the trailing 60 days. Indicates institutional activity or news catalysts. | - | 0 |
| THAX | High ADRT_HIGH_ADR | volatility | setup | ATR20 / close >= 2%Average daily range (ATR as % of price) >= 2%. Enough volatility to pay for the risk of the trade. | - | 0 |
| ENRB | Narrowest range breakout upE_NARROW_RANGE_BREAKOUT_UP | volatility expansion | trigger | range[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 |
| TGVE | GARCH volatility expansion gateT_GARCH_VOL_EXPANSION | volatility forecast | context | garch_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 |
| TGVF | GARCH(1,1) forecasted true rangeT_GARCH_VOL_FORECAST | volatility forecast | context | log_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 |
| EBBU | Upper Bollinger Band breakoutE_BOLLINGER_BREAKOUT_UP | volatility momentum | trigger | close[t] > sma(close, 20)[t] + 2 * stddev(close, 20)[t]Close above 20-day upper Bollinger Band (2 std dev). Volatility momentum entry. | - | 0 |
| T20U | Up-volume 20D strongT_UPVOL_20D_STRONG | volume | context | Up-volume 20D strong >= 60%Up-day volume ratio over 20 days >= 60%. Buying pressure dominates selling pressure. | - | 0 |