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.

10044TRADE_RETCODE_CLOSE_ONLY
NoSafe to retry?
NoCould it have executed?

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.

All MetaTrader error codes

One API for MT4 and MT5

Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.