Language for automated trading system

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

  1. Hello.

    I need you advice for selecting an appropriate programming language for my project.

    I am going to develop a software for automated trading system authoring/backtest and forward test. I need to display some UI controls in addition to trading system execution and evaluation.

    What language do you propose for such a project? C#, C++ or Java?

    Please explain your choice according to various factors that are required for this software.
  2. januson


    How many executions per hour do you intend the system should be able to provide?

    How many ticks do you imagine the system should be able to handle?

    How many instruments do you imagine the system should be able to handle?
  3. There is no doubt: SCALA is the language! I am blown away by it. If you know C and Java it will take you just a few days to learn SCALA.

  4. c++
  5. I am not looking for a HFT algo but of course I need a high performance software that can process a lot of data (5-10 instruments each with ~200 ticker per minute).

    One important aspect for me is ability to develop and redeploy the solution on another OS (Windows <-> Linux) with ZERO pain (Both for logic and user interface).
  6. [​IMG]

    You may have special requirements, or just love writing and testing code, etc., but there are plenty of systems already out there...
  7. GPUalgo


    If you want it to have a consistent UI then QT over the top of C++ would be a good choice as that will run both on windows and linux. Obviously you have to make the underlying C++ platform independent too (ie. networking, DB connectors etc)
  8. Really helpful answers can only be given if your priorities are known.

    Anyway I can tell you what mine are/were:

    First priority is time: Make the system operational as fast as possible.
    You don't want to make money 1/2 year or 4 years later than possible.

    -> 1. Use a language that allows maximum development speed
    -> 2. A language is needed that has a maximum number of active users where you can get help if some true problems are arising (which always will) and many functional samples available online.
    -> 3. The language should be as simple as possible. Debugging is crucial: The language should in its definition already help avoiding coding mistakes. Then there should be a good IDE that supports efficient debugging. Fast compilation times (few seconds) to allow rapid cycling.

    In my view still the best solution:
    Visual Basic 6 (yes, I know it seems outdated).
    It allows extremely fast development, has so many active users and vast amount of code online available for free.

    If it has to be a "modern" language C# would certainly be ok.
    That's also what most people in the industry seem to use.

    C++ is overkill, also language definition too free: C++ compilers don't prevent you from making coding errors that in other languages are impossible due to definition. That leads to costly debugging.

    Exotic languages have a too small user base (see point 2. above).

    Sorry, can't see why OS independence should be a priority.

    No problem with any of the current languages and processors.
    You can process much more data.
  9. Eight


    There is a programming forum..........
  10. Thanks for your answer. I am developing my solution in windows but I plan to scale up the production environment in future to use distributed/clustering processing power. In this case I think Linux distros will have much less cost.
    #10     Oct 1, 2011