Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which programming language for compute-intensive trading portfolio simulation?

I am building a trading portfolio management system that is responsible for production, optimization, and simulation of non-high frequency trading portfolios (dealing with 1min or 3min bars of data, not tick data).

I plan on employing Amazon web services to take on the entire load of the application.

I have four choices that I am considering as language.

  1. Java
  2. C++
  3. C#
  4. Python

Here is the scope of the extremes of the project scope. This isn't how it will be, maybe ever, but it's within the scope of the requirements:

  • Weekly simulation of 10,000,000 trading systems.
  • (Each trading system is expected to have its own data mining methods, including feature selection algorithms which are extremely computationally-expensive. Imagine 500-5000 features using wrappers. These are not run often by any means, but it's still a consideration)
  • Real-time production of portfolio w/ 100,000 trading strategies
  • Taking in 1 min or 3 min data from every stock/futures market around the globe (approx 100,000)
  • Portfolio optimization of portfolios with up to 100,000 strategies. (rather intensive algorithm)

Speed is a concern, but I believe that Java can handle the load.

I just want to make sure that Java CAN handle the above requirements comfortably. I don't want to do the project in C++, but I will if it's required.

The reason C# is on there is because I thought it was a good alternative to Java, even though I don't like Windows at all and would prefer Java if all things are the same.

Python - I've read somethings on PyPy and pyscho that claim python can be optimized with JIT compiling to run at near C-like speeds... That's pretty much the only reason it is on this list, besides that fact that Python is a great language and would probably be the most enjoyable language to code in, which is not a factor at all for this project, but a perk.

To sum up:

  • real time production
  • weekly simulations of a large number of systems
  • weekly/monthly optimizations of portfolios
  • large numbers of connections to collect data from

There is no dealing with millisecond or even second based trades. The only consideration is if Java can possibly deal with this kind of load when spread out of a necessary amount of EC2 servers.

Thank you guys so much for your wisdom.

like image 922
Bijan Avatar asked Jun 13 '10 05:06

Bijan


People also ask

What programming language is good for simulations?

If you are looking for mathematical modeling and analysis, then Python and Matlab are good options. If you want to work with large data (CFD modelling), then C++ and Fortran are preferred languages.

What programming language is used for algorithmic trading?

For people who wish to thrive in the competitive market of quantitative trading programming expertise in Python, C++ or Java is a must. The core concepts behind using these programming languages for algorithmic trading are same.

What coding language is most used in finance?

Java. Java is the top-ranked programming language in finance, according to HackerRank, for reasons that mirror its general cross-industry popularity. The language has a friendly learning curve, can handle significant amounts of data, and boasts rigid security features.

What programming language do high frequency traders use?

At present, C++ is still the preferred programming language for high-capacity, high-frequency trading. The reason is simple.


1 Answers

Pick the language you are most familiar with. If you know them all equally and speed is a real concern, pick C.

like image 190
Bryan Oakley Avatar answered Nov 14 '22 22:11

Bryan Oakley