Filters
Filters are the conditions that decide when the bot may act. Each slot pairs an indicator with a criterion and a threshold, on the timeframe you choose.
How a filter is built
Pick an Indicator, a Criteria, and either a numeric Threshold or a second Compare Indicator. The filter runs on its own TimeFrame, so a higher-timeframe trend filter can gate a lower-timeframe entry. Each slot can also override the indicator's parameters just for that filter.
Criteria
Against a threshold
| GreaterGreater | The indicator value is above the threshold.Requires a condition to already hold — it checks a state, not the moment it changes. Example: Greater 70 on RSI is true on every bar the RSI sits above 70, so a bot can keep trading only while momentum stays strong. |
| LessLess | The indicator value is below the threshold.The mirror of Greater: true while the value stays under the level. Example: Less 30 on RSI holds through an oversold stretch — useful as an 'only buy when cheap' gate. |
| EqualEqual | The indicator value matches the threshold within a small tolerance.Exact equality is rare in floating-point data, so it matches within a small tolerance band around the level. Example: ADX Equal 25 fires when trend strength is right at the 25 boundary, give or take a hair. |
| Not EqualNotEqual | The indicator value differs from the threshold.True whenever the value is off the level by more than that tolerance — effectively 'anything but this level'. Example: use it to skip a bar only when an indicator sits exactly at a neutral reading like 50. |
| BetweenBetween | The value sits inside a low–high band.Needs two bounds and is true only inside them — good for 'sweet spot' filters. Example: RSI Between 40 and 60 keeps a bot active only in the calm middle, away from both extremes. |
| OutsideOutside | The value sits outside a low–high band.The inverse of Between: true when the value is beyond either bound. Example: RSI Outside 30–70 fires in both overbought and oversold territory, catching extremes on either side. |
| Percentage ChangePercentageChange | The percent change over the lookback exceeds the threshold.Compares now vs a bar N back and fires when the % move exceeds your threshold — a momentum-burst filter. Example: Percentage Change 5% over 10 bars flags a fast 5% rally or drop while ignoring slow drift. |
| Change RateChangeRate | The rate of change per bar exceeds the threshold.Like Percentage Change but per bar — it measures the speed of the move, not the total. Example: a high Change Rate warns that price is accelerating, even before the cumulative move looks big. |
| All-Time HighAllTimeHigh | The value is at its highest across the lookback window.True when the value tops every reading in the lookback window — a breakout / strength gate. Example: price All-Time High over 100 bars confirms a fresh 100-bar high before a trend-follow entry. |
Crossing a threshold
| Cross UpCrossUp | The indicator crosses above the threshold on this bar.Fires on the single bar where the value moves from below the level to above it — the event, not the state. Example: MACD Cross Up 0 marks the exact bar momentum flips positive, so you enter once instead of on every bar above zero. |
| Cross DownCrossDown | The indicator crosses below the threshold on this bar.The mirror of Cross Up: the bar the value drops from above to below the level. Example: RSI Cross Down 70 catches the moment an overbought reading starts to roll over, a classic exit trigger. |
| Cross Up (with margin)CrossUpWithMargin | Crosses above the threshold and clears it by a set margin — filters out fake crosses.Same as Cross Up but the value must clear the level by a set margin, so a tiny wobble right at the line doesn't count. Example: Cross Up 0 with a 2-point margin ignores noise that pokes just barely above zero and snaps back. |
| Cross Down (with margin)CrossDownWithMargin | Crosses below the threshold and clears it by a set margin.The down-cross version of the margin filter — it confirms the break lower is decisive. Example: Cross Down 70 with a margin waits until RSI is clearly back under 70, not just grazing it, before firing. |
Against a second indicator
| Greater than indicatorGreaterThanIndicator | The indicator is above the second (compare) indicator.Compares two indicators instead of a fixed number, so the level adapts to the market. Example: price Greater than a 200-period MA is the classic 'above the moving average = uptrend' filter. |
| Less than indicatorLessThanIndicator | The indicator is below the second (compare) indicator.The mirror of the above: the first line stays under the second. Example: price Less than its moving average is a downtrend / weakness gate that keeps a bot out of longs. |
| Cross up indicatorCrossUpIndicator | The indicator crosses above the second (compare) indicator.The event where the first line crosses above the second — the entry moment, not the ongoing state. Example: a fast MA Cross up a slow MA is the textbook golden-cross trigger. |
| Cross down indicatorCrossDownIndicator | The indicator crosses below the second (compare) indicator.The mirror — the fast line crossing below the slow (a death cross). Example: the MACD line Cross down its signal line flags momentum rolling over, a common exit trigger. |
Slope & turns
| Increasing slopeIncreasingSlope | The indicator has been rising across the lookback window.Looks back over a window and passes only if the indicator rose overall — a sustained-uptrend gate, not a one-bar tick. Example: require RSI Increasing slope so you only trade while momentum is genuinely building. |
| Decreasing slopeDecreasingSlope | The indicator has been falling across the lookback window.The mirror: passes only if the indicator fell overall across the window. Example: skip longs while an oscillator has a Decreasing slope, so you don't buy into weakening momentum. |
| Slope upSlopeUp | The indicator's slope is positive right now.Checks the slope right now (this bar vs last), so it reacts faster than the windowed version but is noisier. Example: Slope up on a moving average confirms the very latest tick is upward. |
| Slope downSlopeDown | The indicator's slope is negative right now.The instantaneous down version — the latest bar is lower than the one before. Example: Slope down as an exit cue gets you out the moment a rising indicator starts ticking lower. |
| Turned up recentlyTurnedUpRecently | Made a local low within the lookback and turned up — an early upward turn.Catches an early bottom: the indicator made a local low in the window and has just started rising. Example: Turned up recently on a stochastic gets you in near the turn instead of waiting for a full cross. |
| Turned down recentlyTurnedDownRecently | Made a local high within the lookback and turned down — an early downward turn.The mirror: a local high in the window has just started falling — an early top. Example: Turned down recently on RSI flags a fade before a full overbought cross confirms it. |
| TurnedTurned | The indicator changed direction on this bar (up-to-down or down-to-up).Fires on the exact bar direction flips either way — up-to-down or down-to-up. Example: use Turned on a smoothed line to act on any pivot without specifying which direction in advance. |
| Consecutive higherConsecutiveHigher | N bars in a row each higher than the last.Requires N bars each higher than the one before — a strict, staircase-style uptrend. Example: Consecutive higher 3 needs three rising bars in a row, filtering out choppy noise. |
| Consecutive lowerConsecutiveLower | N bars in a row each lower than the last.The mirror: N bars each lower than the previous — a strict downtrend. Example: Consecutive lower 3 confirms three falling bars in a row before a short, avoiding single-bar dips. |
Bands
| Inside bandsInsideBands | The value is within its bands (e.g. inside the Bollinger channel).True while the value stays within its own bands. Example: price Inside the Bollinger bands means the market is calm / mean-reverting — good for range strategies, and a warning against breakout entries. |
| Outside bandsOutsideBands | The value broke outside its bands — a volatility breakout.True when the value pierces a band — a volatility breakout. Example: price closing Outside the upper band signals an impulsive move worth trend-following (or fading, if you expect a snap-back to the mean). |
Trend & volatility
| Trend directionTrendDirection | The indicator agrees with the trade's required trend direction.Passes only when the indicator agrees with the trade's own direction (long vs short), so one filter works for both. Example: on a long it requires an uptrend read; on a short, a downtrend — automatically. |
| Multi-timeframe alignMultiTimeFrameAlign | The indicator points the same way across several timeframes.Checks the same indicator on several timeframes and passes only if they all point the same way. Example: RSI bullish on M15, H1 and H4 together is a far stronger signal than on one timeframe alone. |
| Multi-timeframe trend alignMultiTimeFrameTrendAlign | The trend is aligned across several timeframes.Like the above but for overall trend rather than one indicator's reading. Example: require the trend up on H1 and H4 before taking an M15 long, so you always trade with the bigger tide. |
| ConsolidatingConsolidating | The market is flat / ranging with little movement.True when the market is flat / ranging with little movement. Example: use Consolidating to pause a breakout bot during dead, directionless periods and avoid churn — or to trigger range strategies. |
| Volatility expansionVolatilityExpansion | Volatility is rising (ranges widening).Ranges are widening — a move is underway. Example: Volatility expansion right after a quiet stretch confirms a breakout has real energy behind it, not just a false poke. |
| Volatility contractionVolatilityContraction | Volatility is falling (ranges narrowing) — often precedes a breakout.Ranges are narrowing — the calm that often precedes a breakout. Example: Volatility contraction (a 'squeeze') is a classic setup to arm a breakout entry before the expansion fires. |
Divergence
| DivergenceDivergence | Any divergence between price and the indicator.The generic catch-all: any price/indicator disagreement, bullish or bearish. Example: use plain Divergence when you just want an early reversal warning without specifying the exact type. |
| Regular bullish divergenceRegularBullishDivergence | Price makes a lower low while the indicator makes a higher low — a reversal-up signal.Price lower low, indicator higher low — selling is losing steam near the bottom, a reversal-up cue. Example: RSI making a higher low while price dips lower often precedes a bounce. |
| Regular bearish divergenceRegularBearishDivergence | Price makes a higher high while the indicator makes a lower high — a reversal-down signal.Price higher high, indicator lower high — buying is fading near the top, a reversal-down cue. Example: price prints a fresh high but MACD a weaker high, warning the rally is tiring. |
| Positive divergencePositiveDivergence | A bullish price/indicator divergence (generic).A generic bullish divergence when you don't need to distinguish regular from hidden. Example: pick Positive divergence for a simple 'momentum turning up' gate. |
| Negative divergenceNegativeDivergence | A bearish price/indicator divergence (generic).The generic bearish counterpart — Positive divergence's mirror, a 'momentum turning down' gate. Example: use it when the exact regular/hidden distinction doesn't matter to your rule. |
| Triple divergenceTripleDivergence | Divergence confirmed across three successive swings — a stronger signal.Divergence confirmed across three successive swings, not two — rarer but far more reliable. Example: Triple divergence filters out the many two-swing divergences that fail to reverse. |
| Double bottomDoubleBottom | Two matching lows form a reversal-up pattern.Two matching lows (a 'W') form a reversal-up pattern. Example: a Double bottom near a support level is a high-confidence long setup once the middle peak breaks. |
| Double topDoubleTop | Two matching highs form a reversal-down pattern.Two matching highs (an 'M') form a reversal-down pattern. Example: a Double top under resistance is a high-confidence short setup once the middle trough gives way. |
Price structure & levels
| Trendline breakoutTrendlineBreakout | Price breaks through a detected trendline.Price breaks through an automatically detected trendline — a momentum entry. Example: a break above a descending trendline signals a possible trend change from down to up. |
| Trendline rejectionTrendlineRejection | Price tests a trendline and rejects off it.Price tests a trendline and bounces off it instead of breaking through — a with-trend entry. Example: a rejection off a rising support trendline is a classic 'buy the dip' in an uptrend. |
| Support breakdownSupportBreakdown | Price breaks below a support level.Price closes below a support level — often a short trigger or a stop-out warning. Example: a Support breakdown after a long range confirms sellers finally took control. |
| Resistance breakoutResistanceBreakout | Price breaks above a resistance level.Price closes above a resistance level — a long / breakout trigger. Example: a Resistance breakout on rising volume is the textbook breakout entry. |
| Near support levelNearSupportLevel | Price is close to a support level.Price is close to (not through) a support level — a proximity gate for reversal setups. Example: only arm a long when price is Near a support level, where a bounce is likely. |
| Near resistance levelNearResistanceLevel | Price is close to a resistance level.Price is close to a resistance level — where a move often stalls. Example: Near a resistance level is where you'd take profit on a long, or scout a short expecting a rejection. |
Filter slots
- Entry filters (F_1…F_5)
Up to five conditions that must all pass before the bot opens a position. Empty slots are ignored.
- Martingale filters (1./2. M_F.)
Extra conditions checked before adding to a losing position on a martingale rung.
- Trailing filters (1./2. TS_F.)
Conditions that gate when the trailing stop is allowed to tighten.
Controls on this step
What the app checks before letting you continue, and why.
- Why a filter can say “not evaluable” instead of passing or failing — An indicator does not always have a number to give. It may still be warming up — a 200-period average needs 200 bars before it means anything — or what it measures may simply not exist at this bar, the way a breakout box has no edge until a box has formed. When that happens the bot does not compare it. The filter does not pass, and it is not counted as rejected either: it is listed as not evaluable, with the indicator named. The distinction matters, because a missing value used to be read as zero — and zero is below almost any threshold, so a filter like “RSI below 30” could be satisfied by an RSI that had not been calculated yet, and the bot entered on evidence it did not have. Reading “not evaluable” tells you the market is not the reason: give the bot more bars, or point the filter at a timeframe it actually follows.
- Symbol requirement + conscious filterless override — A symbol is always required. A Custom strategy with zero entry filters blocks submission with a warning — turning on "Enter without filters" consciously acknowledges it and lets you proceed anyway, and the bot will then open on every bar.