What is FIX?
The Financial Information eXchange (“FIX”) Protocol is a series of messaging specifications for the electronic communication of trade-related messages. It has been developed through the collaboration of banks, broker-dealers, exchanges, industry utilities and associations, institutional investors, and information technology providers from around the world. These market participants share a vision of a common, global language for the automated trading of financial instruments.
FIX is the industry-driven messaging standard that is changing the face of the global financial services sector, as firms use the protocol to transact in an electronic, transparent, cost efficient and timely manner. FIX is open and free, but it is not software. Rather, FIX is a specification around which software developers can create commercial or open-source software, as they see fit. As the market’s leading trade-communications protocol, FIX is integral to many order management and trading systems. Yet, its power is unobtrusive, as users of these systems can benefit from FIX without knowing the language itself.
Who uses FIX?
All major banks, hedge funds, trading exchanges tend to use FIX. To see a list of some FIX users please click the link.
In what capacity is the FIX protocol used?
The FAST/FIX Protocol is used in pre-trade, trade and post-trade environments to process: Single/Gen Orders, Cross Orders, Multileg Orders, List/Basket Orders, Allocation, Settlement Instruct, Trade Capture Rpt, Registration Instruct, Positions Maint, Collateral Mgmt
FAST/FIX can be integrated into data feed for: Indication, Event Comm, Quotation, Market Data, Sec & Trad Sess_Def, Collective Investments, Derivatives, Equities, Fixed Income, Foreign Exchange.
In what regions or countries are FIX being used?
FIX is the main data feed decoder/encoder used in exchanges around the world, including Asia, Canada, Europe, Latin America, Pacific Rim and the United States.
What is FAST?
FAST (an acronym for FIX Adapted for Streaming) is a binary compression algorithm optimised for real-time distribution of high-volume market data. FAST is an updated development by FIX for higher and quicker data speed for financial decoding and encoding.
One of the key features of FAST is the ability to avoid sending data that has been sent before.
The major advantage of FAST is reduced bandwidth requirements and reduced latency, but they are achieved at the expense of increased processing time/load of the FAST decoder.
FAST does not define any requirements to the business structure of the messages; it only addresses the data representation. Therefore FAST can be used to compact not only FIX messages, but also non-FIX proprietary messages structures.
The FAST Protocol assumes that the structures of the transferred messages as well as encoding rules are agreed between the counterparties. This is usually done via the exchange of machine readable XML-based FAST templates.
Example template from CME.
How does it compare with Fix Fast in Java, C#, C++, QuickFix decoders/encoders?
The problem with these programming languages is the delay process from search to results. For a trading station, or banking platforms for example, a fraction of a delay can cause millions of dollars in losses in high speed market fluctuations. Therefore, this delay should be minimal. I have solved this issue by writing it in a code that can process market data feed within nanoseconds.
With over thirty years of experience as a Wall Street senior software developer, I have a much faster Fix Fast decoder/encoder solution on the market that I believe is superior to ones developed in Java, C++, QuickFix or C#.
Writing a FAST Decoder.
Firstly the specifications, and each exchange has some differences in how they interpret the FAST specification. The ISE has the simplest documentation for the novice to start.
The software will when complete have to read the templates at start of day, and using that data process the messages. The templates are in xml.
The FAST messages are best transformed into objects rather than the verbose FIX data. Particularly when the data is a book feed.
FAST Development history.
The first FAST feed was used for the OPRA feed. The main difference from the FAST feeds in use today is that the OPRA feed had no templates. The introduction of the templates allowed the feed to be changed intra-day without too much trouble. Changing feed formats previously was rare and painful.
Many of the low level routines used by an OPRA feed handler are useable for a FAST decoder.
Some routines can now be found in fastapi-1.0 downloadable from the CME.web site and contains some examples for Arca.
Who owns the copyright for the code?
As a private developer, I own the full rights for the code I have developed. Buyers who purchase my Fix/Fast decoder/encoder are buying the licensing to use it for singular project use. If you have multiple projects/programs requiring high-speed data feed let us know and we can discuss a multi-license permission.
Why purchase the code rather than develop our own?
Main reasons are to save yourself time, a lot of money, and to acquire a high quality engine for fix messages integrated with your existing financial platform.
Writing a basic high quality, superfast engine to encode/decode fix/fast messages is extremely complex, difficult and time consuming. Not all developers are able to do the task. Most Fix Fast codes are written in Java, C++, QuickFix but these programming languages are actually too slow to grab market data fast enough allowing room for data delays. This delay in data feed can cause millions of dollars in losses for investment funds, banks, hedge funds, etc., who rely on quickest possible data feeds for stock and options trading.
Saving time, money and delays
In developing this code I had to rely on my own input plus a team of three senior developers and many months of work. Buying the Fix/Fast engine written in C not only makes the code more superior to other programming languages but it can save financial institutions at least $500,000 in costs, salaries and months of time to write an engine from scratch – or wasted time using engines that are simply too slow for instant data feeds.
Who benefit from buying this product?
This Fix/Fast product is excellent and of vital value to major banks, trading floors, hedge funds, stock exchanges, private traders, hedge funds, investment companies, etc.
Do you provide support or integration?
The code is sold as-is and no support is provided. Since in-house programming teams tend to work on highly personalized and confidential projects they would implement the integration of the engine to match the specifics of the program.
Buying working source code
Whether one has started, has working code with problems or just needs to look and see how a working program was built it is sometimes advisable to start by purchasing code and then interfacing that to one own trading environment.
For this individual or company I am selling a working C version. The code reads the xml templates using Expat. It reads data from supplied files and generates output for testing and evaluation. It generates the same output as OPENFast which is written in Java.