• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Quantitative Developer to HF trading

Joined
1/12/11
Messages
3
Points
11
hi,

i am currently studying engineering at Oxford and my aim in the future is to work in high-frequency trading or algo trading. i managed to secure a grad job with a major investment bank and my role, as stated in my contract, is "Quantitative Developer". my question is this: how difficult would it be for me to move to the two areas that i mentioned above? i don't intend on doing a PhD.

thanks in advance for your help.
 
Depends where you are, but generally it's pretty hard.

A lot depends on what sort of engineering you are studying, but based upon what you say, I'd say that there was a 10-15% chance of you getting a decent role in algorithmic trading after the QD job.
 
thank you for your reply, dominic. at the end of my studies i should have a master's in Engineering Science, specialising in information engineering. the bank that i am completing the QD job with is one of Goldman Sachs, Morgan Stanley and JP Morgan (i don't wish to disclose the specific institution for privacy reasons). do you think that this can stretch my chances to about 20 - 25?

again, thank you for your help.
 
When GS describe what they look for in an algotrader they specify more education, more applicable maths and C++ than you have.

You're a British CompSci grad, you don't know C++
Please don't tell me how good Java is, I may vomit.

MS seem to be splitting off their prop trading bit, so if you're in the wrong part (the most likely case since prop is smaller, your chances are very low). AT is less of a focus for them than other large firms, don't know why they've never told me.

@ JPM your odds are better since their algotrading is more IT-style technical, but not much because as above you have a UK CS degree. Have you done FPGAs, GPUs, or C++ ? Threads ? Did the nasty man tell you that your Apple had an operating system in it ? Did you try to hack it ? Why not ?

I'm actually quite serious in that last part.
Good ATs are people who do stuff to computers, and regard things that stop them as bugs/interesting puzzles, not rules.

Although there is a decent number of people with just first degrees working in algotrading, the supply/demand is horrible there. I know you've done supply & demand because a depressing % of the Oxford "engineering" degree is often economics.

Sadly algotrading has little to do with classical economics, which pretty much says it can't work, or indeed mainstream quant finance. Which is why a large % of what you'd learn as a quant developer won't help you too much in algotrading.

Since you seem to think I care what large firm you're at, you've spread yourself so I have no better information to recalibrate my numbers. They are different at each bank, but the thing about an average is that it is an information destroying function. Have you done hashes ? It's one of them.

Anyway, it's the wrong question.
The right questions are:

1: Can I be to be an algotrader ?
2: How do I increase the odds ?

The current odds themselves are irrelevant because they don't affect your decisions.

Yes, you can be an algotrader.

But you will need to learn stuff.
First you need to learn how to program, since I'd be actually be quite surprised if you could. Then C++, which will be hard, a) because it's hard, b) because your lecturers have avoided 'hard' so it will come as a shock for you.

Then you need to understand probability from Bayes to Taleb, and Shannon, please tell me you know Shannon's stuff ?

In theory it is possible that you've done DSP, or at least seen it done, that has considerable value. If as an engineer you don't know what DSP stands for, then I negate my assertion you can do AT.
Even if you've done it, you haven't done enough.

Then you need to learn some time series analysis /econometrics.
You won't enjoy that.

Some of those things might be part of your work as a QD, or it might not. Hence my blunt refusal to extend my 10-15% range.

What won't be part of most QD jobs is trying to work out how to turn maths into money. There are plenty of financial time series to be found on the web, there's a link to some here on quantnet.

Try to work out how to make money from them.
You will fail.
The journey is the reward.

You will learn that forecasting will never give a 100% confidence, and that Kelly critierion is useful, but that it will also kill you.

You will notice that bid/offer spreads can destroy most trading ideas, and that if you apply enough curve fitting techniques, all data sets look predictable. One guy showed me quite genuinely an FX forecasting strategy that arctan() in it.

You will also get some idea about real world risk.

Also market microstructure can be useful, and so will something else.

No, I don't know what it is.

AT is a creative process. Michaelangelo was an expert not only in the physical characteristics of marble, but could explain in some detail how it should be taken from the ground, and which quarries might give the stuff you wanted for a given purpose.
Although necessary, that didn't make him a great sculptor.

He had ideas.

You need to have some of them.
If during this process you never waste time trying some essentially mad off beat techniques, just to see what it does, then you just ain't the right sort of person for this work.
 
Good ATs are people who do stuff to computers, and regard things that stop them as bugs/interesting puzzles, not rules.
Just as an aside, remember the converse: that bugs are always features ;)

Also, DominiConnor do U.K grads really not know any C++? And no multithreading? Because I learned that in a high school class... so.... :s
 
You're a British CompSci grad, you don't know C++

i wouldn't classify myself as a CompSci grad -- the "information" part of my degree is geared more towards signal analysis and control theory than programming. the only computer "science" i have done is very low-level as part of my electronic engineering course.

Good ATs are people who do stuff to computers, and regard things that stop them as bugs/interesting puzzles, not rules.
you have basically described my motivation for quant roles, so i will be happy about this part of your post. i will have more fun fixing a broken computer than playing on a games console any day.


Since you seem to think I care what large firm you're at, you've spread yourself so I have no better information to recalibrate my numbers.

i thought that mentioning the size of the firm would be a good way for you to assess the different opportunities available to me and advise me on which paths i should look to head on to.


First you need to learn how to program, since I'd be actually be quite surprised if you could.

i don't know what qualifies for being able to program, but i have never failed to get an idea that i have into a working piece of code (whether it is a game, software or an optimisation challenge) , even in C++ (it just takes a hell of a lot longer, and so i usually avoid it). i understand that what i write is not the most efficient piece of code, but it does what i want it to at this stage, and although i try to be as efficient as possible, i believe that this sort of thing will become easier with experience, which i do not have.

Then you need to understand probability from Bayes to Taleb, and Shannon, please tell me you know Shannon's stuff ?

yes, i am familiar with everything that you have mentioned above (although i get the sense that "familiar" means something else to you than it does to me).


Try to work out how to make money from them.
You will fail.
The journey is the reward.

this made me smile. last summer i become obsessed with FX trading (paper money, nothing real). i spent a good couple of months trying to automate and combine trading strategies found on the web to get a positive equity curve (the software i used was called MetaTrader). you are right; i failed. the journey, however, WAS rewarding. i remember digging knowledge from my signal processing course and attempting to do something with it. i did not know that this kind of thing was encouraged (automated paper trading systems)-- i thought it would get me laughed at.

anyway, thanks for your help again and i really do appreciate your bluntness.
 
A friend of mine works on a high freq desk of one of the largest I banks. From what he has told me, the most ideal person they look for when it comes to high freq trading, is an expert level programmer along with someone who understands trading very well. So basically the best quant developer and the best trader all in one. But, unfortunately they can rarely find such people so on the desk they usually have an expert programmer (quant developer) and an expert strategist (prototype/strategy builder) and support.
 
euroazn, I recently wrote in the Register about the failings of UK CS degrees. However I was incorrect that only one UK college does C++ at undergrad level.
It's two...
A useful % have done threads, but only in Java. Java threads are easier to drive than in C++, which is both good and bad. Java is taught because it is easy. My scorn for that is unbounded.

DD, signal analysis is useful. Much finance assumes that price time series are wholly random, the fact that this mostly works should tell you how noisy the signal is.

It seems that I incorrectly labelled you as a CS grad, I have high standards
for them, which most fail.

You seem to have at least the basics of programming. Some people, even some very bright ones, just don't have the right mindset. Coding is indeed a form of expression, some people are good, most can be made better.

"familiar"
How do I define that ?
Good question. You can't know too much probability, and most applicants don't know enough.
Since it is a minor parrt of most people's education (and a really tiny part of mine), this is both something you need to get better at, and also you can more easily get better than the people you compete with. Part of that is PDFs et al, but a couple of weeks doing nothing but discrete probability brainteasers can help a lot.

Seems like you have the right attitude, especially the bit about trying to coerce your existing skills to see if they work.

I'm glad you take my bluntness the right way.
The goal you seek is within your reach, but not yet your grasp.

What sort of QD do they want you to be ?
 
So, for the sake of argument, let's prepare someone who is not a UK CS grad for a career as a HFT Quant developer, trader, or doing something relevant in that space.

Let's say that person is still early in his undergrad study and planning his study, skills to pick up.

What is the road map for him? This would be more interesting to hear.
 
So, for the sake of argument, let's prepare someone who is not a UK CS grad for a career as a HFT Quant developer, trader, or doing something relevant in that space.


Actually UK CS grads are way above average, just not good enough, which should tell you a lot about the shape of the global distribution as well as it's mean. There ought to be some Real programmers from India, never found one yet.

Few CS schools offer the things that make for good algotraders, because it's a tiny niche compared to the world as a whole, and it's fare from being a defined skill set.

I will say C++ again. Partly because it's useful, partly because a C++ programmer can do things that cause the average Java programmer to cry tears of fear, and partly because it proves you're hard. (I mean 'hard' in the British English use of the word for the life of me I can't think of an equivalent word in US English).

Signal processing is very useful, and for those like DD who are in engineering school, often an option.

Networking at the IP level or below, when you begin to chafe at the overhead of TCP, you are getting to a useful level.

Security/Cryptography are directly useful as such, since even the most radical algotraders typically avoid doing anything that is actually illegal in a big way, in a form that is likely to be caught. But thinking about how to get computers how to do things they weren't intended to do is a critical discipline for a Real programmer. Hard to be an AT techie without being a RP first. As it happens my interns are getting an intro to RP this spring. (note the capital R in Real).

Cryptography is useful because it's math problem solving, and in general 'problem solving' courses are good.

Operating systems internals are good, but sadly very hard to get.

Algorithms of course, more is monotonically better, but not because algo trading has much to do with CS algos, but because a Real programmer has a wide range of techniques to cause trouble with. Doesn't matter what your language is for this, I've taught them in VBA, but you must code everything you learn in C++


You also need to know how computers work.
I appreciate that most CS grads find that idea offensive, but you must have some understanding of what a bus, register and port is. If (as some say at interview) you think a stack is some sort of specialised hardware, please just abandon this like of work before you get hurt. If it's not obvious to you that a network card is a serial device, ditto.

Take at one option in formal logic. If you don't know what deMorgan's law is, you are just an evangelical who hange out with geeks.

You need to understand the difference between network speed and latency, (satellites are actually good platforms for getting intuition here).

You also need to write some substantial body of code that actually does something. Largely I don't care what, but it ought to be at least 2K, preferably in C++, but even Java/C# or even VBA would do.

That's as much as I can think of in terms of small changes to your CS course that can make a serious difference.

CS rarely if ever covers probability and/or stats. You need to attack them, perhaps sitting in on the relevant maths/econ courses on. Nice to have the exam for your CV though. Wouldn't hurt at all to do information theory, if it's offered.

You need to go to the college bar more often. This is critical if you aren't a native English speaker. Hanging out with people who speak your native tongue is really bad for your career.

Most universities have sort of poker club, or equivalent. Join it. Play, try to get good.
 
There ought to be some Real programmers from India, never found one yet.
Yeah, I always hear them as being code-monkeys, why is that?

Also,
Largely I don't care what, but it ought to be at least 2K, preferably in C++, but even Java/C# or even VBA would do.
Is that 2k lines? Because that's a pretty small project...
 
Yeah, I always hear them as being code-monkeys, why is that?

euroazn, I don't know, it's harder to explain an absence than a finding. If forced to guess, I'd say it was because of the nature of the Indian computer industry. It services rather than leads. Lots of money there of course, but the dull shit they do would kill me.

Also, there is a personality trait here, as well as ability, maybe the ratio is different, but also the set of opportunities are different, so maybe they choose to do other things.

Is that 2k lines? Because that's a pretty small project...
Yes, it is small compared to a project in the so called real world.

But I'm realistic about the point at which a CS grad is starting from. It's at apporximately 2K that you hit code scaling issues and requires both discipline and some architecture.

I did once debug a 1374 line single function in C++...
 
I will say C++ again. Partly because it's useful, partly because a C++ programmer can do things that cause the average Java programmer to cry tears of fear, and partly because it proves you're hard. (I mean 'hard' in the British English use of the word for the life of me I can't think of an equivalent word in US English).
"Hardcore" is what you were getting at?
Hanging out with people who speak your native tongue is really bad for your career.
But..but...I'm trying to find something positive out of this but I'll give up. I can't find anything "good for your career".
 
I apologise if my thoughts didn't come through here...

If you learn the things I suggest you seriously increase your chances of getting a job in algotrading, without much risk of not being employable in other sectors. Probability is good for most investment banking work, and the DSP /comms etc stuff is widely applicable.

The O/S internals stuff is useful in any real time environment, which is of course what HFT is an example.

Pace Andy, I do have to emphasise people communication skills in HFT. Some work is of course staring at a screen trying to work out why the bloody thing doesn't work. You will almost certainly haver periods in your life where whole weeks disappear into obsessive asocial hacking at code.

But...
Being able to explain viciously complex ideas to your team mates is one of the most common attributes required of all good quant jobs, and especially algos. I really don't care what accent you have, if you talk posh like me, or if you sound like your career options were equally drug dealing or equity derivatives. I do care if I struggle to understand your words.

Of course "good communication skills" is something HR people cut & paste onto all job specifications, but hiring managers say this to me directly. I hear it more often than (for instance) econometrics or linear algebra.

I have been more negative than normal in this thread, because if you try for this speciality not only are the odds not good, but the specialisation can mean that you don't get the depth in more mainstream work. This trade off is rational to the extent that you have a good shot at it. If you don't then my position is that you shouldn't try.
 
Yeah, I always hear them as being code-monkeys, why is that?

euroazn, I don't know, it's harder to explain an absence than a finding. If forced to guess, I'd say it was because of the nature of the Indian computer industry. It services rather than leads. Lots of money there of course, but the dull shit they do would kill me.

Also, there is a personality trait here, as well as ability, maybe the ratio is different, but also the set of opportunities are different, so maybe they choose to do other things.
Cultures are different. One of my humanities teachers in high school said he was invited over to Japan to try to get their students to be more creative.

When they introduced him to the school, they marched their students out in formation. He said it was this amazing sight, but the culture was just so much more societally oriented than individually oriented. During their after school extracurricular hours, he walked in on a room with a rock band. The band had painted all manner of obscenities on the wall and were playing loud aggressive music. Yet as soon as he walked in, they quieted down and apologized for everything.

You think that type of kid would try to break his computer for the fun of it?

I'm not saying this explains what you observed, but it's a possibility.
 
Culture is a thing, but I do see evidence of Real programming in Japan, but not India.

Yike is right that "breaking things" either by accident or design is an important part of being a Real programmer. An experimental view of the world is critical to this.
 
A friend of mine ...the most ideal person they look for when it comes to high freq trading, is an expert level programmer along with someone who understands trading very well.

it's interesting, how one may understand trading very well while working as software developer?
Set-up trading platform at home and start trade FX, Options, ...?
What else decent trader need? Certification? What kind?
 
Back
Top