Pause: no new trades, open trades are still looked after. Emergency stop: the bot closes
everything it opened and stops trading until you clear it. In dry-run mode no real orders are sent.
MT5 connection
Statusβ
Broker serverβ
Response timeβ
Last good updateβ
MT5 "Algo Trading" buttonβ
Live prices
β
Risk & exposure
Today's loss limit usedβ
This week's loss limit usedβ
Open tradesβ
Money at risk per new tradeβ
Largest allowed trade sizeβ
Total open position value (MT5)β
Loss limits are checked by the bot against the results of its closed trades in MT5.
What the strategy sees now
Start the bot to see its signals.
Open positions
In your MT5 account
β
Held by the bot
No open positions
Trade history (closed trades in MT5, last 90 days)
Loadingβ¦
Recent bot orders
No orders yet
Historical testing replays past prices through the bot's strategy and risk rules.
It is a simulation only: it never sends orders and never changes the live bot's settings.
1. What to test
2. Strategy & risk settings
Pre-filled with the live bot's settings (config/strategy.yaml). Changing them here only affects this test.
3. Trading costs
Result
How this test was done
Individual trades
Saved tests
None yet.
Historical price data
Download more history from MT5
Downloads closed candles (bid prices) from your MT5 terminal, read-only. Times are converted to UTC.
Honest check: is a strategy good enough to trust?
Tests each strategy on the saved history with realistic costs (spread by hour,
overnight swap, slippage, the bot's weekend and dollar rules), on separate periods it was not
built on, in thousands of shuffled worst cases, and against doing nothing and random trading.
Then it scores it against the pass marks agreed in advance. Takes about 2-3 minutes.
Nothing is changed to make a strategy look better.
Trading mode
β
Why the bot did not open a trade (latest)
β
Values outside the safe range are refused with a reason. "Original" = the value in config/strategy.yaml. The running bot picks up changes at its next check; the mode applies when the bot is next started.
Recent changes
β
Dashboard password
β
Change password
Lock automatically after this many minutes without use
Forgot the password? On this PC, double-click scripts\reset_dashboard_password.cmd, then open the dashboard and create a new one.
Saved keys (encrypted)
β
Keys are encrypted with your Windows login and saved on this PC only. Once saved they are never shown again, not even here. To change one, save a new value over it.
Phone alerts (Telegram)
Send phone alerts
Set up (once)
In Telegram, open @BotFather, send /newbot and follow the steps. It gives you a bot token.
Paste the token into Saved keys β Telegram bot token and press Save.
Open your new bot in Telegram and send it any message (e.g. "hi").
Press Find my chat, then Send test message.
β
What to send
Daily summary time (this PC's clock)
Most alerts per hour (urgent ones always go through)
Recent alerts
When
Alert
Sent?
Incoming signals (advanced, normally off)
Lets another program (for example TradingView) send buy/sell ideas to the dashboard. They are only recorded - the bot does not act on them.
Accept incoming signals
β
Recently received
When
Signal
Note
Activity record
β
When
What
Result
Details
By
AI helper (watch-only)
β
While the bot runs, the AI is asked which approved strategy suits the market and whether
each new trade looks sensible. Its answers are only recorded and scored against what the price did next.
It cannot place, change, enlarge or block a trade. It may only act (make a new trade smaller or stop it)
once its recorded work has beaten the rules and you switch that on: see the Score card tab.
β
β
How the AI's decisions would have done
β
Recent AI decisions (recorded, not acted on)
When
Who
Decision
Why
Score
Every AI call (prompt, answer, model, cost)
When
For
Model
Cost (USD)
Answer
Economic calendar (no new trades around big news)
β
β
When (your time)
Currency
Event
No new trades
Headlines (information only)
From the trusted sources listed in config/project_settings.yaml. Text is cleaned and is never
treated as an instruction. Anything that looks like an instruction to an AI is held back from the AI.
β
Published
Source
Headline
To the AI
Market memory (MT5 candles and indicators)
Every closed 1-hour MT5 candle is kept in data/market/market.db, with indicators worked out
from that candle and earlier ones only. The dashboard adds new candles by itself every few minutes (read-only).
A stored candle is never changed: if MT5 later shows a different value, it is counted here.
β
Similar past situations - is it any use?
β
Score card - is the bot doing what the tests said it would?
β
Every trade the bot opens and closes is recorded (logs/forward_trades.jsonl). Profit is after
costs: in simulation the bot's own fills at the live buy/sell prices (spread paid, overnight swap not included);
on the demo account MT5's own deal history (spread, swap and commission). Largest drop is measured from the
start balance on closed trades. Pass marks: config/project_settings.yaml (pass_marks.demo, agreed in Phase 0).
Only a demo-account forward test can pass. A pass is one of the conditions for real money (Real money tab);
it unlocks nothing by itself.
β
Closed
Pair
Side
Result (USD)
Why closed
AI
Demo forward test - ready to start? (Phase 8)
β
Checked before the bot may send orders (demo account or real money); any red line below
refuses the start. Read-only: this list changes nothing. Starting the demo forward test is your own step
2.7. The test only counts trades made under one unchanged set of settings: changing a strategy, risk or
trading-hours setting starts a new count from zero (earlier runs stay listed, never mixed in). The bot
also has to be running for at least the agreed share of the market's hours (pass_marks.demo.min_running_pct).
Must be green
Recommended
Your steps (2.7)
AI vs rules (same trade signals, after costs)
β
Live vs backtest (the same weeks)
β
Let the AI act on demo / simulation (Phase 6)
β
Allowed only while the AI's recorded decisions beat rules-only on the same trade signals, after
costs (pass marks: pass_marks.ai_acting). When it acts it can only make a NEW trade smaller or stop it. It can
never open, enlarge, close or move a trade, change a stop, or change any limit; exits, loss limits and the
emergency stop work exactly as before. If it does not answer in time, the trade is not opened. The bot
re-checks the evidence every few minutes and goes back to rules-only by itself if it stops passing.
β
Real money - locked until every condition holds
β
Real money needs ALL of the conditions below, then your typed confirmation. After that, every
real trade starts at the broker's minimum size (0.01 lots), with stricter limits than demo
(pass_marks.real_money_start in config/project_settings.yaml), and the bot closes everything and locks real
money when its losses since the first unlock reach the total-loss cap. On real money the AI only watches.
Locking is one click and always allowed: no new real trades; open ones keep their stop losses.
β
The real-account login (account number, password, server) is entered on the Security & alerts tab
under saved keys - encrypted, never shown again. The bot logs in with it itself and refuses any account that
is not that REAL account or does not allow automated trading.
Trade size on real money
β
Smaller: always allowed. Bigger: only with your typed approval, at most double per step, never
above the ceiling.
Check the licence on the regulator's own website, not the broker's. Redo it at least once a year.
Trade records for tax
Every MT5 deal of the logged-in account (trades, deposits, withdrawals, swap, commission) is copied
into records/tax/<year>/ as a CSV file with a yearly summary. Written once, never changed or removed; in every
daily backup; kept out of version history. A real account is copied automatically every 6 hours while the
dashboard runs. Keep the files as long as your tax office requires (South Africa: 5 years).