Greatest Programming Language for Trading Systems?
Currently, I’m working on Learning Machine’s submission for Max Dama’s QuantCup. That requires optimising a “price-time top priority limit order matching engine”. More simply, it means ‘making something which matches buy and sell orders placed really fast’. *
In accordance with the competition rules, I’m encoding our entry in the C programming language. But when it comes to our own system, I’m likely to write it in something different.
Why? I want a terminology which balances ease of development with speedy end results. Nevertheless compiled C is very quickly, it isn’t an object-oriented (‘OO’) language, which means is considered harder to represent the principles I’m coding about in such a way which seems natural to humans.
The four most favored OO languages out there happen to be C++, C#, Java and Python, and in them, I am quite happily able to put into action pretty much anything within the capacity of my intelligence (we’re screwed - ed). Thus which one did I decide on? Machine learning tecnologies
In accordance with the competition rules, I’m encoding our entry in the C programming language. But when it comes to our own system, I’m likely to write it in something different.
Why? I want a terminology which balances ease of development with speedy end results. Nevertheless compiled C is very quickly, it isn’t an object-oriented (‘OO’) language, which means is considered harder to represent the principles I’m coding about in such a way which seems natural to humans.
The four most favored OO languages out there happen to be C++, C#, Java and Python, and in them, I am quite happily able to put into action pretty much anything within the capacity of my intelligence (we’re screwed - ed). Thus which one did I decide on? Machine learning tecnologies
Python Straight off the bat, I knew Python was unsuitable. While the language make it simple to pump out code at a ridiculous pace, it is terrifically slow (unless you write a library in C - but then that’s C, certainly not Python). That particularly is true for large scale projects.
One more consideration was the OO syntax in the language: I just don’t like it. It’s always experienced tacked-on and feeble. Python is primarily a scripting language, I guess.
Having said that, Python is my language of choice for scraping data from the web and for simple version testing, so I may well return to it later for a distinct purpose.
Java
Java was another candidate that was quickly crossed off each of our list. Why? Because so far as I know, Java doesn’t let external functions to be called without piping a chain into a program(if I’m wrong about this, let us know via the responses below! ) [Turns out I was indeed incorrect, see http://java.sun.com/docs/books/jni/html/jniTOC.html]. Another concern is the existence of C#. Pretty much the same language, good results . a superset of Java’s features (i. e. will everything Java does, and more). And it has better handling of datetime type (important! ).
C++
On the four languages listed here, Im least comfortable in C++. I thus figured that Learning Machine would be a good way to extend my knowledge of chinese.
At first, C++ seemed ideal: solid OO implementation, an easy, compiled language, the ability to compose Assembly language and C straight into a program, and superb IDEs (I’m a fan of Vision Studio - university students can download it free through Microsoft’s DreamSpark program). C++ was so perfect, in reality that I started programming in it right away.
However , as soon as I got the basic class structure down pat, it hit me: the compiler. Spending thirty minutes debugging a simple mistake such as missing a type shed is not an efficient usage of my time, particularly when aiming to do university study together with programming for Learning Equipment.
C# (C Sharp)
Of the four languages considered, one particular was left: C#. An almost perfect language, it has all the advantages of C++ (bar the speed) and offers a huge regular library, with even more your local library available on the internet. It even enables you to call external functions, and use pointers - features which place it in a class above Java. Not only that, but Microsoft seem to focus their documentation heavily on the language and their IDE, which smooths the ride somewhat.
Have I missed anything? Must i have included OCaml? Goal C? Erlang? Let us know inside the comments! (I’m seriously considering writing some external functions in OCaml…)
* This kind of matching task would normally be done within the exchange by itself, but for speed reasons is considered also done within various high frequency trading firms for them to see the most up to date version with the order book and generate orders accordingly.
For details about university check out our web site: visit here
One more consideration was the OO syntax in the language: I just don’t like it. It’s always experienced tacked-on and feeble. Python is primarily a scripting language, I guess.
Having said that, Python is my language of choice for scraping data from the web and for simple version testing, so I may well return to it later for a distinct purpose.
Java
Java was another candidate that was quickly crossed off each of our list. Why? Because so far as I know, Java doesn’t let external functions to be called without piping a chain into a program(if I’m wrong about this, let us know via the responses below! ) [Turns out I was indeed incorrect, see http://java.sun.com/docs/books/jni/html/jniTOC.html]. Another concern is the existence of C#. Pretty much the same language, good results . a superset of Java’s features (i. e. will everything Java does, and more). And it has better handling of datetime type (important! ).
C++
On the four languages listed here, Im least comfortable in C++. I thus figured that Learning Machine would be a good way to extend my knowledge of chinese.
At first, C++ seemed ideal: solid OO implementation, an easy, compiled language, the ability to compose Assembly language and C straight into a program, and superb IDEs (I’m a fan of Vision Studio - university students can download it free through Microsoft’s DreamSpark program). C++ was so perfect, in reality that I started programming in it right away.
However , as soon as I got the basic class structure down pat, it hit me: the compiler. Spending thirty minutes debugging a simple mistake such as missing a type shed is not an efficient usage of my time, particularly when aiming to do university study together with programming for Learning Equipment.
C# (C Sharp)
Of the four languages considered, one particular was left: C#. An almost perfect language, it has all the advantages of C++ (bar the speed) and offers a huge regular library, with even more your local library available on the internet. It even enables you to call external functions, and use pointers - features which place it in a class above Java. Not only that, but Microsoft seem to focus their documentation heavily on the language and their IDE, which smooths the ride somewhat.
Have I missed anything? Must i have included OCaml? Goal C? Erlang? Let us know inside the comments! (I’m seriously considering writing some external functions in OCaml…)
* This kind of matching task would normally be done within the exchange by itself, but for speed reasons is considered also done within various high frequency trading firms for them to see the most up to date version with the order book and generate orders accordingly.
For details about university check out our web site: visit here