MT5 error 10034: Volume limit for the symbol reached (TRADE_RETCODE_LIMIT_VOLUME)
Your open and pending volume on this symbol has hit the broker's cap. Nothing was executed; reduce your exposure first.
What it means
You see this code in the retcode of a trade result, from OrderSend() in MQL5 or order_send() in Python.
A symbol can have a maximum total volume per account in one direction, counting open positions and pending orders. 10034 means this order would go over it.
It is different from the maximum per order. Each order can be valid and the total still too high.
Common causes
- Adding to a position many times.
- Pending orders that would add to the same side.
- A low limit on a volatile symbol.
How to fix it
- Read
symbol_info(name).volume_limit. 0 means no limit. - Add up your positions and pending orders on that symbol before sending.
Example in Python:
import MetaTrader5 as mt5
limit = mt5.symbol_info("XAUUSD").volume_limit
used = sum(p.volume for p in mt5.positions_get(symbol="XAUUSD") or ())
used += sum(o.volume_current for o in mt5.orders_get(symbol="XAUUSD") or ())
if limit and used + 0.5 > limit:
print(f"would exceed {limit} lots on XAUUSD") Is it safe to retry?
After you reduce the open or pending volume.
Could the order have executed?
No. The order was refused.
Related codes
One API for MT4 and MT5
Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.