Looking for experienced developers of FIX protocol

Discussion in 'Automated Trading' started by ppy93, May 9, 2022.

  1. 2rosy

    2rosy

    you dont need someone with fix experience. The person will use an existing fix engine (like quickfix); not write an engine. All they need to do is implement an interface that handles callbacks and send orders or requests. Even if you're not using fix you need to do the same thing
     
    #11     May 9, 2022
    qlai likes this.
  2. M.W.

    M.W.

    Yeah, good luck with that. It's incredibly tricky. Why do you think brokers, exchanges, and banks REQUIRE a full certification before they let anyone lose via FIX. I can tell from experience that connectivity to a new exchange at a bank I worked at took the IT team more than 2 weeks to get some basic order types done, tested, and certified. And I am speaking of a tier 1 bank with in-house IT team dedicated to our former prop group.

     
    #12     May 9, 2022
  3. ppy93

    ppy93

    This gentleman replied to my post on fixtrading.org. Based on what he did, he seems to be a good candidate to consult/work on my FIX coding project. I will report my experience once the project is done.

    https://uk.linkedin.com/in/ianrichardson3
     
    #13     May 9, 2022
    M.W. likes this.
  4. ppy93

    ppy93

    First email response from Ian. I will try working with him on a paid hourly basis.

    This is an overview of what I think you need to do :-
    • The fix protocol website contains the default FIX Specifications for fix4.2 etc.. which cover the session and application messages in more baseline detail to the CODA spec. There is also a beginners guide and other education info off https://www.fixtrading.org/beginners-resources/
    • You will need to get an understanding of FIX and the importance of specific messages and fields in order to complete the development and to support trading in the longer term.
    • I presume you dont have a FIX engine already. You either need to purchase one from a vendor or use QuickFIX open source libraries to support the use of the FIX protocol for electronic trading.
    • QuickFIX helps maintains the baseline tcpip "fix" connection to your broker/exchange counterparties (what we call the session layer which covers logon and heartbeats etc..), and support the validation and sending of trading application messages in a fix based format.
    • You need to write your own application code to make business decisions on when to trade and to process trade results. You will need a source of market data to feed your application as there are no market data messages covered in the CODA fix specs you provided. These only deal with the act of trading.
    • With QuickFIX and your own application code, you will essentially have 2 or more threads running to deal with incoming trade (35=8,9,3) and outgoing order messages (35=D,F,G) etc...
    • A QuickFIX data dictionary may need editing to support custom tag validation for incoming messages if needed.
    • Your application needs to make the decision when to buy/sell or cancel orders using the appropriate parameters in the Spec. You then call a QuickFIX api to Send the formed message to your counterparty. Responses are processed via QuickFIX application events and you will need to write code to process the Execution responses etc and process back to your OMS/Algo.
    • There are Java, C++ and Python QuickFIX libraries which can be downloaded. The Python is based off the C++ implementation. The Java and C++ implementations use different code bases and have slightly different configuration file settings and functionality.
    • The CODA document doesnt cover it directly (you will need to get more details from them in respect of connectivity), but to connect to CODA you will most likely need a VPN or SSL (aka TLS - Transport Layer Security which sits on top of TCP).
    • The baseline python quickfix install https://pypi.org/project/quickfix/ does not support SSL and you may need to use Stunnel (https://www.stunnel.org/) to add any SSL layer encryption
    • Alternatively https://pypi.org/project/quickfix-ssl/ provides a python install which includes ssl.
    • Standard QuickFIX (C++) configuration setting parameters and some coding samples for python are detailed off https://quickfixengine.org/c/documentation/
     
    #14     May 10, 2022
  5. M.W.

    M.W.

    That sounds about right. As you can see this is quite a bit of work to get right even for some very basic order types and with an existing fix engine.

     
    #15     May 10, 2022
  6. 2rosy

    2rosy

    tl;dr
    • get a FIX engine
    • implement its interface
    • apply your trading logic
    No matter what protocol, sdk, api used it's pretty much the same. Everything mentioned in your post about FIX doesnt apply to you and the engine handles or the paid developer will read docs and do.
     
    #16     May 10, 2022
  7. M.W.

    M.W.

    That is the assumption that this is a list of developer to-do. And it's not all the same that is absolutely not correct. For example, many brokers that allow communication via FIX require certain confirmation messages, heartbeat specs and the like. APIs already have that built in which are offered by brokers.

    My bet is that the hours this developer will work on getting this right will be many hours more than you suggest.

     
    #17     May 10, 2022
  8. I've recently used quickFIX C++/Python/C#/Java and had the best experience with the C# version, whereas the Python version had a bunch of issues that were annoying to debug, but yeah I agree they are all kind of messy. Hopefully OP's developer has a better time with it. Python is my favorite language in general, but when it comes to coding order execution I definitely prefer something that's compiled/typed to catch the obvious errors, as there is a lot that can go wrong.
     
    #18     May 10, 2022
    M.W. likes this.
  9. ppy93

    ppy93

    My trading bot is written in Python. Which language I should use for quickFIX?

    Can you be a bit more specific about the annoying issues you had with the Python version of quickFIX?
     
    #19     May 10, 2022
  10. C++ only. Do not use Python for production
     
    #20     May 20, 2022