FIX vs. ActiveX

Discussion in 'Automated Trading' started by pjbreen, Aug 26, 2005.

  1. pjbreen

    pjbreen

    I've been working on an ATS and finally have a beta version that can do some live trading, but I'm having a problem.

    To start- I'm not much of a programmer. Someone else is helping me out with the guts of the code, but he is not a trader. So both of us are somewhat in new territory here.

    It's currently written in C++.net to the Redi+ ActiveX API. Everything is functioning properly, but the computer starts to get bogged down when it tries to send / update more than about 1 order per 1-2 seconds. Each order sent spikes CPU usage up to 100% and a series of orders will keep the CPU at 100% making the rest of the application unresponsive for a few seconds.

    For anyone with this type of experience- does this sound typical of sending orders via ActiveX or does it sound like we've done something incorrectly?
    If typical- will switching over to a FIX interface greatly improve things? What type of performance gain could we expect by going FIX?

    And am I correct in my understanding that FIX is only for order management and data will still be ActiveX?

    I've lookad at www.quickfixengine.org
    Doesn't seem too bad- anybody used them?

    And last- I've heard most brokers will want to test / certify your app if using FIX. Is this a complicated process?

    Thanks,
    PJ.
     
  2. newbunch

    newbunch

    Why not go with IB and use their Excel DDE spreadsheet? Last week, I entered 7 simultaneous trades in 4 different accounts with no problem.
     
  3. Right, fix is usually for orders only.. it CAN handle data, but nearly no one supports that because the protocol is so bloated and slow.

    I've used quickfix for a bit.. never in production and I found it to be pretty annoying how the sessions and reconnect/sync logic works. I think there might have been some recent work in this area.

    My suggesstion is to find a broker which offers a c++, java or .net api and dump all this activex stuff.

    --Stephen

     
  4. Terrible confusion!

    FIX and Activex don't have anything in common. It's like a canary and a cow.
     
  5. Yosemite

    Yosemite

    I don't want to argue about things which I don't know....but Activex is the naturla evolution of DDE under the Xp enviroment...

    And this is mainly for the Cpu overload DDE was causing....
    Above the guy stated he had 100% load with Activex...

    I never treid IB dde, but honestly I don't see that as a good idea...
     
  6. newbunch

    newbunch

    I can't speak for everybody, but I have no load problem with DDE.
     
  7. pjbreen

    pjbreen

    OK. Thanks for the replies so far-

    A C++ API would be great, but I'm sticking with Redi+ for now.

    From the Redi website, this is what they offer:


    We offer a range of products and services which facilitate seamless, effective integration of your trading system with RediPlus.

    Financial Information eXchange (FIX) - Our support of the FIX interface allows order submission, order management, and retrieval of execution information. We utilize an industry standard implementation of the FIX protocol, for which more information can be accessed at www.FIXProtocol.org.
    Our FIX servers currently run in either 4.0 or 4.1 mode. These modes also support FIX tags that have been defined in later versions of FIX in terms of options, futures, exchange specific order types, and corresponding functionalities. We are certified with every major Order Management Systems and support all key Network Service Providers.

    Additional functionalities with FIX include access to most major US and European exchanges, smart order routing and broker-to-broker solutions. We also have access to booth routing and the integration of all major Order Management Systems into RediPlus.



    API - APIs are offered through RediPlus that allow the integration of your application into our platform and allow the retrieval of market information, order submission, order management, and retrieval of execution information. We support two distinct types of interfaces: DDE links and Active-X controls.

    1. DDE links allow you to link your application, typically Excel, to RediPlus to receive live data. The DDE links support both market data and execution reports.
    2. Active-X controls are a set of objects that expose selected functionality of the RediPlus client application. These functions include order entry, limited L1 market data and execution information.


    So those are my choices.

    I'm moving from DDE / Excel, so I'm well aware of what they can do. I'm trying to improve perfomance over what they were able to achieve.

    nononsense- take it easy on me. I stated in the first post that I'm not much of a programmer. I'm trying to learn. I may not have all the lingo down, but I'm pretty sure both FIX protocol and the activeX controls can submit and manage orders. Neither a canary nor a cow can do that.

    So....
    Back to my original questions-

    Do the load problems sound typical of using activeX controls to submit orders up to the rate of one every few seconds, or does it sound like I've done something wrong?

    And- for anyone who has successfully implemented FIX order submission, will I be able to achieve a greater throughput of orders and reduce load problems by going that route?

    Thanks again.
     
  8. TGregg

    TGregg

    I don't know anything about FIX, but ActiveX shouldn't be a cycle hog, unless the code is poorly written (in which case, surely the user base would have complained).
     
  9. Hi pjbreen,

    I have been short but accurate in my answer. This is what you need if you ask for help.

    I believe you have to read up a bit more on both FIX and Activex so that you start to appreciate my point. Not doing so condemns you to keep stumbling along in utter darkness.

    nononsense
     
  10. pjbreen

    pjbreen

    They say it's darkest just before dawn...

    The sun may rise on me yet so that I can join the ranks of the illuminati.
     
    #10     Aug 26, 2005