MT5 error 10044: Only position closing is allowed (TRADE_RETCODE_CLOSE_ONLY)
The symbol is in close only mode: you can close what you hold but not open anything new. The new order was refused.
What it means
You see this code in the retcode of a trade result, from OrderSend() in MQL5 or order_send() in Python.
Brokers put a symbol into close only mode before they remove it, before an expiry, or when they stop offering it. Opening orders are refused with 10044.
Closing your existing positions still works.
Common causes
- A futures contract near its expiry.
- A symbol the broker is about to delist.
- A rollover to a new contract name.
How to fix it
- Check
symbol_info(name).trade_mode. 3 means close only. - Move to the new contract or symbol the broker offers.
- Close any open positions before the symbol is removed.
Example in Python:
import MetaTrader5 as mt5
for s in mt5.symbols_get() or ():
if s.trade_mode == 3: # close only
print(s.name, "is close only") Is it safe to retry?
No new positions will open on this symbol.
Could the order have executed?
No. The opening order was refused.
How Tickwire handles it
Tickwire checks the trade mode before sending and refuses an opening order on a close only symbol with 10044. Closes go through.
Related codes
One API for MT4 and MT5
Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.