Monday, January 24, 2011

Things to note down while writing your own FIX Engine on FIX protocol


This is in continuation of my FIX protocol tutorial, i am just sharing some of thoughts which are important to remember while writing FIX engine for FIX protocol , though there are couple of professional third party FIX engines are available you may need to write your own if your firm requires.
While writing your own FIX engine I would suggest paying attention to certain points which could save lots of time during maintenance phase


1) Decide up to which FIX version you are going to support e.g. FIX 4.0, 4.2, 4.4. As most of clients still use FIX 4.2 but supporting up to 4.4 would be good choice.

2) Think about support tools required to check status of various FIX sessions, changing sequence no etc. JMX would have been good choice if you were using Java but similar solution can be possible with other language.

3) Often you will be required to create new FIX session without bouncing your FIX engine to accommodate new clients; FIX engine must be capable to do that.

4) Different clients connect from different time zones, they have different requirement in terms of connection timing, EOD timing etc. these settings should be easy to configure and maintain.

5) Custom tags support; you may be required to support custom tag for your internal application or any other purpose. Program these things in a way that you need not have to make any code change or release to add another tag.


While these are just some of highlighter I would suggest looking some of the commercial FIX engine available in market e.g. Cameron FIX engine, NYFIX Appia to how they work.

Once again Flexibility, maintainability, easy to support are some of the feature which is essential for any FIX engine.

Related post:

FIX Protocol Tutorial 4: Repeating groups in FIX
FIX Protocol Tutorial 5: Replaying messages in FIX protocol
FIX Protocol tutorial 6: Difference between Session Level and Business message Reject
FIX Protocol Tutorial 7: Difference between FIX 4.2 vs FIX 4.4 
FIX Protocol Tutorial 8: Writing your own FIX Engine
FIX Protocol Tutorial 9: Common issues on financial information exchange (FIX) Connectivity

Do you like Books?
If you love to read books here are few Java titles which is worth of money :
Please vote +1 or consider sharing if your like this article

3 comments:

Anonymous said...

Thanks a lot dude. your article pointed some really important thing before I plan for writing my own FIX Engine. though is there any way that my FIX engine can support all FIX protocol version e.g FIX4.0 , FIX4.2, FIX4.4, FIX5.0 etc.

finance said...

I admire what you have done here. I like the part where you say you are doing this to give back but I would assume by all the comments that this is working for you as well.
Financial Planning

Raja Valiveti said...

Very useful information. Thanks for taking time for posting. Can you help clarifying few doubts I have -
(1) Why someone would like to write a new FIX engine when there are so many ready offerings (including opensource) available in the market? Is it cost?
(2) How much effort it can take for a good (I understand 'good' is subjective) developer to build a full featured FIX engine.

Thanks

Post a Comment

What is this blog about

This blog is about my experience in Java, Tibco Rendezvous and FIX protocol. FIX is a technology which is used to build equity trading system and heavily used in electronic trading , high frequency trading and Algorithmic trading, so on most of Investment bank job you need to know FIX Protocol on the other hand Tibco Rendezvous is used to implement messaging backbone on many big commercial and global banks. This blog help you to get clear any FIX protocol job interview. It also includes Java and Tibco Rendezvous article written for new user mainly my experience in my own word.