Language for automated trading system

Quote from uexkuell:

In my view still the best solution:
Visual Basic 6 (yes, I know it seems outdated).

...

C++ is overkill, also language definition too free

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.
 
Quote from mahdiquant:

C#, C++ or Java?

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... :)
 
Quote from mahdiquant:

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.
Honestly, If you are asking which programming language to use, then you are probably not ready to write your own trading system.
 
Quote from schemer:

Honestly, If you are asking which programming language to use, then you are probably not ready to write your own trading system.

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 ;)
 
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.
 
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.
 
Quote from leveragize:

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.
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.
 
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.
 
Back
Top