Recommend a .NET API for Fix Protocol?

Discussion in 'Automated Trading' started by dmabe, Apr 30, 2009.

  1. dmabe

    dmabe

    Does anyone have a recommendation for a .NET API that can be used to create a FIX client application?
     
  2. CBuster

    CBuster

    if you need free, QuickFix is the way to go. I use Appia from NyFix - bit more money but I found it pretty usable right out the box, performance is excellent and support is decent too. Their product has served me pretty well. I code in c#.net FWIW.
     
  3. dmabe

    dmabe

    Thanks, cbuster. What's the pricing for NYFIX Appia? I couldn't find it anywhere on their site.
     
  4. CBuster

    CBuster

    for one production license u'll probably pay $1,000 / month. but go for a free trial too. i got a couple of months out of them.

    it's a proper institutional level product - many of the big banks use it.
     
  5. squeeze

    squeeze

    QuickFix works well but it has a C++ core that is compiled in 32-bits. Hence, will not work in 64-bit C# app.
    Also does not seem to be under development and has no support for fix5.0 or FAST

    There is also FIX4NET which is entirely written in C#
    http://sourceforge.net/projects/fix4net
     
  6. I'd say QuickFIX, if you can program in some .NET language.

    In terms of providers... it really depends on your budget and requirements....

    The first and obvious question would be whether you'll be using a dedicated line or an ISP internet connetion.
     
  7. A lot of the brokers, including the top institutions do not support FIX 5.0 or FAST for a regular account. It becomes a "catered" service.

    In another words, the broker would simply translate a F5 or FAST to F4.3/4, and send the orders to the exchange. Just because the FIX version is high, it doesn't mean you'll get a better performance over the previous versions. You need to have an on-site meeting with the IT department of the firm you're dealing with.

    All brokers and FIX providers have a set of gateways depending on the FIX version. The core issue is the FIX version the firm uses as their core infrastructure...

    Let's say you send an FIX 5.0 FIX order... and the liquidity provider like GS or MS uses FIX 4.3...

    The liquidity provider can tell the vendor that they accept algo orders using Tag xxx or some text in the comments. What the vendor will do is translate the F5 tags that is used of algo instruction and place it in the Tag xxx or comments. This takes some computing time and can cause some extra latency.

    So what you want is to understand how each liquidity provider and service providers deal with issues between different FIX versions and specific order types. A regular service desk or sales person won't understand a thing and just fake their way because they just don't know. So you need to talk to the IT people to get the best possible scenario for the service you require.

    These things only matter if you're dealing with real High Frick models and service. It really doesn't relate to the retail people... but it's still good to know once you reach it.

    I think NYFIX is good, as another person recommended, they had all the available F4.x provided to their customers. It's a matter of knowing the clearing firm like Goldman/MS or other's infrastructure and you're set. Though... they're downtime conflicted with the region I traded during the open, so I didn't use them.
     
  8. squeeze

    squeeze

    Most places don't seem to have got beyond fix4.2 at the moment, however, that is not really the issue. QuickFix does not seem to be under active development any more so is not being extended and does not support 64-bit. It's a perfectly good FIX engine and I have used it a lot but I am not sure how future proof it is unless you are prepared to spend the time developing it further yourself.
     
  9. Good thing, it's open source.
     
  10. RedRat

    RedRat

    I am using QuickFix.

    In MS Visual Studio settings try
    Application-> .NetFramework, for me it is .Net Framework 2.0

    then Build -> Platform target, setup x86 here (it was x64 by default)

    I am running my C# program at the 64 bit machine, no problem here.
     
    #10     May 4, 2009