Language for automated trading system

Discussion in 'Automated Trading' started by mahdiquant, Sep 30, 2011.

  1. jprad

    jprad

    Concurrent programming is not a panacea, in fact, it's damned hard to get completely right.

    The trouble isn't with the code or the language, it's the data.

    There are plenty of examples of spectacular, even deadly, failures in concurrent systems due to race conditions, deadlocks or lack of proper synchronization.
     
    #21     Oct 9, 2011
  2. It's not really the data, it's the trading PLATFORM and the features it supports.
    The language is irrelevant. Anyone attempting to build their own trading platform is really undertaking a monumental project IMHO. Even having the IB API is just a starting point.
    There is no doubt that multithreading becomes critical when dealing with more than a handful of symbols in real time.
    So I laugh when traders are attempting to use Excel or Access for realtime trading when in fact they are single threaded.
     
    #22     Oct 9, 2011
  3. I think parallelism concerns both code and data. A careful separation of immutable facts and mutable states can usually help in avoiding some pitfalls.

    Note that the imperative or object-oriented style of programming has a lot to do with state changes and it is challenging to have safe concurrent code after a few iterations of development. In particular, one must consciously and consistently use thread-safe constructs like synchronization and atomic objects in Java.

    It is arguably better to use a coding style that allows one to focus on the task at hand and defer concurrency control to a few places. Can you really trust all programmers of a project to be careful about concurrency? I don't. :)
     
    #23     Oct 9, 2011
  4. And that's the key: ALL
    One programmer alone cannot create a robust trading platform IMHO.
    You've got:
    1) trade/position management
    2) order entry
    3) data feed interface
    4) backtesting
    5) trade statistics

    I mean WOW, when Tradestation went from TS4 to TS2000i....all done in C++, it was over a million lines of code.
    Then they discovered that after THREE service pack fixes, there were still a ton of bugs remaining.
    They brought in a consultant who gave them an estimate to fix, and the rest is history: ts2000i was a gone-er.
    They had to give up on the platform...and move to a "new" one to garnish new revenue. Otherwise, ts2000i was a loser...from a P&L perspective.
    Ah, the risks of being in the software business.
    Still, you've got to hand it to the Cruz brothers....they were good businessmen and knew how to play a bad hand.
     
    #24     Oct 9, 2011
  5. You are quite right. One programmer cannot do it all. One must therefore

    0. Understand your niche and workaround your weaknesses
    1. find acceptable shortcuts
    2. have a plan to evolve and grow the code base
    3. rewrite software as needed

    Many a time an old code base is nothing but a sunk cost. Many organizations do not want to "waste" their software investments so they keep throwing good money after bad.

    Software sounds like trading. Doesn't it?
     
    #25     Oct 9, 2011