The included FXCM plugin allows direct trading with Forex Capital Markets LLC on demo and real accounts, without the need to install the MTR4 platform. FXCM offers some advantages, such as index and commodity CFDs, free tick-based, good-quality historical price data, a free API, and no minimum monthly investments.
For opening a FXCM demo account, visit http://www.fxcm.co.uk and click on Free FXCM Practice Account. When you enter a different FXCM page, be aware that there are several demo account types - the best is a normal practice account with currencies and CFDs (if available for your country). If possible, activate hedging for your account. If you live in the US, they will normally only offer you a no-hedging, no-CFD account; you have to activate NFA compliance in that case for trading with the FXCM API. The demo account will normally expire after a month of no trading, but can be renewed indefinitely by opening a new demo account.
- Some FXCM real account types (f.i. a "mini" account) do not support API trading. When opening an account with FXCM, make sure that the FXCM API is supported. FXCM might require a higher initial deposit for API trading.
- Do not open several sub-accounts with the same user name. The free Zorro version only supports one account per login, so for different accounts also use different user names for logging in.
- In some countries, FXCM accounts are pre-set to connect only to a single session. For trading with several Zorros on the same account, contact FXCM and let them switch your account to multiple sessions.
||FXCM Account ID
Asset names from the default AssetsFix.csv are directly used for FXCM symbols. No conversion is needed.
The FXCM plugin supports the following data streams:
- marketVal: Spread in historical data.
- marketVol: Tick frequency in live data and in historical data.
Supported broker commands
The FXCM plugin supports the brokerCommand function with the following commands:
- brokerCommand(SET_PATCH, patch)
Known FXCM API issues
You can trade with FXCM either through the MTR4 bridge, or with a direct API connection through the FXCM plugin. Direct API connection is preferable due to higher speed and lower spreads. Compared with other APIs, the FXCM "FxConnect" API is relatively fast and allows unlimited price history access. The main issues of the FXCM API (version 1.31) are:
- Wrong equity value. Due to known bugs in the FxConnect API, the account equity value returned by the API will get out of sync with the account and become wrong after a few days. This has no effect on trading as long as the equity is still positive, but it affects the equity display on the Zorro GUI. As a workaround, let Zorro calculate the equity with the BrokerPatch setting in Z.ini or with the SET_PATCH command in your own scripts. Zorro's equity estimate can also deviate from the real account value due to accumulation of small differences, but
is more accurate than the value returned by the API.
- Orphaned trades. The FXCM API has internal lists of opened and of rejected trades. A trade becomes orphaned when Zorro opens it, but it does not appear in either of the two lists due to an API or server glitch. So Zorro does not know if the trade was opened or rejected, and does not have its ID. Without trade ID, Zorro can not handle the trade, and can not close it.
Normally this happens rarely, not more often than once a year. Zorro will assume in such a case that the trade was not opened, but will warn about a possible orphaned trade in its message window and on the trade status page. So check Zorro's trade status regularly with your smartphone or in a browser, especially when running Zorro on a VPS. If you see the message "Possibly orphaned trade", open the FXCM platform (Trading Station or MTR4), and compare Zorro's list of open trades with the platform's list. Check if there is really an orphaned trade. If a trade appears in the platform, but not in Zorro's trade list, close it manually.
- No commission parameter. The commission is not available through the
used API version, and thus must be manually entered in the Assets List file for any new added asset. Commissions for all assets can be found on the FXCM website
or listed in the Trading Station. For estimating trading costs, the rule of thumb is that FXCM commission adds about 0.7 pips to the EUR/USD spread.
- Stop limit. FXCM has an upper and lower limit to the stop loss. Too small or too large stop distances cause a trade to be rejected, so the distances are limited by the plugin. This can produce different stops on the FXCM platform and the Zorro platform. If this is undesired, set StopFactor to 0.
- Server outages. The FXCM servers are usually switched off during the weekend, so their API connection breaks down every Friday night. This is normally no reason to worry since Zorro automatically resumes a trading session as soon as the server is online again. However historical price or asset data can not be downloaded during the weekend. Since the latest FxConnect API is known to crash when the server goes down, the FXCM plugin uses an older and more stable version of the API.
- No hibernation. The PC must not be reset, restart, switched off, hibernate, or go in suspend mode while connected to the FXCM API. Otherwise the API will crash and require a Zorro restart.
- Windows issues. The FXCM API was reported to have
issues with some Windows versions. Although we did not experience problems
ourselves, here's a recommendation by FXCM Australia: If you are using
Windows 7 or 8, you need to enable TLS v1.2. If using Win 7, please install
SP1. Also please install MicrosoftEasyFix51044.msi, you can
download it from
Microsoft. Scroll to the Easy fix section, there is a Download button.
Here's a list of explanations from FXCM for some of their error messages:
ORA-20103 - Session expired: Your connection has been lost.
This error message could be displayed due to a number of reasons, including
network instability, a system issue or a program crash. If the problem is a
system issue, please try to reboot.
ORA-20143 - Order price too
far from market price: This error message is generated when the Buy
Limit price is above the Bid price.
ORA-20112 - Limit price did not pass validation: This error
message is generated when the Limit price does not correspond to the ask price
for the order type required. Ff the Time in Force is IOC or FOK then the Buy
limit price should be >= Ask price.
ORA-20113 - Insufficient margin in session: This error
message is generated when you don’t have enough margin.
ORA-20102 - Access Violation: This error message is
generated when a trade account is missing from the dealer account.
ORA-20105 - Order price did not pass validation: The
rejected orders error message is generated when the stop price is too close the
the ask price. For example, if the Ask price was 9911 and your Stop price
99=9917, you would receive this error message.
ORA-20008 - Failed to create order, primary validation: This
error message is generated when Range prices are below the Ask price. For
example if orders were placed on news events, and the spreads got wider.
How can I tell what account type I have? Checking on Trading
station: To check the type of account you have, you can login to Trading station
and look in the tab “Accounts”. Scroll to the end and find column Type. Y =
Hedging is allowed; N = Hedging is not allowed, O = Netting only, D = Day
netting, F = FIFO.
Links, order, brokers, broker plugin,
MTR4 bridge, IB plugin
► latest version online