When a signal provider posts an entry, every second counts — price moves while the trade sits unexecuted, and that gap shows up as slippage. The good news: most of the delay people blame on "slow copiers" isn't the network at all. It's a single setting. Here's exactly where the time goes, and how to get execution down to a second or two.
Where the latency actually comes from
A signal travels through five stages before your broker fills the order:
| Stage | Typical time |
|---|---|
| Provider posts → we receive it (Telegram MTProto) | 50–200 ms |
| AI parses the signal | 0.5–1.5 s |
| Parsed signal queued for your account | < 100 ms |
| EA polls the server and picks it up | 0–30 s |
| EA sends the order → broker fills | 50–300 ms |
Notice the outlier. Receiving, parsing, and queuing all happen in well under two seconds. The variable that dominates everything is the EA poll interval — how often your Expert Advisor asks the server "any new signals?" On the default setting of 30 seconds, a signal that was parsed instantly can still wait up to half a minute before your EA even asks for it.
So if your fills feel slow, you almost never need a faster VPS or a closer server. You need a shorter poll interval.
The two settings that control your speed
The copier EA has two independent polling loops, each with a per-second input and a sub-second (millisecond) override:
POLL_INTERVAL_SEC/SIGNAL_POLL_MS— how often it fetches new signals to open. Defaults30s / off.COMMAND_POLL_SEC/COMMAND_POLL_MS— how often it checks for management commands like break-even, close, or modify SL/TP. Defaults5s / off.
Set the _MS variant to go sub-second; it overrides the per-second value. Both loops run off a timer rather than off price ticks, which matters: a quiet pair with few ticks no longer stalls signal delivery. Lowering these is the entire trick — the question is just how low you can safely go, which depends on where the EA is pointed.
Why you can't just set it to 1 on the default URL
By default the EA polls our main site (tradejournalpro.net). That endpoint is rate-limited to protect it from abuse, so polling once per second there gets throttled — you'd hammer the limit without getting faster fills. On the default URL, keep POLL_INTERVAL_SEC at 10 or higher.
To go faster, point the EA at our dedicated low-latency endpoint instead. It serves the exact same data — your token, your signals, your commands are all identical — but it's purpose-built for high-frequency polling, so 1-second checks are welcome.
Setting up near-instant execution
This is an opt-in change; the default setup keeps working untouched if you'd rather not switch.
-
Allowlist the endpoint. In MetaTrader: Tools → Options → Expert Advisors → Allow WebRequest for listed URL and add:
https://tradejournal-worker.fly.devLeave
https://tradejournalpro.netin the list too. -
Point the EA at it. On the EA's Inputs tab, set:
API_URL = https://tradejournal-worker.fly.dev SIGNAL_POLL_MS = 200 COMMAND_POLL_MS = 500 -
Confirm. Save, and check the Experts tab — you should see the EA print its poll cadence in milliseconds on startup. New signals now arrive in a few hundred milliseconds, and break-even/close commands land about half a second after you post them.
That's it. Your token and channel configuration don't change.
A realistic expectation of "instant"
"1–2 second execution" means the copier stops being the bottleneck. After that, your fill speed is in your broker's hands: spread, requotes, and market depth at the moment of entry. Two things worth keeping in mind:
- Entry ranges still matter. A signal like
Entry: 2340–2345uses the midpoint. If price has already run past the range by the time you'd fill, faster polling can't bring the price back — that's what entry filters and max-slippage settings are for. - Faster isn't always better on thin pairs. On illiquid symbols or during news, the very first tick after a signal can be the worst price of the minute. Polling at 1 second will take that tick. If you trade news, the prop-firm and slippage guards matter more than raw speed.
How commands fit in
The same poll interval logic applies to trade management. When you (or the provider) post something like "move SL to break-even" or "close GOLD" in a monitored channel, that command is queued the same way a signal is — and the EA picks it up on its COMMAND_POLL_SEC loop. Set it to 2 and break-even/close instructions execute within a couple of seconds instead of waiting on the default 5-second timer.
Commands also expire if they sit too long: if your EA was offline when a "close all" was sent, it won't fire that stale command hours later when the terminal reconnects — it's discarded so it can't close positions at the wrong time.
The bottom line
If your signal copying feels laggy, don't reach for a new VPS. Open the EA inputs, point API_URL at the fast endpoint, and set SIGNAL_POLL_MS to 200 and COMMAND_POLL_MS to 500. The parsing and routing were already fast — you're just telling the EA to stop waiting.
For the full list of inputs and what each one does, see the EA Inputs Reference. New to the copier? Start with How to Set Up the Telegram Signal Copier, then come back here to tune it. Trading a funded account? Pair this with Prop Firm Mode so faster fills don't trip a drawdown rule.