Error Codes
Complete reference guide for TradeSgnl error codes. Find solutions for common trading errors, EA connection issues, and signal processing problems.
Introduction
When the Expert Advisor processes a signal, errors can occur due to market conditions, account restrictions, or signal-format issues. Each error returns a numeric code so you can identify the cause quickly.
Six categories of codes
- MT5 Error Codes (10000+) come directly from the MetaTrader 5 platform.
- EA Error Codes (6000+) are raised by the TradeSgnl EA itself.
- Signal Error Codes (7000+) are raised during signal validation, before the request reaches your terminal.
- Crypto Exchange Error Codes (7500+) are raised when a signal is executed on a connected crypto exchange.
- cTrader Error Codes (7600+) are raised when a signal is executed on a connected cTrader account.
- TradeLocker Error Codes (7700+) are raised when a signal is executed on a connected TradeLocker account.
Error codes appear in Signal History in your dashboard, next to any signal that didn't execute. The code tells you why.
MT5 Error Codes
Returned directly by MetaTrader 5 when a trade request can't be completed. These are consistent across brokers, though the conditions that trigger them depend on your broker's rules.
| Code | Error | Description |
|---|---|---|
10004 | Requote | Price changed during order execution. Try again at the new price. |
10006 | Request Rejected | Trade request was rejected by the server. |
10007 | Request Canceled | Trade request was canceled by the trader. |
10008 | Order Placed | Order has been successfully placed. |
10009 | Request Completed | Trade request has been completed successfully. |
10010 | Partial Completion | Only part of the requested volume was executed. |
10011 | Processing Error | Error occurred while processing the trade request. |
10012 | Timeout | Trade request was canceled due to timeout. |
10013 | Invalid Request | Trade request contains invalid parameters or is improperly formatted. |
10014 | Invalid Volume | The volume specified in the trade request is invalid or outside allowed limits. |
10015 | Invalid Price | The price specified in the trade request is invalid. |
10016 | Invalid Stops | Stop levels (take profit or stop loss) in the request are invalid. |
10017 | Trading Disabled | Trading is disabled for this account or symbol. |
10018 | Market Closed | The market is currently closed for the requested symbol. |
10019 | Insufficient Funds | Not enough money in the account to complete the trade request. |
10020 | Price Changed | The price changed during order execution. Retry with the new price. |
10021 | No Quotes | There are no quotes available to process the request. |
10022 | Invalid Expiration | The order expiration date in the request is invalid. |
10023 | Order State Changed | The state of the order has changed since the request was made. |
10024 | Too Many Requests | Too many trade requests have been sent in a short period. Please wait and try again. |
10025 | No Changes | The request contained no changes to the existing order. |
10026 | Server Disabled AutoTrading | Automated trading has been disabled by the server. |
10027 | Client Disabled AutoTrading | Automated trading has been disabled by the client terminal. |
10028 | Request Locked | The request is currently locked for processing. |
10029 | Order/Position Frozen | The order or position is currently frozen and cannot be modified. |
10030 | Invalid Fill Type | The order filling type specified is invalid. |
10031 | No Connection | No connection to the trade server. Check your internet connection. |
10032 | Only Real Accounts | This operation is only allowed for live trading accounts. |
10033 | Pending Orders Limit | The number of pending orders has reached the maximum allowed limit. |
10034 | Volume Limit | The volume of orders and positions for this symbol has reached the limit. |
10035 | Invalid Order Type | The order type specified is incorrect or prohibited. |
10036 | Position Already Closed | The position with the specified identifier has already been closed. |
10038 | Invalid Close Volume | The close volume exceeds the current position volume. |
10039 | Close Order Exists | A close order already exists for this position. Check existing orders. |
10040 | Position Limit Reached | The account has reached the maximum number of open positions allowed. |
10041 | Activation Rejected | The pending order activation request was rejected and the order was canceled. |
10042 | Long Only | Only long positions are allowed for this symbol. |
10043 | Short Only | Only short positions are allowed for this symbol. |
10044 | Close Only | Only position closing is allowed for this symbol. |
10045 | FIFO Close Violation | Position closing is only allowed according to FIFO (First In, First Out) rule. |
10046 | Hedge Prohibited | Opposite positions on the same symbol are disabled for this account. |
EA Error Codes
Raised by the TradeSgnl Expert Advisor when a signal violates its configuration (risk limits, spread filters, symbol availability, etc.).
| Code | Error | Description |
|---|---|---|
6001 | Outside Trading Session | The trade was rejected because it was placed outside of allowed trading hours. |
6002 | Spread Too High | The trade was rejected because the current spread exceeds maximum allowed value. |
6003 | Pyramid Limit Reached | The strategy group already holds the maximum number of trades allowed at its current pyramid level (Trade Limit Per Level). Only applies when both Level Size and Trade Limit Per Level are set. Scoped to the group, meaning trades sharing this signal's symbol and comment. |
6004 | Maximum Volume Exceeded | The trade was rejected because it would exceed the maximum allowed volume. |
6005 | Pending Order Level Missing | The pending order could not be placed because the order level was not specified. |
6006 | Direction Lock Violation | The trade was rejected because Direction Lock is enabled and prevents opening positions in the opposite direction. The strategy is currently locked to one side of the market. Only fires on pyramid-managed strategies, and is scoped to trades sharing this signal's symbol and comment. |
6007 | Invalid Symbol | The symbol does not exist or cannot be traded on this broker. If a close match exists, the rejection suggests it, with a shortcut to add it as a symbol mapping or enable auto-match. |
6008 | DCA Filter Violation | The trade was rejected by DCA Filter. Buys must be below the last entry price, and sells must be above the last entry price to allow averaging down. Only fires on pyramid-managed strategies, and compares against the last entry sharing this signal's symbol and comment. |
6009 | EA Stopped by Max Drawdown | The trade was rejected because the EA has been stopped after reaching the maximum drawdown limit. Manual resume required. |
6010 | EA Paused by Daily Drawdown | The trade was rejected because the EA is paused after reaching the daily drawdown limit. Will auto-resume at start of new trading day. |
6011 | Maximum Trades Limit Reached | The trade was rejected because opening it would exceed the maximum total number of allowed open trades. |
6012 | Maximum Trades Per Symbol Limit Reached | The trade was rejected because opening it would exceed the maximum number of allowed trades for this symbol. |
6013 | SL Required for Volume Type | The trade was rejected because the selected volume type requires a stop loss value for lot size calculation. |
6014 | EA Paused by Daily Profit Target | The trade was rejected because the EA is paused after reaching the daily profit target. Will auto-resume at start of new trading day. |
6015 | EA Paused by Monthly Profit Target | The trade was rejected because the EA is paused after reaching the monthly profit target. Will auto-resume at start of new trading month. |
6016 | Maximum Long Trades Limit Reached | The trade was rejected because opening it would exceed the maximum allowed number of long (buy) trades. |
6017 | Maximum Short Trades Limit Reached | The trade was rejected because opening it would exceed the maximum allowed number of short (sell) trades. |
6018 | Broker Disconnected | The terminal was disconnected from the broker when the signal arrived, so the symbol could not be verified. This is usually transient. The next signal should succeed once the connection is restored. |
6019 | Nothing to Modify | The modify command found no open position or pending order to change on this symbol and side. When the signal carries a comment, only trades with that comment count. |
6020 | Invalid Modify Request | The modify command named nothing it can change. Send a stop loss or take profit, or an entry for pending orders. sl=entry, sl=none and tp=none only apply to open positions, and an entry only to pending orders. |
6021 | Copy Below Minimum Lot | The copy was smaller than the broker's minimum lot, so it was not opened. Raise the Trade Copier's sizing to copy trades this small. |
6022 | Signal Could Not Be Read | The signal is missing its symbol or action, or names an action the EA does not know, so nothing was done. Check the alert message against the signal syntax. |
6023 | Blocked by the News Filter | The signal arrived during a news window set in the EA and was not traded. Turn on Queue Signals During News to trade it once the window ends, or widen the filter settings. |
6024 | Partial Close Below Minimum Lot | The part of the position this signal asked to close is smaller than the broker's minimum lot, so nothing was closed. Close a larger share, or close the whole position. |
6025 | Signal Value Could Not Be Used | A value in the signal could not be used, so nothing was done. Usually a stop loss, take profit, entry, size or close percentage that is empty, text or out of range, or a symbol with no price yet. Check the alert message against the signal syntax. |
6026 | Risk Below Minimum Lot | With this stop loss, the risk you set works out smaller than the broker's minimum lot, so the trade was not opened. Raise the risk, move the stop closer, or use a fixed lot size. |
6027 | No Lot Size | The EA takes the lot size from the signal, and this signal has none, so nothing was opened. Add a lot size or risk to the alert, or set Volume Source to EA Inputs. |
Adjustable in EA settings
EA error codes usually point at safety filters or trading rules you've configured. Most can be relaxed or disabled in the EA settings if they're blocking signals you want executed.
Signal Error Codes
Raised during signal validation on the TradeSgnl servers, before the signal reaches your terminal. These usually indicate a problem with the signal payload itself.
| Code | Error | Description |
|---|---|---|
7001 | Invalid license code | License code is invalid, expired, or not found. Check your license details. |
7002 | Invalid action/command | Signal command (e.g., BUY, SELL) is not recognized or improperly formatted. Verify command syntax. |
7003 | Missing trade volume/risk | Signal must include trade volume or risk percentage. This information was not found. |
7004 | Invalid symbol format | Trading symbol is improperly formatted, contains invalid characters, or is not recognized. Check symbol against broker's naming convention. |
7005 | Invalid numeric value for TP | Take Profit (TP) must be a valid positive number. Check formatting and ensure it is a logical price. |
7006 | Invalid numeric value for SL | Stop Loss (SL) must be a valid positive number. Check formatting and ensure it is a logical price. |
7007 | Invalid numeric value for volume/risk | Trade volume or risk percentage is not a valid positive number or is outside broker limits. Check value and formatting. |
7008 | Missing required symbol | Signal is missing trading symbol (e.g., EURUSD). Specify the financial instrument. |
7009 | Missing required action | Signal is missing action/command (e.g., BUY, SELL). Specify the trading operation. |
7010 | Invalid secret key authentication | Secret key or API token is incorrect, expired, or unrecognized. Verify authentication credentials. |
7011 | Signal parsing failed | Error interpreting signal data due to incorrect formatting, unexpected characters, or corrupted structure. Review signal syntax. |
7012 | Payload too large | Signal data exceeds the server's maximum allowed size. Reduce information in comments or optional parameters. |
7013 | Empty or malformed payload | Received signal data is empty, incorrectly formatted, or has structural errors preventing parsing. Check signal content and structure. |
7014 | Invalid parameter format | One or more parameters (e.g., price, SL/TP) are not in the correct data type or format. Review parameter specifications. |
7015 | Duplicate signal ID | A signal with this unique ID has already been processed. Ensure each new signal uses a unique identifier. |
7016 | No client connected | Signal was received but no MT5 terminal was connected and no cTrader or TradeLocker account was switched on for this license. Ensure your EA is running and connected, or that a cTrader or TradeLocker account on this license is switched on, before sending signals. |
7017 | Alert time missing | The alert came through the TradeSgnl browser extension without the time TradingView fired it, so it was not traded. Update the extension. |
7018 | Alert arrived too late | The alert came through the TradeSgnl browser extension more than 5 seconds after TradingView fired it (for example, the computer was asleep or offline), so it was not traded at an old price. Keep the computer awake with TradingView open, or use a webhook. |
7020 | Exit signal ignored | Strategy has "Ignore Exit Signals" enabled (the ,noexit flag), so the server rejected this position-close action. Entries, reversals, and pending-order cancels from the same strategy still execute. To re-enable: remove the noexit flag from the alert message. |
7021 | EA update required | This account runs an EA version that does not understand this command, so the signal was not sent to it. Modify commands need EA 0.68 or newer. Update the EA and send the signal again. |
7022 | No active subscription | The signal was not accepted because the subscription on this license is not active and no account was connected to receive it. It is not saved to your signal history. Renew your subscription to send signals again. |
Common signal error scenarios:
- Authentication issues (7001, 7010): verify your license code and secret key are correct and active.
- Missing parameters (7003, 7008, 7009): your signal must include symbol, action, and volume/risk.
- Format errors (7004, 7011, 7013, 7014): check the signal's syntax and data types.
- Data issues (7012, 7015): avoid sending duplicate signals or oversized payloads.
Crypto Exchange Error Codes
Raised when a signal is placed on a connected crypto exchange. They appear on the Signals page next to the order, with a sentence saying why.
| Code | Error | Description |
|---|---|---|
7501 | Short selling not available on spot | Spot exchanges cannot open short positions. Use closebuy or closeall to exit a position instead. |
7502 | Stop-entry orders not supported | Stop-entry orders are not supported on crypto exchanges yet. Use buy or buylimit instead. |
7503 | Limit exits not supported | Limit exits are not supported on crypto exchanges yet. Set tp_price or tp_percent on the entry, or send closebuy. |
7504 | No short position on spot | Short positions do not exist on a spot exchange, so there was nothing to close or cancel. |
7505 | Action not supported on crypto | Supported crypto actions are buy, long, buylimit, closebuy, closelong, closeall, closelongbuy, closelongsell, closeshortbuy, cancellong and cancelall. A sell closes the long, as closelong does. Use pct=, pct_percent= or pct_lots= for partial closes and comment= to close one strategy. |
7506 | No tradable spot pair | The exchange has no spot pair for this symbol that is open for trading. Futures and perpetuals are not traded. A coin on its own (such as SOL), or a symbol quoted in USD, USDT or USDC whose own pair is missing or not open for trading (such as BTCUSD or EURUSD), is traded against USDT, USDC or USD, in that order. Check the symbol in your alert message. |
7507 | Stale signal rejected | The signal was older than the freshness limit, usually a delayed TradingView retry. It was not traded. |
7508 | Duplicate signal rejected | No longer used: every signal is now placed. Older signals may still show it, from when a repeat of the same signal within a few seconds was ignored. |
7509 | No open position to close | TradeSgnl holds no open position for this symbol that matches the signal (its comment, if it has one), or the position is on a pair that is not open for trading right now, which the message then names. Coins bought outside TradeSgnl are never touched. |
7510 | Insufficient balance on exchange | Not enough funds on the exchange for this order. Deposit funds or reduce the order size. |
7511 | Order below exchange minimum | The order is below the exchange's minimum size for this pair. Increase the volume or risk value. |
7512 | Exchange API key rejected | The exchange no longer accepts the stored API key. Remove the connection and add it again with a new key. |
7513 | Exchange unreachable | The exchange could not be reached or did not confirm a request, or the server was restarting. When the message says nothing was traded, later signals are tried normally. When it says a request was not confirmed, it may have gone through: check the account on the exchange before sending it again. |
7514 | Missing trade volume/risk | The signal carried no position size. Add vol_dollar, vol_pctbal, vol_lots or risk. |
7515 | Exit sale failed | A take profit or stop loss price was reached, but the sale could not be completed after several tries (the message says why). A stop loss resting on the exchange stays there, and one TradeSgnl watches keeps being tried every minute. Close the position from your dashboard or on the exchange. |
7516 | Buy not saved | TradeSgnl placed the buy but could not save it yet. It keeps trying, and manages the position once it is saved. The message says whether a stop loss was placed meanwhile. |
7517 | Close size not understood | pct= and pct_percent= are a share between 0 and 1 (0.5 closes half), and pct_lots= an amount of the coin above 0. Nothing was sold. |
7518 | Sale not recorded | The exchange sold this, but TradeSgnl could not record it. Check the position before you close it again. |
7519 | TradeSgnl could not finish | TradeSgnl could not complete this signal because of a fault on its side. Check the account on the exchange before sending it again. |
7520 | Exchange not open yet | This exchange is not open for new trades on TradeSgnl yet, so this entry was not placed. Positions already open on it are still closed, cancelled and protected as usual. |
7521 | Account type not supported | This exchange account type cannot be traded by TradeSgnl, so the order was not placed. The message says which account type the exchange needs. |
7599 | Exchange rejected the order | The exchange refused this order or did not fill it. The message says what happened. |
cTrader Error Codes
Raised when a signal is placed on a connected cTrader account. They appear on the Signals page next to the order, with a sentence saying why. A message that begins "Position opened" means the trade is open without the level it names: set it in cTrader.
| Code | Error | Description |
|---|---|---|
7601 | cTrader sign-in expired | cTrader no longer accepts the account's sign-in, for example because access was removed in your cTrader ID settings. Click Reconnect on the account's card and sign in again. You are alerted once; later signals show this code until you reconnect. |
7602 | cTrader account not authorised | cTrader did not let TradeSgnl trade this account, or the account no longer exists or is disabled at the broker. If the card says cTrader no longer accepts the sign-in, reconnect it, or remove it if the account was closed. If the message says TradeSgnl signed the account back in, the next signal trades normally. A limited-risk account, which needs a guaranteed stop loss on every position, cannot be traded by TradeSgnl. |
7603 | Too many requests to cTrader | cTrader limited how fast requests could be sent, so this one was refused. Later signals are tried normally. |
7604 | cTrader unreachable | The connection to cTrader was unavailable or cTrader did not confirm a request, or the server was restarting. When the message says nothing was traded, later signals are tried normally. When it says a request was not confirmed, it may have gone through: check the account in cTrader before sending it again. |
7605 | Action not supported on cTrader | The signal's action cannot be carried out on a cTrader account. See what your signals can do. |
7606 | Symbol not offered by the broker | The broker behind this account has no symbol by that name. The message suggests close names when there are any. Use the broker's name, map the alert's name under Symbol mapping in the account card's Settings, or add a license symbol mapping. |
7607 | Stale signal rejected | The alert included timenow={{timenow}} and arrived more than two minutes after it fired, so it was dropped as outdated. No alert is sent. |
7608 | Duplicate signal rejected | No longer used: every signal is now placed. Older signals may still show it, from when a repeat of the same trade within a few seconds was ignored. |
7609 | No matching position or order | A close or modify arrived, but no position or pending order placed by TradeSgnl matched it, or cTrader could not cancel an order that had just filled or been cancelled. Trades you opened yourself in cTrader are never touched. |
7610 | Margin or position limit reached | The account does not have enough free margin for this trade, has reached its exposure limit for the symbol, or has reached its limit of open positions and orders. Reduce the size or add funds. |
7611 | Trade size rejected | The size is missing, below the symbol's minimum (or a partial close would be), or refused by the broker. vol_dollar= without a stop loss cannot be sized. TradeSgnl never rounds an entry up. |
7612 | Stop loss or take profit rejected | The broker refused the stop loss or take profit, often because it was too close to the price. If the trade opened, it is open without that level: set it in cTrader. |
7613 | Trading not allowed | Trading is not possible on this account or symbol right now, for example because the market is closed (a weekend or holiday), the symbol is close-only, or short selling is not allowed on it. |
7614 | No price from the broker | The broker had no price for this symbol when the signal arrived, so the order was not sized or placed. |
7615 | Missing or unusable parameter | The action was fine, but one of its parameters was missing or unusable. The message says which one when it can. |
7699 | cTrader rejected the order | cTrader refused the order for a reason not covered above. The message gives cTrader's reason code; contact support if it keeps happening. |
About 7615. 7605 means the action itself cannot run; 7615 means the action is fine and one parameter needs fixing. The common causes:
- A pending order without the price to place it at, or with its entry set as a distance from the price (
entry_pips=,entry_points=,entry_percent=,pending=). - A value that is not a number, a price the broker rejected as invalid, a stop too small for the symbol to express, or a pip distance on a symbol quoted with no decimals.
- A
pct=above 1, such aspct=50:pct=is a share between 0 and 1. - A flag cTrader does not run:
re(recovery) orpy(pyramiding) on an order that opens a position, orticket=on anything but a plain entry. exoporexenton anything but a market entry.- A sizing field cTrader does not support:
vol_pcteq=,vol_pctbal_loss=,vol_pcteq_loss=, orvolume=on its own. vol_dollar=with a stop set as a price or a percentage (sl_price=,sl_percent=).- A stop, target, trailing or breakeven field with an unknown ending, such as
sl_pip=.
TradeLocker Error Codes
Raised when a signal is placed on a connected TradeLocker account. They appear on the Signals page next to the order, with a sentence saying why. A message that begins "Position opened" means the trade is open without the level it names: set it in TradeLocker.
| Code | Error | Description |
|---|---|---|
7701 | TradeLocker sign-in refused | TradeLocker no longer accepts the account's sign-in, usually because the password was changed, or the login no longer lists this account. Click Reconnect on the account's card and sign in with your current TradeLocker password. You are alerted once; later signals show this code until you reconnect. |
7702 | Account refused the trade | The broker or prop firm refused the trade under its own rules, and the message quotes its reason. Also shown when the account does not allow closing part of a trade, or when TradeLocker cancelled an order before it filled. |
7703 | Too many requests to TradeLocker | TradeLocker asked TradeSgnl to slow down, so this one was not carried out. The next signal is sent normally. |
7704 | TradeLocker unreachable | TradeLocker could not be reached, was too busy, or did not answer, or the server was restarting. When the message says nothing was traded, later signals are tried normally. When it says the outcome is unknown, it may have gone through: check the account in TradeLocker before sending it again. |
7705 | Action not supported on TradeLocker | The signal's action cannot be carried out on a TradeLocker account. See what your signals can do. |
7706 | Symbol not offered by the broker | The broker behind this account has no symbol by that name. The message suggests close names when there are any. Use the broker's name, map the alert's name under Symbol mapping in the account card's Settings, or add a license symbol mapping. |
7707 | Stale signal rejected | The alert included timenow={{timenow}} and arrived more than two minutes after it fired, so it was dropped as outdated. No alert is sent. |
7709 | No matching position or order | A close or modify arrived, but no position or pending order placed by TradeSgnl matched it, or TradeLocker no longer had it. Trades you opened yourself in TradeLocker are never touched. |
7710 | Not enough funds | The account does not have enough funds or free margin for this trade. Reduce the size or add funds. |
7711 | Trade size rejected | The size is missing, below the symbol's minimum (or a partial close would be), not a whole number of the symbol's lot steps, or refused by the broker. vol_dollar= without a stop loss in pips cannot be sized. TradeSgnl never rounds an entry up. |
7712 | Stop loss or take profit rejected | The stop loss or take profit was refused, often because it was too close to the price or on the wrong side of it. If the trade opened, it is open without that level: set it in TradeLocker. |
7713 | Trading not allowed | Trading is not possible on this symbol right now, for example because the market is closed (a weekend or holiday) or the symbol is disabled. When the market is closed, TradeLocker's reason reads like "SL orders are forbidden by trade session status". |
7714 | No price from the broker | TradeLocker had no price for this symbol when the signal arrived, so a stop or target measured from the price, or a vol_dollar= size, could not be worked out. No order was sent. |
7715 | Parameter not supported | The action was fine, but one of its parameters was missing or unusable. The message says which one when it can. The common causes are the same as for 7615 above. |
7716 | Not confirmed yet | TradeLocker took the order or close but did not confirm it in time, so it shows as pending. TradeSgnl checks it again within five minutes and updates it. Don't send it again in the meantime. |
7799 | TradeLocker rejected the order | TradeLocker gave an answer TradeSgnl could not read, or a trade opened but TradeSgnl could not start managing it (the message says which take profit levels, trailing stop or breakeven are not active, so manage it in TradeLocker). Contact support if it keeps happening. |
Troubleshooting Common Errors
The most frequent errors and how to resolve them.
| Error | Problem | Solution |
|---|---|---|
10019 Insufficient Funds | Account does not have enough free margin to open the position. | Check account balance and margin requirements. Reduce risk per trade if needed. |
10017 Trading Disabled | Automated trading is blocked at the terminal or broker level. | Enable automated trading in MT5. Confirm your broker allows EA execution. |
10031 No Connection | EA cannot reach the broker server. | Check internet connection, confirm terminal is logged in, restart MT5 if needed. |
10018 Market Closed | The symbol is outside its trading hours. | Check your broker's trading hours for that instrument. |
6002 Spread Too High | Current spread exceeds the EA's configured max-spread. | Wait for tighter market conditions, or adjust the spread filter in EA settings. |
6007 Invalid Symbol | The signal's symbol does not match any tradeable symbol on your broker. | Open the rejection in Signal Logs: the EA suggests the closest symbol your broker lists (e.g. EURUSD.m, EURUSD.micro) with a one-click shortcut to add it as a symbol mapping, or enable auto-match to let the EA pick the one clear match itself. |
General troubleshooting steps:
- Check EA logs. The Experts tab in MT5 has the detailed error context.
- Verify signal format. All required fields present, correct types.
- Check account status. Active, funded, not in margin call.
- Restart the EA. Solves transient connection issues.
- Contact support. For persistent errors that don't match any of the above.