My day-to-day experience specifically relates to margin and credit FIX APIs with connections into pricing aggregators which, in turn, are connected to banks, non-banks, hedge funds and ECNs. I work with professional, self-directed traders looking to upgrade from retail platforms, as well as large, licensed investment firms looking to diversify their portfolios by adding an active FX strategy. There are many things that these participants have in common and these should be considered before you move forward and invest in FIX API infrastructure.
First, what are the reasons for switching from trading FX via a third-party platform to trading FX via FIX API?
The FIX API gives you the ability to choose your interface, network set-up, hosting providers, pricing and execution engine and so forth. You will be the main point of contact for all technical implementations and issues related to them. If you believe that your IT provider is underperforming then you have the power to drop them. Furthermore, there is no risk of a breakdown in communication between vendors, which could delay problem resolution for hours.
Any third-party platform will naturally have some degree of latency when it comes to execution. By connecting via FIX API, the client is potentially reducing, or eliminating, this latency (to be technically precise, that is not a guarantee as the client can unintentionally add his or her own). I personally see bigger advantages for speed in terms of managing your own network and cross-connects as well as monitoring the quality of bare metal hardware, just as long as these components are properly configured, of course.
Any form of communication comes with some security risks. Trading FX via a FIX API leaves the choice of suitable security measures up to you. The most significant factor for any user, switching from a retail platform, is that your algos will be hosted on your own trading servers, which eliminates the possibility of anyone copying them.
A FIX API opens doors to all kinds of technical possibilities. Sometimes these possibilities are not welcomed by the sell side – for example, algorithmic systems sending toxic flow. The FIX API will also allow you to create your own trading application and platforms. It is also worth mentioning that traders can connect to multiple counterparties using their own custom application.
Secondly, what are the most common challenges?
1. Finding a reliable and knowledgeable C++, C# or Java developer
The technical part of the connection to a FIX API is very straightforward. There are many libraries available, as well as ready-to-start templates (you can find them at FIX Trading Community Forum or GitHub). Some semi-retail platforms have their own dedicated and very useful chat rooms for FIX API newbies. Bigger FX brokers also provide clear, step-by-step instructions for qualified professional clients. I have to give an honorable mention to FIX Trading Community (FTC, https://www.fixtrading.org/), which supports literally anything related to FIX. They are my number one, go-to source for specific, technical FIX API-related questions. A few of my clients actually found a developer via the FTC forum. For reference, FTC is a non-profit organization, and paid memberships starts at $9,147 (as of January 1, 2020). I believe that it is definitely worth considering as a resource.
If the plan is to build your own algo, there is also the challenge of finding experienced programmers and quants.
If I were a professional trader with $50k of my money ($50k is the average deposit to qualify for a FIX API account with most brokers), I would experiment with learning code and spend some time on forum chats. However, if a company is licensed and manages investors’ money then that’s a big NO to inexperienced help. Hire experts!
2. Communication between programmers and trader
This is a particularly tough subject when bigger companies are hiring traders that are used to retail trading platforms like Meta Trader 4. A programmer needs to understand the inputs/basics of what he or she will code and the basics of coding possibilities, as well as the order types and consequences of each setting/parameter.
For example, I see many struggling with order type implementation (Market vs Limit vs Stop) and “Time in Force” parameters such as FOK, IOC, GTC. I thought it worth exploring these further in this article.
Time in Force parameters:
- FOK (Fill or Kill): filled for the entire amount or rejected for the entire amount.
- IOC (Immediate or Cancel): filled for the available amount; the remaining amount will be canceled.
- GTC (Good Till Cancel): an order to buy or sell at a fixed price that remains in place until it is either executed or canceled. It does not expire at the end of the trading day.
With FOK, the entire order is routed to one LP. If the LP rejects it, the system will try to reroute it once more, otherwise it is canceled.
In the case of IOC, the order is routed to multiple LPs. If it is rejected, the residual will be routed again. If there are still rejections, the residual will be canceled.
With GTC, the order will be routed to multiple LPs and attempts will continue until the entire order is filled or the client cancels the order.
There are many variables within these settings. Liquidity providers as well as FIX API developers and actual traders like to argue about timeouts for FOK and IOC orders, for example. In most cases, FIX API is tailored to a particular trading style or goal. I always recommend traders to work hand-in-hand with developers to avoid future disasters.
3. Finding a suitable trading counterparty
Retail FX brokers often portray the FIX API as an expensive, and potentially dangerous, product to offer. Firstly, a FIX API requires there to be some degree of institutional technology in place, which will cost money. Secondly, the FIX API entails development support involving human labor costs. Thirdly, FIX API clients tend to be more sophisticated and the risks of toxic flow are significantly higher.
Therefore, FIX API clients seem doomed to work with, more or less, institutional market participants, and often have a better chance of working with non-market makers. That is where challenge after challenge will arise. FX brokers may price FIX API clients differently (often not market making them) and that can potentially ruin some trading strategies.
One of my prospects had a successful two-year trading track record, with a semi-retail brokerage, which helped him to attract a large investor. He saw his order size, as well as volumes, tripled within a week and his existing broker was not able to handle the increased flow. Trade sizes of 70 lots per click are much harder to manage for a retail broker so, after a few frustrating months, the client decided to take his business to the next level and the client finally became exposed to the interbank FX world.
He decided to recode strategies from MLQ4 to C++ and spent around $20k on the project. The FIX API opened up many new ways of clearing large orders across several venues. Unfortunately, the algos that had been working well on previous platforms under retail conditions, were now performing poorly when applied in a non-retail environment. The prospect was not able to scale his business and ended up losing his investor, time and money. A simple switch to the right liquidity venue, without spending money on FIX API development, would have resulted in a better outcome.
Thirdly, what would you need to start FX trading via a FIX API?
1. An API Agreement with the sell side (FX broker, prime of prime broker, etc.) or
2. Your own FIX engine.The definition of a FIX engine is a program written to facilitate trading where the program of the buy side (trader) will communicate with the program of the sell side (liquidity provider). Some examples of popular commercial FIX engines include Onix, Appia, Cameron FIX and CoralFIX. There is also an open source (free) FIX engine: QuickFIX. Some may contest its quality, but QuickFIX does its job for millions of users. It also does it well – and for free.
3. Have Cross-connects, servers (hardwareVM) and technology in place. Ensure to check your trading partner’s hosting arrangements and work on the technology set-up ahead of time, as server and network provisioning may take weeks.
Now to my favourite part, cost analysis. This step is overlooked by more businesses than one can imagine.You can be a professional trader with some programming skills, an investment fund with an IT department, or a pension fund without developers or data center presence.
An experienced programmer will establish a FIX connection in a matter of a few hours (or minutes for some), but an inexperienced one may take weeks. Always factor in delays for network provisions, set-up optimizations and hardware delivery. Cross-connects may take weeks just because your liquidity provider’s IT team is backed up with other projects, or because of overall slow communication between suppliers.
2. Labour Cost
This will vary per geographical region. In the US and UK, expect to pay at least $3–5k + monthly for an experienced FIX API developer. This cost will be reduced if the work can be outsourced, but financial markets are too sensitive to such practices. Many opt to pay per project (this depends purely on the scope of the work). Some professional traders are successfully learning from FIX API forums with zero expenses involved.
Cross-connects (top-tiered providers like Interxion, Equinix and Digital Realty): basic configuration from $500 monthly (in some cases the liquidity provider can cover the costs).
Dedicated servers: from $500 monthly. Other network-related charges (network security and so on): from $100 monthly. Engine cost: from $15k a year for a commercial model, or $0 for an open source one (QuickFIX). Liquidity provider monthly minimums (or price feed fees): usually start at $2k if a certain trading volume is not met. Incorporate some optional spending on data and news (a very basic Bloomberg Terminal alone is $2k a month).
As you can see, the cost of trading via a FIX API can be as low as $600 a month for a professional trader with some programming skills and as high as $10–15k monthly (of course there is no cap) for a licensed fund with a proper IT infrastructure. What is more important is an understanding that a FIX API is not a Holy Grail for guaranteed profitability. There are many caveats as well as benefits. The FIX API was created for the finance industry. It is simple and unified. If you are an FX business or an individual looking to implement it, spend some time doing the research. The more you do ahead of the implementation, the less room will be left for mistakes. Best of luck!