Language for automated trading system

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

  1. a real programmer programs in any lang

    why is c++ overkill? that's just stupid
     
    #11     Oct 1, 2011
  2. jprad

    jprad

    Only an incompetent would recommend a non-portable, dead language over one that was just revved with what may be its most substantial revision yet.

    C++ is already one of the most popular multi-platform languages available, C++11 guarantees that it will remain that way for well into the future.
     
    #12     Oct 1, 2011
  3. People build fast mission critical trading solutions with all them. The choice isn't critical, unless you have a preference/affinity for one over the others, in which case what you're most comfortable with makes sense as the obvious choice.

    Now if we could get someone to recommend Clojure... :)
     
    #13     Oct 1, 2011
  4. schemer

    schemer

    Honestly, If you are asking which programming language to use, then you are probably not ready to write your own trading system.
     
    #14     Oct 1, 2011
  5. i'm a programmer and I see a programming language only as a tool, not the choice to make for guaranteed succes
     
    #15     Oct 2, 2011
  6. Well set - I second that.

    At the end most programming langauges can be used, and as long as it is turing complete and not special purpose this will succeed (and SQL would thus be at least awkward).

    Use what you know. if you have to ask about the most common languages, learn programming first ;)
     
    #16     Oct 2, 2011
  7. If your asking the question which language then you probably need to find someone to write this app for you.

    But saying that if you want portability, speed of development, consistent UI e.t.c then Java is the choice. Most of what you need is already out there for free i.e DBs, OR mapping, charting, inference engines, logging, stacks, Mques e.t.c .e.t.c So development is just piecing what you need architecturally together.

    For what you are doing and as long as you are an experienced programmer Java will give you the performance you require.

    If your 10 symbols are BAC, C, SPY, e.t.c i.e high tick volume then your bottle neck wont be your application it will be your data source and communication channels. I use eSignal and IB and see data delays all the time over a 20Mbit connection. i.e. first and last 5min of the day or on news items

    Over the last year you will have noticed the HFT guys over load the Mkt data centers with bid/ask that then get cancelled when ever there is a run on the mkt i.e news or just large orders. Sometimes they even go after low volume stocks and try to trigger technical stop levels. REITs a fav target of this activity.
     
    #17     Oct 2, 2011
  8. A good language in my book should have the following properties:

    1. Excellent readability
    2. Terse
    3. High performance

    I am looking into OCaml/F# right now. They are both object-functional languages.

    I have not found a easy way to hook OCaml into broker interfaces and/or data feeds. Mixing C++ and a semi-obscure language appears difficult.

    If someone has a stable OCaml/IB interface I love to hear about it.

    F# is very promising because it is very easy to integrate with .NET/C#/ActiveX.
     
    #18     Oct 8, 2011
  9. schemer

    schemer

    I agree that F# would be an excellent choice. In addition to your three properties, my language must have a good concurrency story. F# fits the bill if your target platform is .NET.

    If your target platform is the JVM, then Scala and Clojure are great choices in my opinion. Especially if you need to interface with the IB API. Clojure vastly simplifies multithreaded code because it was designed with concurrency in mind. In addition, Clojure easily interops with Java libraries.
     
    #19     Oct 9, 2011
  10. Oh Clojure. So many parentheses. :)

    You are right about concurrency support. Moore's Law has been struck down. Parallelism is the future.

    JVM still does not support tail-call optimization very well. But I guess it is a detail I can live without for now.

    How is Scala nowadays? Does it have good IDE/tools support yet?

    I have done Groovy (yet another JVM language) for a few years but I really hated it as a language. It does have closures though. But it is so slow (at least with the version I used) that you better believe hardware is free.
     
    #20     Oct 9, 2011