The Bot
Filters
All filters that gate every trade before execution.
Session Filter
Only trades during high-liquidity sessions. Blocks all trading on weekends and after Friday 20:00 UTC (closes all open positions before the weekend).
London: 07:00 – 12:00 UTC New York: 12:00 – 17:00 UTC Overlap: 12:00 – 15:00 UTC ← highest liquidity, best signals
News Filter
Fetches high-impact events from the ForexFactory calendar every 60 minutes. The filter works in two phases — a fixed pre-event block and an adaptive post-event check:
| Phase | Window | Logic |
|---|---|---|
| Pre-event | 15 min before | Always blocked — prevents entering into a news spike |
| Post-event | Up to 60 min after | Blocked until ATR returns to normal — resumes automatically once the spike settles |
After the event, the bot checks the live ATR every cycle. As soon as the last 3 candles show ATR within 2× the baseline (candles 4–24), trading resumes automatically. This means the bot can catch post-news continuation moves — the clean directional trend that often follows big events like NFP and FOMC — without entering during the chaotic initial spike.
{
"filters": {
"use_news_filter": true,
"news_pre_buffer_minutes": 15,
"news_post_max_minutes": 60,
"news_atr_spike_multiplier": 2.0
}
}Market Regime Filter
Classifies the H4 market state using ADX and Bollinger Band width. Ranging markets are skipped entirely — no edge exists in choppy conditions.
| Regime | Condition | Action |
|---|---|---|
| Trending | H4 ADX > 25 | Use SMC + Trend Pullback |
| Breakout | H4 ADX 15–25, BB expanding | Use Breakout strategy |
| Ranging | H4 ADX < 20 | Skip pair this cycle |
Correlation Filter
Prevents opening two highly correlated pairs at the same time, which would double exposure to the same underlying risk.
Blocked groups (if one is open, others in the group are skipped): EURUSD · GBPUSD · AUDUSD · NZDUSD USDCAD · USDJPY · USDCHF GBPUSD · GBPJPY · GBPAUD XAUUSD · XAGUSD
Volatility Filter
Checks the 14-period ATR on H1. If the ATR is below the minimum threshold, the pair is too quiet to trade. The AI volatility predictor adds an additional GARCH-based layer on top of this.
{
"filters": {
"min_atr_multiplier": 0.5
}
}Spread Filter
Checks the live spread before placing any order. If the spread exceeds max_spread_pips, the trade is skipped.
{
"risk": {
"max_spread_pips": 3.0
}
}Tip: During major news events spreads can spike to 10–50 pips. The spread filter catches this even if the ATR check passes early — so you have triple protection: pre-event block → ATR spike gate → spread filter.
Note: All filters are logged — check logs/bot.log to see exactly why a pair was skipped in any given cycle.