MT5 error 10043: Only short positions are allowed (TRADE_RETCODE_SHORT_ONLY)
The symbol only allows sell positions right now. A buy was refused and nothing executed; sells and closes still work.
What it means
You see this code in the retcode of a trade result, from OrderSend() in MQL5 or order_send() in Python.
The symbol is set to short only. New buys are refused with 10043; sells and closes still go through.
It is less common than long only, and usually temporary.
Common causes
- A broker rule on a symbol under special conditions.
- A temporary restriction ahead of an event.
How to fix it
- Check
symbol_info(name).trade_mode. 2 means short only. - Skip buy signals on that symbol until it changes.
Example in MQL5:
long mode = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE);
if(mode == SYMBOL_TRADE_MODE_SHORTONLY)
Print(_Symbol, ": only sells are allowed, skipping the buy"); Is it safe to retry?
Not as a buy, while the rule applies.
Could the order have executed?
No. The buy was refused.
How Tickwire handles it
Tickwire checks the trade mode before sending, so a buy on a short only symbol is refused with 10043 and nothing is sent.
MT4 runtime error 4110 (longs not allowed) comes back as 10043.
Related codes
One API for MT4 and MT5
Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.