How it works
How a limit you set becomes a halt on your terminal.
Three steps to connect, one loop that keeps running, and an honest account of what happens the moment you hit a limit — including the parts that depend on your broker rather than on us.
How It Works
Set up once. Protected every session
About ten minutes to set up, on your own MT5 terminal. After that it runs quietly in the background and you only hear from it when it matters.
Connect your MT5 account
Paste one API key into the XpFirm bridge on your own terminal. We never see your broker password, and you can revoke access whenever you like.
Set the limits you want held
Your daily loss cap, overall drawdown, trade count, size, cooldown after a loss. Take a minute over it while you're calm — that's the whole point.
Trade. We watch the line
Hit a limit and XpFirm halts the session on your account and messages you on Telegram. Afterwards you get a plain review of what happened and why.
- 1Your MT5 Terminal (PC / VPS)
The XpFirm EA runs securely under your broker login, monitoring balance, equity, and floating drawdown locally.
- 2Telemetry Ingestion (<150ms)
Every 1–60s on your configured poll interval, the EA sends account health and queries the sovereign halt state.
- 3Sub-Millisecond Risk Engine (<1ms)
XpFirm checks incoming metrics against your custom drawdown floors in Redis cache. If breached, the halt flag arms instantly.
- 4Local Liquidation Execution
On the next polling cycle, the EA receives the halt flag and triggers sovereign position liquidation through your broker.
Compared with a journal
A journal tells you what happened. This is there while it’s happening.
Keeping a spreadsheet is a good habit and you should keep it. But it is written afterwards, by the person who broke the rule, from memory — and the moment a limit could still have stopped something has already passed.
- Spreadsheet or journal
- You type them in, or import them once the trades are closed.
- XpFirm
- The EA reads balance, equity and drawdown off your terminal every few seconds.
- Spreadsheet or journal
- When you sit down to review — that evening, that weekend, or never.
- XpFirm
- On the next check-in, with a Telegram message.
- Spreadsheet or journal
- Nothing. A record is not a brake.
- XpFirm
- The account is marked halted. Your EA picks that up on its next poll and closes exposure from your own terminal.
- Spreadsheet or journal
- Whatever you wrote down, judged by you afterwards.
- XpFirm
- Five countable ones: max trades per session, max lot size, trading hours, cooldown after a loss, and no size increase after a loss.
- Spreadsheet or journal
- You do, afterwards, from memory — the same memory that lost the trade.
- XpFirm
- The system timestamps every state change as it happens. You still add the session review: how it felt, and the lesson.
- Spreadsheet or journal
- You do the arithmetic, and the daily-versus-overall distinction is easy to get wrong.
- XpFirm
- Daily (re-anchors each day) and overall (static, from your starting balance) are computed against your account.
- Spreadsheet or journal
- Any broker, any market, any platform. Nothing to install.
- XpFirm
- MetaTrader 5 only, and the EA has to be attached and running.
- Spreadsheet or journal
- A spreadsheet is free.
- XpFirm
- From $29/mo, after a 14-day trial with no card.
Plenty of journal apps import your trades automatically, so the recording is not really the difference — the acting is. XpFirm still does not open trades, choose a direction, or guarantee anything: closing depends on your terminal, your broker and the market at that moment. And the last two rows above go the other way on purpose.
Actual Product UI
Your Behavior, Backed by Evidence
Rule-adherence, rule-breaks by type, and the rules you set — computed from your own trade data, not a mystery score. The screenshot below is the actual Behavior Review UI shown with demo account data.


Both screens are the real product on a demo account. The numbers come from that account’s own trades — they are observations for you to judge, not a score or a diagnosis.