Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
What language to use for Algo / Automated Low Latency Strat
I quickly searched through some recommended threads related to my question, but couldn't seem to find answers that applied to me.
I am looking for educated/experienced answers regarding which language to focus primarily on in regards to algorithmic/automated strategy programming. The strategy will focus primarily on equities, also, the strategy will be extremely low latency / co-located.
From what I have read so far, it seems like C++ is mostly used by the low latency trading world.
I have an intermediate background as far as programming/coding, so I am not a complete novice with zero knowledge. I would like to choose my direction for focus as soon as possible.
Thanks everyone
Can you help answer these questions from other members on NexusFi?
Thanks for the advice. Most of my coding was learned through Java, but my research continues to point to C/C++. The move from Java --> C++ shouldn't be too bad.
Although C++ may look like Java (or vice versa), they are quite different, especially in terms of how C++ handles objects and memory management. As one of my CompSci professors explained, there's a lot in Java that helps to keep bad programmers from blowing themselves up. C++ doesn't offer such benefits, but it is also very fast.
Step #1 for a Java programmer looking to learn C++ should be "Don't use the 'New' keyword unless that is specifically what you want!" I have gotten into so many problems with that!
It should also be noted that, as an alternative to C++, Microsoft recently announced that C# will be compilable to machine language (no use of intermediate bytecode), so in terms of speed, it should be much closer to C++. I think it would be a lot easier to migrate from Java to C# then it would be to C++.
As others have mentioned, figure out what it is you want to do first, and then identify the best tools to do that.
Good luck!
Yes I see that C++ doesn't have much protecting the programmer from exploding.
I have been researching the C# but continue hearing that C++ is dominant. Fortunately, I am a fast learner when it comes to things like this, so I have faith in myself moving to C++ and will enjoy to challenge.
We used to say 'C' was an axe, but C++ was a chainsaw. Unless you want HFT type execution performance or massive backtesting runs then I don't think you have much to worry about by using C#.
I have two main factors:
C++) Fugly.
C#) Lovely.
40yrs of using and watching umpteen language fads. End of.
Agree, plus well written code in C# is likely faster than poorly written code in C++. So based on your (in)abilities, C# will often win out.
That said, as you can see from my custom platform thread, I really like R but at the same time it can be painfully slow with extremely large datasets. That is why I run it on a server with 128GB of memory, but still it is slow when dealing with billions of rows.
It's good to get experienced advice thank you! You make a good point, yet, what you said brings up another unmentioned perspective. C# may be easier now, or java, but would serve to be a bottleneck for future expansion. Assuming C# isn't 50X easier than C++, maybe focusing on C++ would be more advantageous for ones future due to not bottle necking a strategy.