MT5 error 10024: Too frequent requests (TRADE_RETCODE_TOO_MANY_REQUESTS)
You sent trade requests faster than the broker allows. This one was refused; slow down and send it again after a pause.
What it means
You see this code in the retcode of a trade result, from OrderSend() in MQL5 or order_send() in Python.
Brokers limit how often one account can send trade requests. Above that rate the server answers 10024 instead of processing the request.
It protects the server, and it is often a sign of a loop that retries too fast.
Common causes
- A retry loop with no delay.
- Many small modifications, such as a trailing stop that moves on every tick.
- Several programs trading the same account at once.
How to fix it
- Add a pause between retries and grow it after each failure.
- Only modify a trailing stop when it moves by a meaningful step.
- Batch work instead of firing one request per tick.
Example in Python:
import time
import MetaTrader5 as mt5
delay = 0.5
for attempt in range(5):
r = mt5.order_send(request)
if r is None or r.retcode != mt5.TRADE_RETCODE_TOO_MANY_REQUESTS:
break
time.sleep(delay)
delay *= 2 # back off: 0.5, 1, 2, 4 seconds Is it safe to retry?
Yes, after a pause. The request was refused, not processed.
Could the order have executed?
No. The server refused it before processing.
How Tickwire handles it
MT4's busy and rate codes 4, 8, 137, 141 and 146 come back as 10024. For 4, 137, 141 and 146 nothing was sent, so a retry after a moment is safe. For 146, Tickwire first waits up to 5 s for the terminal's trade context to free up.
Tickwire's own rate limits answer HTTP 429 with sent: false and a Retry-After header. See rate limits.
Related codes
One API for MT4 and MT5
Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.