what is the best language that suits massive calculation on every tick?

Discussion in 'Automated Trading' started by mcgene4xpro, Jan 23, 2011.

  1. Hi,

    What do you think the most suitable retail trading platform program/language that could do massive calculations/send execution orders every tick..

    Do you think the one that support multicore/multithreading is the best?
    If i am doing 10 parallel massive calculation on every tick, does this require 10 cores?

    Not a programmer here but an ATS developer who tried to do this with MQL4 but failed to cope with this higher level of calculation.

    Please share your opinion

    Thanks
     
  2. Hi,

    I think it depends on your strategy logic and background calculations. For example OpenQuant can handle around 500.000 ticks per second on a moderate computer box if you run it with an empty strategy but slows down to 100.000-50.000 ticks per second if you start building bars from trades and simulate order execution with tick data (i.e. check hanging stop/limit orders on every tick). It will slow down to 30.000 per second if you introduce indicators and strategy logic. And indeed it can slow down to 1 tick per second if, for example, you start re-training a neural net on every tick :)

    Cheers,
    Anton
     
  3. nLepwa

    nLepwa

    What kind of operations?

    If you can perform it in parallel, the language isn't important. You need to distribute the work on as many machines as needed.

    You will need custom-made software to do that.

    Ninna
     
  4. Why should one use a "retail trading platform" to program the strategy.

    It's fairly easy to interface to a quote feed / broker API from a true programming language.

    Many advantages:
    - More speed
    - No memory problems
    - No problems with systems (platform) you cannot access
    - Reduced risk that your strategy will be stolen

    No big differences considering time efficiency between languages then.
    Choose the language that you find the easiest to get familiar with.
     
  5. Thank you All, very informative and beneficial..
     
  6. For someone who knows nothing about programming but willing to learn one. I think C++ would be the most suitable but i am afraid it might take huge time to learn to be able to use it for designing myself. However, i think Visual C # is more easier to learn. I am really want to learn a language but i dont want to find myself wasted my time and couldnot do what i wanted to do with.

    Any suggestion?
     
  7. Assembler, or that meaning C or limited C++. THis is pretty much the only thing you have to finetune the parallel execution set.

    That said, ithink it is useless - the OP probably misrepresents the facts. As in: what he thinks is massive is not for a modern computer, so going into assembler is not needed.
     
  8. nLepwa

    nLepwa

    Pay someone to do it.
    It takes years of practice to become a decent programmer, especially when dealing with complex broker API and parallelized tasks.

    Bugs in your code due to your inexperience will most likely cost you more than hiring a professional programmer.

    Ninna
     
  9. Yea, this is also considered but how i could be sure my intellectual property will be protected.

    :confused:
     
  10. I said massive because i am using my dual core laptop with an mql4 code and it is simply cannot do the calculation properly on time even the calculation wasnot yet complete.

    MQL4 code is done by a professional coder
     
    #10     Jan 23, 2011