When a signal provider posts an entry, several independent systems sit between the message and any broker fill. The EA polling interval is one controllable part of that path, but it is not the only source of delay. This guide explains how to reduce pickup delay without presenting the setting as an end-to-end fill guarantee.
Where the latency actually comes from
A signal travels through five stages before your broker fills the order:
| Stage | What affects it |
|---|---|
| Provider posts → message received | Telegram delivery, connection, and source |
| Signal parsing | Format complexity, parser path, and any manual review |
| Parsed signal queued | Service and network availability |
| EA polls and picks it up | Your configured interval and endpoint limits |
| EA sends the order → broker responds | Terminal, network, symbol, broker, liquidity, and market |
The EA poll interval controls how often the Expert Advisor asks the server for new work. On a 30-second interval, an already-queued signal can wait until the next poll. A shorter interval reduces that particular wait, while every other stage still varies.
If pickup delay is the bottleneck, a shorter poll interval can help. Confirm the timestamps in your execution receipt before assuming the VPS, parser, poller, or broker is responsible.
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. Current builds default to10s /500ms; the millisecond value wins.COMMAND_POLL_SEC/COMMAND_POLL_MS— how often it checks for management commands like break-even, close, or modify SL/TP. Current builds default to5s /1500ms.
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.
Current EA builds point at our dedicated low-latency endpoint by default. It serves the exact same data — your token, your signals, and your commands are identical — but empty high-frequency requests are answered from worker memory. Supabase Realtime wakes the worker when signal state changes, while a periodic database reconciliation protects against missed events and restarts.
Setting up faster polling
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 API_FALLBACK_URL = https://tradejournalpro.net SIGNAL_POLL_MS = 500 COMMAND_POLL_MS = 1500 -
Confirm. Save, and check the Experts tab — the EA should print
Signals every 500ms | Commands every 1500mson startup. Then use a demo account and compare message, queue, pickup, submission, and broker-confirmation timestamps. The execution receipt records Telegram-to-EA pickup and Telegram-to-broker-fill timing; the configured interval is not a promised completion time.
That's it. Your token and channel configuration don't change.
A realistic expectation of "instant"
There is no universal definition of “instant execution.” Even after reducing pickup delay, timing depends on Telegram, parsing, the terminal, network, broker processing, spread, requotes, liquidity, and market depth. Two things are 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 as a signal and the EA requests it on its COMMAND_POLL_SEC loop. Setting it to 2 requests commands more frequently than the default 5-second timer; broker confirmation can still take longer or fail.
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 signal pickup feels laggy, inspect the timestamps first. If polling is the bottleneck, use the dedicated endpoint and tune SIGNAL_POLL_MS and COMMAND_POLL_MS within the documented limits. Test on demo and watch rate-limit, duplicate, and broker-rejection logs before using live funds.
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.