ForexBot2 — User Guide

How to read, act on, and survive the signals  ·  updated October 2026

1 · What the bot does

ForexBot2 analyzes gold (XAU/USD) around the clock on several chart timeframes at once. On every candle close it scores nine technical indicators (trend, momentum, volatility, divergences, candlestick patterns), adapts the weighting to the current market regime (trending / ranging / transitioning), checks that higher timeframes agree, adjusts for news and economic-calendar events, and — only when everything lines up — sends a signal with a complete trade plan to Telegram: direction, entry, stop loss, target, and a trailing-stop management plan.

Most of the time it sends nothing. Silence means no edge was found; that is the bot working correctly, not a malfunction.

2 · Anatomy of a signal

🟢 Grade A · STRONG BUY · XAU/USD · 15min 🥇 🕐 2026-09-04 08:00 UTC · 💰 4483.41 📐 Direction: strong buy · Reliability: high · timeframes agree 📊 Regime: Transitioning · Vol: high 🧭 Daily trend: rising — this buy goes with it STRONG BUY — High-quality setup, consider entry 🚀 TRADE SETUP 📈 Direction: BUY ▶ Entry 4483.41 🛑 SL 4468.92 ($14.49 / 145p = 1R) 📏 Size: 0.06 lots risks $86.94 at the stop (your limit $100.00 per trade) ← owner's chats only 🧱 Already open: 2 buy plans alerted earlier (2 on M15) — taking this one adds to the same position 🔄 Exit rule (tested): once price reaches 4493.55 (+0.7R), trail the SL $10.87 behind the best price, moving it at candle close only. Otherwise the SL is the exit. 🎯 TP1 guide 4497.90 ($14.49 / 145p = 1.0R) 🎯 TP2 guide 4505.15 (1.5R) ⚖️ Planned TP1 RR 1:1.0 (guide only — the trail is the exit) 📚 Book (this setup class): 58 trades, 62% winners, avg +0.21R per trade 📈 Other timeframes: 15min: STRONG BUY +46.5 | 5min: BUY +22.8 | 1h: NEUTRAL +14.2 📋 EMA⇈ RSI→ BB↓ ADX→ MACD⇈ ROC→ KC⇈
FieldWhat it means
Signal + gradeDirection (BUY / SELL / STRONG_*) plus a quality grade A+ → F. A trade setup is only attached at grade C or better. Higher grades = more indicator agreement and cleaner regime.
Direction / reliability lineSince 2026-09-27 the alert prints the two raw numbers in words. Direction is the regime-weighted composite of all nine indicators: very strong (|score| ≥ 40), strong (≥ 33), clear (≥ 25), weak (≥ 15) or no clear direction, with buy or sell from its sign. Reliability is the confidence after the penalties: high (≥ 65), good (≥ 55), fair (≥ 45) or low. The cut-offs are the grade table's own, so the words never disagree with the grade. The numbers themselves remain in --json, --detail and the dashboard meters.
Timeframes agreeThe two confirmation timeframes agree with the trade direction. Signals without alignment are filtered out on M5.
Daily trend 🧭The direction of the daily chart, from closed daily candles only: rising when the last daily close is above its 50-day average and above the close 60 trading days earlier, falling when it is below both, otherwise no clear direction. The line also says whether the plan goes with it or against it. On M15 a plan against a clear daily trend is not sent at all (since 2026-09-30): in the three-year test those plans earned nothing after costs, and dropping them cut the worst losing run from 20.9R to 12.4R while the total rose from +195.8R to +205.1R; over 2019–2026 the worst run fell from 64.8R to 41.5R. On M5, H1 and H4 the same rule was tested and did not pass, so there the line is context only — a plan "against" the daily trend is still a valid signal on those timeframes.
Size 📏How many lots keep the loss at the printed stop inside the risk limit set in config.json (trade_size.risk_per_trade, in US dollars; 1 lot = 100 ounces unless contract_size says otherwise, and the lot step is 0.01 unless lot_step says otherwise). The size is rounded down to the broker's lot step, so the money at risk is at or under the limit, never over. When even the smallest lot would break the limit the line says so and gives the amount; skip that trade or accept the larger risk knowingly. The line appears only when the limit is set, and only in the owner's own chat with the bot and on the command line: the channel, any group the bot posts in and the public dashboard do not show it unless trade_size.telegram_channel / trade_size.dashboard are switched on.
Already open 🧱How many plans in the same direction the bot alerted earlier are still open in its own outcome tracking (stop not hit, trail not closed), and on which timeframes. Taking every alert stacks positions on one move of gold: in the three-year M5 + M15 test two entries in three already had a same-direction plan open and one in four had three or more. Those stacked entries were not worse trades, so the line is not a reason to skip; it is a reminder that the total at risk is the sum of every open plan, not the risk of this one alert. The count comes from the bot's model of the plans it sent, not from your broker account. Alerts sent at the same candle close are counted too: when the 5-minute and the 15-minute alert go out together, the second one already shows the first.
Warnings ⚠️Context, not veto. Backtesting shows warned trades perform about the same — strong momentum often triggers warnings.
Violent-move watch 🌪An occasional extra line saying the next hour looks unusually likely to produce a very large candle — because a high-impact US release is due (or just landed), because the clock is in a historically wild slot, or because price is stretched outside its bands. It is a heads-up about volatility, not a direction call, and it never changes the signal, the grade or the trade setup — the same alert would be sent without it. Do not close or tighten an open trade because of it: every such protective action was tested over three years and lost money. Your stop is the protection.
AI check 🤖An advisory block written for a new trader, such as "AI check: the odds look worse than usual. New data just came out against this buy. Chance it pays off: about 45 in 100 (usual for this kind of setup: 60 in 100). For: Before the news, the price was climbing. Against: Fresh data just came out against gold. This check is an experiment. Do not trade on it alone." The first sentence compares the estimate with the usual odds for this kind of setup (8 points either way counts as a difference); there is no verdict word and no confidence percentage. One AI reviewer (the news reader) receives the recent headlines together with facts computed by code — how far the move has already run, whether a very large candle just printed, how the stop and target compare with the usual, how trades of this exact kind fared in the two-year test, and whether major scheduled news lands before the trade would normally finish — and gives a probability that the trade ends in profit plus one reason for and one against. (Three further reviewers, chart, risk and sceptic, were switched off on 2026-09-17: in two evaluations they added nothing beyond the base rate and mostly voted the same way on every setup.) It is not a recommendation and it never changes the signal, the grade or the setup. Until about 300 of these estimates have been graded against real outcomes, treat it as context, not as a filter: the earlier AGREE/OPPOSE version of this line opposed target-reaching trades as often as it agreed.
Market context 📰An AI-written note in plain English on what is moving the gold price right now, why it matters, and the next report to watch. It is built only from headlines published in the last 4 hours that lean one way (neutral items are dropped) plus today's high-impact releases. Informational only — it never blocks or grades a signal.
SL / TP1 guide / planned RRStop loss sits behind the nearest swing level with an ATR buffer (grade A+/A setups use a 2 × ATR stop). 1R = the entry-to-SL distance = the amount you risk. TP1 is a guide (the nearest opposing level or a multiple of ATR, never printed closer than 1R since 2026-09-26); the "planned TP1 RR" is TP1 ÷ 1R and is always at least 1:1. It is not the expected payoff: the tested exit is the trail, and the validated books earn their profit from trailed runners (M5 average win about +1.0R against an average loss of −0.76R; M15 +0.87R against −0.93R).
Exit rule 🔄The real, backtested exit. Once price moves the stated R in your favor (0.6R on M5, 0.7R on M15), move the stop to trail the stated $ distance behind the best price and update it at each candle close only. Until then the original SL is the exit. TP1 is advisory — let winners run.
Book line 📚What this class of setup (timeframe, setup type, grade, direction) actually did in the validated two-year backtests: number of trades, share of winners and average R per trade. When the exact class has fewer than 30 trades the line falls back to all setups of that direction on the timeframe, then to the whole timeframe.
One alert per moveAfter an alert, the bot sends no new alert on that timeframe for the next 5 candles (25 min on M5, 75 min on M15), the same entry cooldown the backtester applies. Consecutive-bar re-entries into the same move were the largest live-only loss in September 2026. The five candles are candles that actually traded: the daily one-hour pause and the weekend do not use them up, so the first candle after the pause is still held if fewer than five have printed since the alert. The bot also remembers its last alert across a restart.

3 · Acting on a signal — step by step

  1. Size the position first. Decide your risk per trade — 0.5–1% of account, never more. Position size = (account × risk%) ÷ stop distance in $. The stop distance varies per signal, so the size changes every trade; the dollar risk must not. With trade_size.risk_per_trade set in config.json the alert does this sum for you (the 📏 line). If the 🧱 line shows plans already open in the same direction, the new trade adds to them: keep the total at risk across all open plans inside what you can afford on one move.
  2. Enter promptly at market. All backtested results assume entry at the open of the candle after the signal. On M5, minutes matter (see §4). If you are very late — price already moved a large part of the way to the arm level — skip the trade. There is always another signal.
  3. Place the stop loss immediately at the given SL. No mental stops — gold gaps and spikes.
  4. Manage with the trail, not TP1. When price reaches the arm level printed in the message, start trailing the stop the stated $ distance behind the best price, tightening only at candle close. This is what produced the backtested results; taking fixed TP1 profits gives most of the edge away.
  5. One signal, one trade. The M5, M15 and H1 books confirm off each other and are usually long or short gold at the same time. Taking the same move on multiple timeframes multiplies risk, not diversification. Pick your timeframe (§4) and ignore the others. The 🧱 "already open" line tells you when an alert would add to plans that are still running.

4 · Choosing your timeframe

Twelve-month Oanda-candle backtest with the rules as they run today (Aug 2025 – Aug 2026, $0.65 round-trip cost, entry at next candle open; regenerated 2026-10-01):

M5M15H1
Trades / week~10.7~5.1~1.7
Total result (12 mo)+108.8R+92.3R+22.2R
Win rate / profit factor53.6% / 1.5468.0% / 2.1262.6% / 1.79
Typical (median) hold2.5 h7.8 h21 h
90% of trades close within11.2 h29.4 h3.2 days
Typical stop distance~$21~$32~$48
Worst drawdown10.1R8.3R4.1R

This was a strongly rising year for gold until March 2026 and a falling, choppy one after. Four fifths of the M5 total (+89.6R of +108.8R) came in January–March 2026; M15 earned in every quarter but only +2.3R since July. Over 2019–2026 the M15 rules made +223R with one losing year (2021, −27R) and two years close to flat (2022 and 2023); the M5 rules took few trades and made nothing before 2025. Judge the next twelve months by the long record, not by this table.

If you trade manually from the Telegram alerts, H1 (or M15) is the honest choice. M5's backtested edge assumes near-instant fills that a human copying signals rarely achieves.

5 · What to expect (and what not to)

6 · Rules that keep you alive

The five rules
  1. Risk a fixed 0.5–1% per trade. Never "make it back" by sizing up after losses.
  2. Hard stop loss in the market on every trade, placed at entry time.
  3. One timeframe, one trade at a time. No stacking, no pyramiding onto bot signals.
  4. Missed the entry? Skip it. Chasing converts a positive-edge trade into a coin flip.
  5. Evaluate performance monthly at the earliest, quarterly for H1. Never after a bad day.

7 · Bot commands (owner)

CommandWhat it does
/startShow the button menu (manual scans per timeframe, Scan All TFs).
/scanRun an immediate analysis of the primary timeframe.
/autoscanToggle automatic scanning (M5 / M15 / H1 / H4 at each candle close).
/statusUptime, auto-scan state, WebSocket price-monitor state, and the health of the news sources: the calendar, the headline feeds, the local headline model (a ⚠️ line "News model: not scoring" means this cycle's headlines carry the simple keyword scores) and DeepSeek.
/newsNet XAU/USD news score from the last 4 hours of headlines (neutral headlines are removed before averaging; informational only — never gates signals).
/cache · /clearcacheInspect / reset the market-data cache.
/helpCommand reference.

The bot also streams live prices over WebSocket and fires an immediate scan when price breaches a key level (swing S/R, Bollinger, Keltner, EMA-200). Commands respond only to the configured owner chat; subscribers receive the signal feed via the channel.

⚠️ Risk disclaimer. This bot and guide are for educational and research purposes only and are not financial advice. Trading forex, gold and CFDs on margin carries a high risk of loss; past (and backtested) performance does not guarantee future results. Do your own analysis and never risk money you cannot afford to lose.