Nodes: Filters
Complete reference for Trend, Volatility, Volume, Time, and Regime filter nodes — gatekeepers that allow or block entry/exit signals based on market conditions.
Filters Overview
Filter nodes act as gatekeepers — they allow or block entry/exit signals based on market conditions. Unlike conditions (which evaluate to true/false and feed into logic/entry), filters attach directly to Entry/Exit nodes via dedicated filter-* handles.
A filter producing gate=true ALLOWS the entry; gate=false BLOCKS it. This separation means your signal logic (conditions) stays clean and focused, while market-context rules (filters) are applied independently at the execution layer.
The most common mistake in strategy building is conflating signals with context. A signal says “I see a trade setup.” A filter says “The market is in a state where I trust my setups.” Separating them with dedicated filter nodes lets you toggle market regimes on/off without rewriting your core entry logic.
Common Properties of All Filter Nodes
- A
gateoutput handle (RIGHT edge) that connects to Entryfilter-0throughfilter-4or Exitfilter-0throughfilter-4handles. - A
filterTypeselector (trend,volatility,volume,time,regime) that determines the inspector form and available configuration options. - Config options that vary by filter type — each filter type reveals a tailored set of parameters in the inspector panel.
- Optional per-node MTF (Multi-Timeframe) override, allowing each filter to operate on a different symbol, bar type, or timeframe than the data source default.
Filter Slots and Stacking
Entry nodes have 5 filter slots — you can stack up to 5 filters per entry direction (Long or Short). Exit nodes also have 5 filter slots for signal-based exits.ALL active filters must pass (gate=true) for the entry or exit to fire. There is no “OR” mode for filters — they always AND together. If you need OR logic between filters, use a Logic Gate node to combine their outputs before connecting to the Entry/Exit filter handle.
Filters are evaluated independently at each bar. If you stack 5 filters and one fails even temporarily, the entire trade opportunity is blocked for that bar. A strategy that requires too many simultaneous filter conditions may never trade at all. Start with 1-2 essential filters and add more only after verifying the strategy generates trades.
Filter Node Parameters (Common)
| Parameter | Type | Default | Description |
|---|---|---|---|
| filterType | select | trend | Determines the filter category and which input handle is exposed (filter-indicator, filter-ds, or none). Changing this resets filter-specific config. |
| alias | string | — (required) | Unique label shown on the canvas node. Must be unique within the strategy. |
| display_name | string | — (optional) | Longer descriptive name shown in tooltips and the inspector header. |
| mtf_enabled | boolean | false | When true, exposes symbol, bar_type, and timeframe selectors for per-node MTF override. |
| mtf_symbol | select | — (parent DS symbol) | Symbol override when MTF is enabled. Uses parent data source symbol by default. |
| mtf_bar_type | select | — (parent DS bar_type) | Bar type override (time, tick, volume, dollar, renko) when MTF is enabled. |
| mtf_timeframe | select | — (parent DS timeframe) | Timeframe override (1m, 5m, 15m, 1h, 4h, 1d, 1w) when MTF is enabled. |
Trend Filter
Filters entries based on trend direction determined by a connected indicator. The trend filter is the most commonly used filter type — it ensures you only trade in the direction of the prevailing trend, one of the oldest and most reliable edges in trading.
Filter Type
trend
Input Handle
filter-indicator (LEFT edge). Connect an indicator node here. The trend filter reads the indicator's current value at each bar to determine trend direction. The connected indicator must output a scalar or series value — you cannot connect data sources or other filter types to this handle.
The filter-indicator handle is what makes the trend filter different from a simple condition. Instead of hard-coding a comparison like “SMA 200 > SMA 50,” you connect the indicator visually on the canvas. This means you can swap trend indicators without touching the filter config — just reconnect the handle.
Trend Direction
How to interpret the indicator value relative to the threshold:
| Parameter | Type | Default | Description |
|---|---|---|---|
| above | select option | — | Signal allowed when the indicator value is ABOVE the threshold (bullish trend). Example: ADX value > 25 indicates a trending market. |
| below | select option | — | Signal allowed when the indicator value is BELOW the threshold (bearish trend). Example: RSI < 30 indicates oversold conditions. |
| cross_above | select option | — | Signal allowed at the bar where the indicator value crosses ABOVE the threshold (trend turning bullish). Uses lookback for cross detection. |
| cross_below | select option | — | Signal allowed at the bar where the indicator value crosses BELOW the threshold (trend turning bearish). Uses lookback for cross detection. |
Do not connect a raw price-moving-average (like SMA 200) and set “above” with threshold 0. Since price is always > 0, this filter would always pass and do nothing. Instead, use indicators that produce meaningful threshold values: ADX to check if a market is trending (threshold 25), ATR to check volatility (threshold depends on asset), or a custom trend-regime indicator with defined bullish/bearish thresholds.
Common Trend Indicator Pairings
- ADX(14) > 25: Market is trending (not ranging). Use before trend-following entries to avoid chop. Set direction to
above, threshold to 25. - SuperTrend indicator = 1 (bullish): Use a SuperTrend indicator that outputs 1 for bullish and -1 for bearish. Set direction to
above, threshold to 0 to only allow entries when SuperTrend is bullish. - EMA 50 slope > 0: Use a custom indicator that calculates the slope of EMA 50. Positive slope = uptrend. Set direction to
above, threshold to 0. - Price relative to SMA 200: Use a custom indicator that outputs the percentage distance from SMA 200. Set direction to
above, threshold to 0 (price above SMA) or a positive value (price significantly above SMA).
Threshold
A fixed numeric value to compare against the indicator's current value. The comparison is determined by the Trend Direction setting:
- For
above: Indicator value > threshold - For
below: Indicator value < threshold - For
cross_above: Indicator crossed from below to above threshold - For
cross_below: Indicator crossed from above to below threshold
Lookback
Integer number of bars for cross detection. Only meaningful when Trend Direction is cross_above or cross_below. Determines how many bars back to check for the crossing event. Default: 1 (checks only the previous bar). Larger values (3-5) can filter out whipsaw crosses but introduce a slight delay.
Output Handle
gate (RIGHT). Connect to Entry/Exit filter-0 through filter-4.
MTF Support
When data source MTF is enabled, the trend filter can use its own symbol, bar_type, and timeframe selectors independently. This is powerful: you can have a 1h data source feeding an entry node, but the trend filter checks the daily trend (1d timeframe) to ensure the macro trend aligns with your entry direction.
Trend Filter Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| direction | select | above | How to interpret indicator vs threshold. Options: above, below, cross_above, cross_below. |
| threshold | number | 0 | Fixed numeric threshold to compare the indicator value against. Choose based on the indicator being used (e.g., 25 for ADX). |
| lookback | integer | 1 | Bars to look back for cross detection. Only used with cross_above/cross_below directions. Higher values reduce whipsaws. |
Image Placeholder: Trend filter inspector showing an ADX indicator connected, direction set to 'above', threshold 25, and the gate output handle highlighted.
Volatility Filter
Filters entries based on market volatility conditions. Use this filter to avoid trading when the market is too calm (no movement = no opportunity) or too volatile (wide spreads, slippage risk). The volatility filter connects to a data source and computes volatility from price data.
Filter Type
volatility
Input Handle
filter-ds (LEFT edge). Connect a data source node here. The volatility filter uses OHLC price data from the data source to compute volatility according to the selected method.
Method
| Parameter | Type | Default | Description |
|---|---|---|---|
| ATR | select option | — | Average True Range — measures absolute price range in the asset's price units. Higher ATR = more volatile. Uses the configured Period for the ATR lookback. Best for absolute volatility comparison within a single asset. |
| Bollinger | select option | — | Bollinger Band width (upper band − lower band) expressed as a percentage of the middle band. Normalized volatility measure that works across assets. Uses Period (default 20) and StdDev multiplier (default 2.0). |
| Historical | select option | — | Standard deviation of log returns over the lookback period, annualized and expressed as a percentage. Unlike ATR, this is direction-independent pure volatility. Period controls the lookback window. |
Different volatility methods answer different questions. ATR tells you “how many dollars/points does this move per bar?” — useful for stop-loss sizing. Historical vol tells you “how erratic are returns?” — useful for regime detection. Bollinger width tells you “how stretched are prices?” — useful for mean-reversion entry timing. Choose the method that matches your strategy's logic.
Period
Integer lookback period for the selected volatility method:
- ATR: Default 14. Shorter periods (7-10) for responsive volatility, longer (20-30) for smoother readings.
- Bollinger: Default 20. This is the SMA period for the middle band. The width is computed from this middle band and the upper/lower bands.
- Historical: Default 20. Number of bars over which to compute the standard deviation of returns.
Threshold
The volatility value to compare against. Entry is allowed when volatility is above or below this value, depending on the Comparison setting. The threshold should be set based on the asset and method:
- ATR: For a stock trading at $100, ATR(14) of $2.50 means the average bar range is 2.5% of price. Set threshold to 2.0 to require at least $2 of range per bar.
- Bollinger: Width of 5% means the bands are narrow (low vol). Width of 15% means wide (high vol). Threshold depends on the asset's typical width range.
- Historical: Annualized vol of 20% is moderate for equities, 50%+ is high. Crypto typically runs 60-100%+ annualized vol.
Comparison
| Parameter | Type | Default | Description |
|---|---|---|---|
| above | select option | — | Allow entry when volatility EXCEEDS the threshold. Use for strategies that require active price movement (breakout, momentum). "Only trade when the market is moving." |
| below | select option | — | Allow entry when volatility is UNDER the threshold. Use for strategies that prefer calm conditions (mean-reversion, range-bound). "Avoid trading during chaos." |
A common error is setting the volatility threshold without checking historical volatility ranges for the asset. An ATR threshold of 5.0 might be far too high for a low-volatility forex pair but trivially met by a volatile crypto. Always backtest your threshold against the asset's historical volatility distribution before committing to a value.
Output Handle
gate (RIGHT). Connect to Entry/Exit filter-0 through filter-4.
Volatility Filter Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| method | select | ATR | Volatility computation method. Options: ATR, Bollinger, Historical. |
| period | integer | 14 (ATR) / 20 (Bollinger, Historical) | Lookback period for the selected method. Shorter = more responsive, longer = smoother. |
| threshold | number | — (required) | Volatility threshold value. Units depend on the selected method (absolute for ATR, percentage for Bollinger/Historical). |
| comparison | select | above | Whether to allow entry when volatility is above or below the threshold. |
Image Placeholder: Volatility filter inspector showing ATR method selected, period 14, threshold 2.5, comparison 'above', with a data source connected to the filter-ds handle.
Volume Filter
Filters entries based on trading volume conditions. Volume confirms price action — a breakout on high volume is more significant than one on low volume. The volume filter connects to a data source and uses the volume data from each bar.
Filter Type
volume
Input Handle
filter-ds (LEFT edge). Connect a data source node. The volume filter reads the volume field from each bar (and OHLC for VWAP) to compute volume-based conditions. The data source must provide volume data — most exchange data sources include this by default.
Method
| Parameter | Type | Default | Description |
|---|---|---|---|
| SMA_volume | select option | — | Compares current bar volume to its Simple Moving Average. "Volume > SMA(volume, 20)" means above-average volume — a volume surge. The threshold is a multiplier (e.g., 1.5 = 1.5x average). Best for confirming breakouts and reversals. |
| VWAP | select option | — | Volume Weighted Average Price — the average price weighted by volume at each price level. Price above VWAP = bullish volume pressure (buyers in control). Price below VWAP = bearish volume pressure (sellers in control). The threshold is the percentage distance from VWAP. |
| OBV | select option | — | On-Balance Volume — cumulative volume indicator that adds volume on up bars and subtracts on down bars. Rising OBV = accumulation (smart money buying). Falling OBV = distribution (smart money selling). The threshold is the OBV change rate over the lookback period. |
Method Details
SMA_volume
The simplest and most widely used volume filter. Computes a Simple Moving Average of volume over the lookback period. At each bar, divides current volume by the SMA to get a ratio. A ratio of 1.0 means average volume. 2.0 means double the average — a significant surge.
Example: Set threshold to 1.5 and comparison to above. Entry only fires when current volume is at least 1.5x the 20-bar average volume. This filters out low-volume breakouts and ensures you enter on conviction.
VWAP
VWAP resets daily (or per-session in crypto). It is the benchmark for institutional execution quality. Price above VWAP means the average participant is profitable on the day — bullish sentiment. The threshold is a percentage distance:
- Threshold 0, comparison
above: Price is above VWAP by any amount. - Threshold 1.0, comparison
above: Price is at least 1% above VWAP (strong bullish conviction). - Threshold 0.5, comparison
below: Price is at least 0.5% below VWAP (bearish pressure).
OBV
OBV is cumulative — it trends over time. The filter checks the OBV change rate: how much OBV has changed over the lookback period, normalized. Positive rate = accumulation, negative rate = distribution.
Example: Set threshold to 0, comparison to above. Entry only fires when OBV is trending up (accumulation phase). Combined with a trend filter, this confirms that volume supports the trend direction.
Threshold and Comparison
Same pattern as the volatility filter — a numeric threshold compared with above or below. The meaning of the threshold depends on the method:
- SMA_volume: Multiplier (1.5 = 1.5x average volume).
- VWAP: Percentage distance (0.5 = 0.5% from VWAP).
- OBV: Normalized change rate (0.05 = 5% positive OBV change rate).
Volume is the one data point that cannot be manipulated at scale. Price can be painted, spreads can widen, but genuine volume represents real capital commitment. A strategy that ignores volume is flying blind — volume filters add a layer of authenticity to every signal your strategy generates.
Output Handle
gate (RIGHT). Connect to Entry/Exit filter-0 through filter-4.
Volume Filter Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| method | select | SMA_volume | Volume analysis method. Options: SMA_volume, VWAP, OBV. |
| period | integer | 20 | Lookback period for the SMA_volume and OBV methods. Not used by VWAP (which resets daily/session). |
| threshold | number | 1.0 | Threshold for comparison. Multiplier for SMA_volume, percentage for VWAP, change rate for OBV. |
| comparison | select | above | Whether to allow entry when the computed volume metric is above or below the threshold. |
Image Placeholder: Volume filter inspector showing SMA_volume method, period 20, threshold 1.5, comparison 'above'. A data source is connected to filter-ds handle.
Time Filter
Filters entries based on day-of-week and time-of-day windows. This filter is unique — it needs NO data input. It reads the timestamp from each bar being evaluated and determines whether the bar falls within the allowed trading windows.
Filter Type
time
Input Handles
NONE. The time filter is completely self-contained. It does not connect to any other node. This makes it the simplest filter to configure — just place it on the canvas, configure the schedule, and connect its gate output to an Entry/Exit filter slot.
Time-based filtering is one of the most underutilized edges in retail trading. Market behavior varies dramatically by session: the first 30 minutes after open have wide spreads and unpredictable direction; the London-NY overlap (8:00-12:00 EST) has the deepest liquidity; Friday afternoons carry weekend gap risk. A time filter transforms your strategy from “always on” to “only when conditions are favorable.”
Day of Week
Multi-select checkboxes — which days of the week to allow trading. Options: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. Default: all selected.
Each day operates independently. An entry is allowed if the bar's timestamp falls on an allowed day AND within an allowed time window. Both conditions must be satisfied.
Common Day Selections:
- Deselect Monday: Avoid week-start chop and post-weekend repositioning. Monday ranges are often contained within Friday's range.
- Tue-Thu only: Midweek trading — the most consistent sessions. Most institutional flow occurs midweek.
- Wed-Fri only: Capture midweek momentum and end-of-week positioning without Monday uncertainty.
- Deselect Friday: Avoid holding positions over the weekend when gaps can occur. Critical for swing trading strategies.
- All 7 days: Crypto markets trade 24/7. For crypto strategies, all days are typically enabled.
Time Windows
An array of time ranges, each with a start time and end time in HH:MM format (24-hour, exchange timezone). Multiple windows can be added — the filter allows entries when the bar's timestamp falls within ANY of the defined windows on an allowed day.
Time Window Examples:
- 09:30–16:00: US equity market hours (EST). The primary session for US stocks and ETFs.
- 08:00–12:00: London morning session. High liquidity in forex and European equities.
- 13:00–17:00: London-NY overlap (UTC). Peak liquidity in forex — EUR/USD, GBP/USD spreads are tightest.
- 02:00–05:00: Asian session (UTC). Lower liquidity, wider spreads. Often avoided by institutional strategies.
- 00:00–23:59: Full 24-hour session. For crypto strategies that want all hours but specific days.
Time windows use the EXCHANGE timezone, not your local timezone. A window set to 09:30–16:00 on a US stock data source means US Eastern Time. If your data source is crypto (UTC timestamps), 09:30–16:00 means UTC morning, which may not align with the session you intended to target. Always verify your data source's timezone before configuring time windows.
Common Time-Based Patterns
- Avoid the first 30 minutes after market open: Set time window to 10:00–16:00 (skipping 09:30–10:00 EST). The opening auction and initial price discovery create wide spreads and erratic price action. Many institutional algos wait 30 minutes before executing.
- Trade only the London-NY overlap: Set time window to 13:00–17:00 UTC, days Mon-Thu. This 4-hour window has the deepest forex liquidity and tightest spreads. Ideal for scalping strategies.
- Avoid Friday afternoons: Set time window to 09:30–14:00 on Fridays (close positions before the weekend). Weekend gaps can be severe, especially around news events. Swing traders should flat all positions by Friday close.
- Avoid news events: Time filter alone cannot handle this — news events like NFP (first Friday of each month, 08:30 EST) or FOMC (Wed, 14:00 EST, every 6 weeks) require an external economic calendar. For manual trading, you can temporarily disable strategies during these windows.
- Asia session drift: During 00:00–08:00 UTC, forex pairs often drift in low-volume consolidation. Trend-following strategies that rely on momentum perform poorly during these hours. Use a time filter to restrict to higher-volatility sessions.
Output Handle
gate (RIGHT). Connect to Entry/Exit filter-0 through filter-4.
Time Filter Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| days | multi-select | All days selected | Days of the week to allow entries. Options: Monday through Sunday. Deselect days to block trading on those days. |
| time_windows | array of {start, end} | [{start: "00:00", end: "23:59"}] | Time ranges in HH:MM format (exchange timezone). Multiple windows can be added. Entry is allowed when bar timestamp falls within ANY window on an allowed day. |
Image Placeholder: Time filter inspector showing Monday deselected (grayed out), time window 09:30–16:00 active, with a second window 08:00–12:00 being configured. Day-of-week checkboxes and time window rows clearly visible.
Regime Filter
Filters entries based on detected market regime — the macro state of the market (bull, bear, ranging, or transition). Different strategies work in different regimes: trend followers need trending markets, mean-reversion strategies need ranging markets. The regime filter automatically classifies the current regime and gates entries accordingly.
Filter Type
regime
Input Handle
filter-ds (LEFT edge). Connect a data source for price data. The regime filter uses OHLC data to classify the current market regime.
“There are no bad strategies, only strategies applied to the wrong regime.” A trend-following strategy will get chopped to death in a ranging market. A mean-reversion strategy will get run over in a strong trend. The regime filter is the meta-strategy that decides WHEN your strategy should be active. It is the single highest-leverage filter you can add — it can turn a losing strategy profitable by simply keeping it out of unfavorable regimes.
Method
| Parameter | Type | Default | Description |
|---|---|---|---|
| HMM | select option | — | Hidden Markov Model — unsupervised ML regime detection. The algorithm learns regimes directly from price action with no labeled data. Computationally heavier than other methods (requires fitting on lookback data). Produces 2-4 regime states which are labeled post-hoc based on their return characteristics. Best for adaptive, data-driven regime classification. |
| ADX | select option | — | Simple ADX-based classification. ADX > 25 = trending, ADX < 20 = ranging, ADX 20–25 = transition. Fast, deterministic, and widely understood. Does not distinguish bull from bear — use in combination with a trend filter for direction. |
| MA_alignment | select option | — | Multiple moving average alignment. Checks the ordering of 3 MAs (short, medium, long). Perfect bullish order (short > medium > long) = Bull. Perfect bearish (short < medium < long) = Bear. Crossed/crisscrossed = Range. Simple, visual, and easy to understand. |
| volatility_regime | select option | — | Volatility-percentile-based regime classification. Computes the current volatility percentile within the lookback window. High vol (top quartile) = turbulent regime, low vol (bottom quartile) = calm regime, middle = normal. Good for strategies that adjust behavior based on volatility environment. |
Method Details
HMM (Hidden Markov Model)
The most sophisticated regime detection method. HMM treats market regime as a hidden (latent) state that must be inferred from observable price data. The model learns:
- Transition probabilities: How likely the market is to switch from one regime to another.
- Emission probabilities: What return distributions characterize each regime.
- The most likely regime sequence given historical price data.
After fitting, regimes are labeled based on their statistical properties. A regime with positive mean returns and low volatility might be labeled “Bull.” One with negative mean returns and high volatility might be “Bear.” The HMM detects regime shifts earlier than simple rules because it uses the full return distribution, not just a threshold crossing.
HMM requires a meaningful amount of historical data to fit. If your data source only has 100 bars, the HMM may not converge to stable regimes. For short data histories, prefer ADX or MA_alignment methods. HMM also assumes regimes are Markovian (next state depends only on current state), which is a simplification — real markets have memory effects beyond one state transition.
ADX Regime
Uses the Average Directional Index (ADX) to classify market type:
- ADX > 25: Trending market. Strong directional movement. Favorable for trend-following and breakout strategies.
- ADX 20–25: Transition zone. Market may be developing a trend or losing one. Proceed with caution.
- ADX < 20: Ranging/choppy market. No clear direction. Favorable for mean-reversion, range-bound, and options-selling strategies.
ADX does not indicate trend direction — it only measures trend strength. Pair with a trend filter or directional indicator (like +DI/-DI) if you need bull/bear classification.
MA Alignment
Uses three moving averages (configurable periods) to classify market structure:
- Bull: MA_short > MA_medium > MA_long. MAs are stacked in perfect bullish order. Price is above all MAs or pulling back to support.
- Bear: MA_short < MA_medium < MA_long. MAs are stacked in perfect bearish order. Price is below all MAs or rallying to resistance.
- Range: MAs are crossed, crisscrossed, or compressed (all values within a narrow band). No clear alignment = ranging market.
Default MA periods: short=20, medium=50, long=200. These can be customized for different trading styles (e.g., 5/20/50 for scalping, 50/100/200 for swing trading).
Volatility Regime
Classifies the market based on where current volatility sits in the historical distribution:
- Low Vol: Current vol is in the bottom quartile of the lookback distribution. Markets tend to trend after low-vol compression periods.
- Normal Vol: Middle 50% of the distribution. Standard market conditions.
- High Vol: Top quartile. Turbulent, unpredictable conditions. Spreads widen, slippage increases. Many strategies perform poorly in high-vol regimes.
Allowed Regimes
Multi-select — which regimes to allow entries in. Options: Bull, Bear, Range, Transition. The available options depend on the selected method:
- ADX method: Regimes are Trending, Range, Transition.
- MA_alignment method: Regimes are Bull, Bear, Range.
- HMM method: Regimes are auto-labeled (Bull, Bear, Range, plus potentially additional states).
- volatility_regime method: Regimes are Low Vol, Normal Vol, High Vol.
Select only the regimes where your strategy has an edge. Examples:
- Trend-following strategy: Select Bull and Bear (avoid Range).
- Mean-reversion strategy: Select Range only (avoid Bull and Bear).
- Breakout strategy: Select Bull, Bear, and Transition (avoid confirmed Range).
- Volatility-adaptive strategy: Select Normal Vol and High Vol (avoid Low Vol — not enough movement).
Lookback
Integer period for regime detection calculations. Varies by method:
- HMM: Number of bars used to fit the HMM. Larger lookback (500-1000 bars) gives more stable regime detection but slower adaptation to regime changes. Smaller (100-200 bars) adapts faster but may produce noisy regime switches.
- ADX: Standard ADX period (default 14). Same as the ADX indicator lookback.
- MA_alignment: Applies to the longest MA (default 200). The shortest MA (20) and medium MA (50) have fixed periods; only the long MA is configurable via this setting.
- volatility_regime: Lookback for the historical volatility distribution (default 100 bars). Determines the sample size for computing percentiles.
Output Handle
gate (RIGHT). Connect to Entry/Exit filter-0 through filter-4.
MTF Support
When MTF is enabled, the regime filter can operate on a different timeframe. A common pattern: use a 1h chart for entry signals, but classify the regime on the daily chart. The daily trend regime matters more for swing trades than the hourly noise.
Regime Filter Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| method | select | ADX | Regime detection algorithm. Options: HMM, ADX, MA_alignment, volatility_regime. Each method produces different regime labels. |
| allowed_regimes | multi-select | All selected | Which regimes to allow entries in. Available options depend on the selected method. Deselect regimes where your strategy does not have an edge. |
| lookback | integer | 14 (ADX) / 200 (HMM/MA) / 100 (volatility_regime) | Lookback period for regime detection. Meaning varies by method (ADX period, HMM fit length, MA long period, or volatility percentile window). |
| ma_short_period | integer | 20 | Short MA period for MA_alignment method only. Not visible for other methods. |
| ma_medium_period | integer | 50 | Medium MA period for MA_alignment method only. Not visible for other methods. |
Image Placeholder: Regime filter inspector showing ADX method selected, lookback 14, allowed regimes: Bull, Bear (Range deselected). Data source connected to filter-ds handle. MTF toggle visible.
Filter Selection Guide
Not sure which filter to add? Here is a quick guide based on what you want to achieve:
| Goal | Recommended Filter | Setup |
|---|---|---|
| Only trade in trending markets | Regime (ADX) | ADX > 25, allow Trending only |
| Only trade with the trend | Trend | Connect ADX or SuperTrend, threshold to meaningful level |
| Only trade when market is active | Volatility (ATR) | ATR > threshold, comparison = above |
| Only trade high-conviction moves | Volume (SMA_volume) | Volume > 1.5x average, comparison = above |
| Avoid opening hours chop | Time | Skip first 30 min, set window to 10:00–16:00 |
| Avoid weekend gaps | Time | Deselect Friday, or set Friday window to 09:30–14:00 |