FIX protocol in python

Hello everyone,
it is nice to be part of this community!
I am looking for some documentation and support to implement FIX requests in python.

We have a Python API and we want to connect to a third-party FIX protocol and implement basic FIX requests.

I was wondering if anyone can helps is with this!
Best,

Marco

Hi Oren Miller put together a Python implementation of Quickfix - it is available via pip. I have been struggling to get it running with local compiler options (this is likely all operator error).

Quickfix has a lot of known bugs and doesn’t seem to be maintained anymore.

Are there any alternatives to Quickfix?

I mean, if Quickfix has a lot of bugs, do we have to “re-write” the API using another language?

There are many versions of QuickFIX:

  • QuickFIX C++
  • QuickFIX Python
  • QuickFIX Ruby
  • QuickFIX Java (QuickFIXJ)
  • QuickFIX .NET (QuickFIX/N)
  • QuickFIX Go (QuickFIX/Go)

All code has bugs, the question is whether they inhibit actual usage. I know of plenty of places using the Java and .NET libraries and I would guess the C++ version is probably more heavily used. While there are outstanding issues the evidence suggests they are annoyances rather than showstoppers.

If the Python library has known critical bugs, many of them have probably been fixed in the other language versions and the change probably is merely a question of porting it in an appropriate fashion.

The FIX protocol is already quite complex to handle in a practical real world sense - re-writing the library will likely mean re-solving the issues QF has already mainly fixed. I’m skeptical this is a valuable endeavor.

Thanks everyone for you replies.
@philipwhiuk our API is written in python.

According to your knowledge, can we use QuickFix C++ to implement basic FIX requests although our API is written in Python?

I know it’s possible to call C++ from Python. I doubt the library is written with that in mind. Personally I mostly use the Java version so I don’t have that much familiarity with the C++ API. In general cross-language calls produces very ugly code that’s hard to debug so personally I’d start with the Python API and see if you can get that to do what you need without too much effort.

@philipwhiuk at this point we have the possibility to change the language of our API, however, we are not sure at this point if it’s better to change to another language or try the Python version of Quickfix. We will have to make a decision in these days.

@philipwhiuk hopefully Python will work out otherwise we will have to change to another language.
Is this forum the best place where we can get support in case of bugs? Or would you recommend us another website?

There’s a QuickFIX developer list on SourceForge. Details about the different libraries are here: http://www.quickfixengine.org/

The Java, .NET and Go projects have active separate websites with links to mailing lists and GitHubs from that page :smile:

1 Like

The python wrapper around quickfix/c++ is well-used by many in production, as are all versions of quickfix, and all versions of quickfix are still maintained. I would not say that any flavor of quickfix “has a lot of known bugs”.

4 Likes

To add on this, at least QuickFIX/J which is based on QuickFIX originally started by Oren Miller is used in a lot of productive environments, including some larger stock exchanges.
So I would consider the QuickFIX suite as a stable environment to use FIX.
I do not know whether the Python interface is just a wrapper around some other QuickFIX flavor or a pure Python implementation. But QuickFIX is a very good starting point for you, @openfinance00 and a great place to contribute if you find bugs or have improvements.
You are welcome!

Cheers, Jörg

1 Like

Hi Phiplip,
Its regarding help in FIX API (Java). Any help would be highly appreciated.
Thnx.

Here is the link for my queries.
http://forum.fixtrading.org/t/how-to-read-tag-448-which-appears-multiple-time-a-fix-file/15402

Thnx,
Waseem