Automated Trading Machine (ATM) makes it simple to remove fear and greed from your trading. Automated trading is no longer just for the rich or nerdy. Our revolutionary software runs on your computer, using your trading rules, but none of your emotions. There's just one requirement - you know how to use a mouse. Learn more...
Common Error Messages
ATM is merely the glue which holds a whole bunch of other things together, with those other things all made by different companies. For this reason, we don't always control the error message that you see, and those error messages aren't always clear as to what went wrong. If the below doesn't help you out, please use the forums.
Miscellaneous
Unicode byte order mark
When importing a trading system or alert, you might get an error like this: "There is no Unicode byte order mark. Cannot switch to Unicode."
Trading systems and alerts are exported as text files, but text files in unicode format. Opening it in notepad, then saving, may revert the file to ANSI (ASCII) text. The Unicode byte order mark is an invisible character put at the start of the file to indicate that it is indeed Unicode. When it was accidentally saved as ANSI, that Unicode byte order mark character was blown away.
But the technical details don't really matter - all that matters is how to fix it. What you need to do, is open the file using Notepad, and click "Save As" from the main menu. In that "Save As" window, at the bottom, change the encoding to "Unicode". Not "Unicode (big endian)" - just "Unicode". Then save. And then try to import again.
Sending Emails
If you get an error like this when sending an email:
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at...
Check that you have typed in your password correctly for the outgoing email address.
Error Messages From Oanda
Any single word error message ending in "Exception" comes from Oanda. For example, "RateTableException", or "SessionException".
Here's what the Oanda help file says about each. The description is not always so helpful:
| Error | Description |
| AccountBusyException | AccountBusyException is thrown when the server responds with this message. |
| AccountException | AccountException is the base exception thrown by any Account object function. |
| CurrencyException | CurrencyException is thrown if an invalid currency pair is used in an Account function. |
| InvalidDurationException | Thrown if order duration is not valid. |
| InvalidLimitsException | Thrown if price bounds are not valid. |
| InvalidOrderException | InvalidOrderException is thrown if a non-existant order is modified or closed. |
| InvalidPriceException | Thrown if invalid execution price is set. |
| InvalidUnitsException | Thrown if invalid number of units is set. |
| InvalidUserException | Thrown if invalid username or password. |
| NSFException | NSFException is thrown if an insufficient balance exists to complete an account function. |
| OrderException | (no description given) |
| PairNotFoundException | PairNotFoundException is thrown if the currency pair can not be found in rate table. |
| RateTableException | (no description given) |
| SessionException | A SessionException is thrown by any object in a session context. |
In addition to the above, there is also this kind of error message given by the Oanda API:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Oanda.Account.modify(Account* , MarketOrder* )
at fxClientAPI.Account.Modify(MarketOrder trade)
at [...and so on]
Oanda does not allow hedging. Preliminary evidence suggests that the cause of this error is that you already have a trade open, and are trying to open another trade going in the opposite direction (i.e. your trading system is trying to hedge, either on purpose or not).
There is a workaround. See this section - "How to Hedge"
Error Messages From Gain Capital
Text in the "Description" fields copied from a thread in the Gain Capital forum:
| Error | Description |
| 1 - General input parameter error | Problem with what we have passed through, Serious Error needing programming investigation. However, if it was a once only could be a network error. The trade was not opened therefore we would not expect to see an open position. |
| 2 - Authentication error | Problem with Authentication of security, if it is the first time we connected, then we need to check passwords etc. If this occurs after we have had several successful connections, and then we assume that this is a problem with the Authentication server taking too long to respond. So try again a little later. We would not expect to see an open position after this error. |
| 3 - Stop Loss Order rate must be > current offer rate | Placing a stop-loss order was too close to the current rate. We need to adjust our stop-loss further away from the market. The order was not placed so we should try again with a better price. |
| 4 - Limit Order rate must be < current offer rate | Similiar to Error 3, except for a Limit order. |
| 5 - Over maximum order amount | We have attempted to purchase more lots than our account allows. |
| 6 - Order rate must be within 1000 points | As per the error message. You can't place an order more than 1000 pips from the current price. |
| 7 - Record not found | This occurs when trying to cancel an order. We would expect that this has occured because the order has just been filled, and hence we need to check our open positions. |
| 8 - Unable to complete request, the trading system is down for maintenance | This normally would occur during the daily rollover. The trading system is down, and hence no DealRequests or Orders could be handled by the system. Our response to this would be to try again later as the position was not opened. |
| 9 - Rate changed (That rate is not acceptable / off market) | The rate has changed since the last price that we received from the RateServer. Our response is to get the latest price and then try again (unless the price has moved too far). Following this error we would not expect to see an open position for this request. |
| 10 - Insufficient Margin | We have attempted to DealRequest which requires more margin than we currently have available in our account (which probably means that we have something wrong with our position sizing algorithms). We would investigate what open positions we have, and check our code. We would not expect that this would have opened additional positions. |
| 11 - A fatal error occurred processing your request; please check all positions and or contact the trading desk to confirm or deny the execution of this trade. | I believe this is a wacky error, when something has gone wrong with the API, and hence we need to stop trading temporarily and ring the trading desk to find out what is going on. There is no guarantees whether this opened a position successfully or not, therefore we ring the trading desk to find out. |
Recent blog posts
- Mid July 2010 Update
- Start of June 2010 Update
- New Release: v3.0.2 - Copy, better error message, more options
- New Release: v3.0.1 - The Stabilise-ening
- Ah, The First Bug [Fixed in v3.0.1]
- New Release: v3.0.0 - The Rewrite
- Start of February 2010 Update
- End Of 2009 Update
- New Release: v2.0.10
- New Release: v2.0.9 - Free
Recent comments
- API
1 week 3 days ago - Just added this wiki entry to
2 weeks 3 days ago - Ok thanks for clarifying
2 weeks 3 days ago - First let me explain the
2 weeks 3 days ago - Hey Sharky
Just wondering
2 weeks 4 days ago - Thanks for the reply Sharky.
2 weeks 4 days ago - Hi Anthony, thanks for your
2 weeks 4 days ago - Or you can go with
4 weeks 6 days ago - Which version?
9 weeks 4 days ago - Same bug here
9 weeks 5 days ago

Comments
Post new comment