How to learn specifically C++ for high frequency trading ?

Hi guys,

I have been programming for a few decades now, but also trading currencies, stocks and futures, using intensively technical analysis algorithms.

I made the mistake a few years ago to take the HTML /CSS / JAVASCRIPT / PHP / MySQL road and program Internet sites from scratch, cookies, etc... BO-RING to death and new CMS pop out every day, pushing me swiftly out of the labor market.

Getting old now (47 !), I would like to secure the future by closing the loop and learn C++ specifically for high frequency trading ...

Would you please give me advice about where I should start, about specific programming techniques within C++ I should focus on ?

Thank you very much
To answer your questions you'll want to focus on Sockets, RSS feeds (double check that one), system security (IMHO either sand boxing or a ROM OS for something like this), encryption and authentication and the protocols specific to the exchange your choose.

If you don't mind I had some questions of my own.

What makes you think that there is any money what so ever in HFT? This is a market manipulation tool, not an investment strategy. And to play that game you would need to have billions in the bank to begin with. People seem to have the impression that this is the technological evolution of short running a stock but it isn't. This is a technique used to rapidly respond to buying\selling trends with a large volume of transactions to shift the market in whatever direction would make the most money for the operator.

Also, I don't know what country you're in but here in the US net neutrality is back on the chopping block. If that dies and you can't secure a connection to an exchange that pays whatever premium price to your service provider then the latency might make this functionally impossible. That may just be me being paranoid but it's something you should consider.
Last edited on
Thank you VERY MUCH computergeek, your input is highly appreciated. It seems that you are already quite experienced in that market.

I actually enjoy playing the middle man, sort of interfacing between traders minds and IT programmers minds. To do a god job, I must be good technically on both domains. I already now the trading side and the algorithm world quite well, I don't know s..t about C++ so I am forcing myself into it :-)

That is what I did already for very largest corporations in Switzerland (not in HFT though), so yes, that is not my pocket money, and yes, we are talking about large trade amounts.
A simple reason is you do not want your broker to be the only one doing money so indeed you need big bucks, negociate spreads and own a seat on the futures exchange for instance.
Last edited on
@Computergeek01 I think OP means working as a C++ programmer, not starting a new firm

@philgib Define "secure the future"?

Anyway, you can start by looking at a few recent HF job ads to see what they are interested in

For example, I'll pick two at random

Sample #1.
Required Skills:
Bachelors or Masters in Computer Science or related field

10+ years of hands on experience in all aspects of enterprise level C++ application development and management

expertise in low level development and technologies (kernel tuning/bypass, cpu pinning, hardware optimizations, network transport protocols including TCP and UDP)

application performance profiling and tuning tool kits (VTune, Valgrind, PGO, etc), and various physical architectures

x86 based systems

Sample #2.
Requirements:
C/C++ developer with 3+ years of experience developing low latency real time trading systems (Unix/Linux environment)

Familiar with Execution Algos and understanding of CLOB trading and Exchange Protocols (FIX, ITCH/OUCH etc…)

Experience designing multi-threaded applications

Expert knowledge of networks and operating systems

Strong analytical and problem solving skills

Experience with FPGA and/or VHDL programming/design is a plus, but not required
@ Cubbi: It looks like you're right. For some reason I got it in my head that OP was asking about setting up a platform for direct market trades from his home or something.
@Cubbi,

Thx. You know, developer insight is one world and ads is another one ;-)

If I want a payrise I will make sure the job ad asks for so much no one will ever answer ;-) That's why I am asking for a fair opinion here.

By "secure the future", it is all relative (IT...) compare to the Internet.

I mean C++ has been around for almost 30 years right ? If many banks programs are in C++ and banks'IT budget as we all know is getting lower and lower than chances are banks will stick to evoluting C++ for the next 20 years.

God only knows what softwares will be used for Internet in 5 years.
Last edited on
Those were headhunter ads, not website ads. If anything, they massively understate the requirements.

My personal opinion is that it would be hard to compete with all the people that did spend the last 10+ years in the trenches, but if you're serious about it, all those things listed in the ads must become trivial knowledge for you.

Keep in mind there are tons of jobs in finance outside HF space.

Didn't see the edit.. no, you won't "secure the future" in that sense in HFT. Even 5 year old C++ and related tech knowledge is obsolete. Also, what do banks have to do with it?
Last edited on
I never see myself competing with others but rather make myself useful in some places where there is space to fill :-)

For some people who would have about the same questions about C++ for quants, I found some excellent reading here :
http://www.quantstart.com/articles/A-Day-in-the-Life-of-a-Quantitative-Developer

Cheers
Last edited on
Topic archived. No new replies allowed.