MetaTrader 5 trade server return code
MetaTrader 5 trade server return code: 10046 TRADE_RETCODE_HEDGE_PROHIBITED
The error, as text you can copy
10046 TRADE_RETCODE_HEDGE_PROHIBITED - Kind
- Trade server return code
- Where you meet it
- Returned by the trade server to the platform
What does 10046 TRADE_RETCODE_HEDGE_PROHIBITED mean on the MetaTrader 5 API?
The request was rejected because the trading account has the rule "Opposite positions on a single symbol are disabled". The vendor's example: with a Buy position open, a Sell position or a pending sell order cannot be opened. The rule applies only to accounts with the hedging accounting system (ACCOUNT_MARGIN_MODE=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING). It is a MetaTrader 5 trade server return code, placed in the retcode field of the MqlTradeResult structure after OrderSend().
Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.
No fix in the source
The vendor's page gives no remedy. The rule is a setting of the trading account.
That is all the source says, so this page does not invent a fix. General guidance: the other trade server return codes recorded for MetaTrader 5, and the error lookup for the exact text of the reply you received.