Computer science courses for algo trading
What are some of the computer science courses that an Economics/Finance major should take at minimum in order to be knowledgeable enough to join a non-top 10 HFT/quant prop firm?
As of now, I have only taken freshman introduction to computer science yet I am taking a lot of mathematics, statistics and quantitative economics courses.
If you have the math/stats down, then courses which involve c/c++, java, matlab, strata etc. A lot of these places prefer masters degrees though, and to get in, normally one would not go straight from undergraduate, but would have experience at a larger bank either doing research, development or trading.
http://jobs.efinancialcareers.com/job-4000000000737359.htm
Here is an example for an entry level trading position. Check out the reqs.
Advanced C++ (C++0X, or actually C++11 now), covering topics like Virtual / Non Virtual Methods, Method Hiding, Covariance, Single / Multiple Inheritance, Pointers vs References, Shared Pointers, Thread Safety / Parallelism, etc.
Low level C programming (IPC - pipes / sockets, static / shared libs, file i/o, fork/exec, signal processing, semaphores, message queues, shared memory, multi-threading)
Advanced networking, mostly related to improving speed.
Thanks for the response guys, it's quite clear that I should stick to my core competencies rather than trying to re-invent myself over the next few years. As my ex-gf once told me "You're majoring in Statistics? Oh my gawd! That's like one really bad nightmare." I wholeheartedly hold the same sentiment for a masters in mathematics, statistics or computer science.
My goal is to complete a Masters in Finance after a year or two of prop trading experience, however computer science isn't really my core strength. I've gathered that some 'medium frequency' statistical arbitrage desks do take maths, statistics, engineering and even philosophy, finance and economics majors out of undergrad- perhaps I should explore this a bit more by contacting traders at those firms.
I hope to eventually transition to a place like FNYS, or even a Commodities focused/ Global Macro HF or CTA.
you may want to reevaluate your goal. the stuff I listed is just the tip of the iceberg. It doesn't touch on any of the more cutting edge stuff going on. There is a reason HFT shops hire PhD's - they are legitimately driving technological advances in many areas because of their need for speed. As a finance / econ undergrad, you really bring nothing to that table, even if you have 2-3 intro comp sci classes. They want people with years of experience writing C/C++, customizing the *nix kernel, writing customized network protocols (i.e. TCP has a lot of overhead that might not be necessary for a round trip between two servers, etc.)
Someone more knowledgeable than me might be able to speak to the convergence of the financial math piece of it (algo development), and the technological implementation of those algorithms, but based on my exposure to various prop firms, it seems like the two are rapidly blending so if you are indifferent to (or not a rock star with) math or comp sci, you might want to formulate plan B.
I think IlliniProgrammer is a developer at a HFT shop - maybe he can chime in with a more accurate assessment than I've got.
In rough order, not all needed but the more the better:
algorithms/data structures software engineering computer language engineering signal processing artificial intelligence operating systems/distributed systems
Can any algo traders comment on these CS courses? (Originally Posted: 12/15/2013)
I'm studying computer science and applying to S&T SA internships (or technology ones if S&T doesn't happen). For electives I'm planning on taking database systems, big data analytics, machine learning, numerical methods, and financial computing. Do these courses look right for algorithmic trading roles? Are there any other courses that are useful?
not an algo trader, but from my internship experience / interviews / research, depends very much on type of algo (market making vs execution vs investment) and what kind of place you end up at.
a lot of it is just pure programming, but the math is more important than the programming in a lot of cases. i'd just take a bunch of math classes if you're already a decent programmer.
i like machine learning the best out of these, database stuff is useful but you can pick up all you need to know in a week on your own time
Thanks for the feedback. I've heard of the other 2 but what is investment algo trading? How do these types of algo trading differ from each other? What math classes do you recommend? I was told not to study stochastic calculus.
i just used investment as a catch-all for non-client algos. both market making and execution are serving clients (either providing liquidity or running their orders). investment might be long-run stuff or statistical arbitrage (probably not appropriate to call this investment) or something else.
you can probably just look up market making and execution algos.
market making, you take the other side of client trades so they can get their trade executed faster, and collect bid-ask spread in the process.
execution, you just reduce market impact by splitting huge orders into smaller chunks to execute over time.
statistical arbitrage: look for correlations, figure out if something seems mispriced relative to other products, then short the overpriced and buy the underpriced.
i'd probably focus on prob-stat stuff and linear algebra related stuff (machine learning is kind of a combination of the two, really).
Ok, so more probability, statistics, and linear algebra classes... Do you know of any hedge funds that buy and hold? Or would they just be called asset managers?
Do prop shops ever buy and hold or do they only do day and swing trading? Before I got interested in trading I had no idea there were so many types of traders out there!
Numerical analysis, machine learning and computational finance are all great classes that will give you a really good base for any of the above. In addition to S&T you should look into some of the big stat groups, I know JP Morgan did lots of recruiting at my uni from CS kids for SA spots. I'm not sure about your uni, but if your numerical analysis is applied to finance, you will get plenty of exposure to the stats side. Other than that, sounds like a tough schedule, good luck.
Hey, thanks. Yeah, I was told that numerical analysis is good to have if you're studying CS. Do you agree with the other post that a math major is more useful than cs? Or do banks prefer cs for trading?
I can't comment on banks, except that if you're apply to one of the strats and modeling internships, math might be a bit more useful. I think for sales and trading they just look for the smartest people, and usually being good at math is a good signal that you are bright. Numerical analysis is useful because a lot of the work you do is in Matlab, and learning new languages is always helpful. Other than that, someone else will have to shed light on what banks prefer.
Nice, that's great to know. I had kinda gotten the impression that it might be less about the subject and more about how smart you are, but great to see someone actually confirm it. How about hedge funds and prop shops? I'm guessing they're also just looking for smarts and degree subject is less relevant as long as it's STEM.
For what it's worth, firms like Jane Street and SIG have been known to hire philosophy (and other humanities) majors out of undergrad.
None of those courses will hurt, but none of them will be helpful unless interviewed by a programmer type. The heads of these companies for the most part are former pit traders that could not code for the life of them(their opinion matters the most).
So, if interviewed by these guys, math is better then?
I agree with @protectedclass , taking some of those courses definitely will make you standout as a candidate and show you are interested in trading, but in terms of actual interview it doesn't matter. Same applies to math. Obviously, they will expect you to know probability and will ask you lots of that, but unless you have on your resume "taken xxxx" then will most likely not grill you on that. You don't need to be able to crush through stochastic calculus to be a trader. Unless you want a software spot or a quant spot (which usually requires an advanced degree) you won't need it.
Taking a bunch of advanced math courses will only help you marginally in terms of interviews. Yes, they do help you build good problem solving skills, which can make brain teasers much easier if you're good, but only in a few instances have I been asked specific math questions (and I'm a math major). The most typical questions (and these only happen at the more quanty places) are stuff from linear algebra, maybe some calculus, and some stats. One thing I can say though is that across the board, every shop looks for how fast you are with mental math. One of the firms I interviewed at straight up said 'numeric ability' is the number one quality they look for. You will never have to use integration by parts on the job, but if you're long/short xxxx delta you need to be able to know in your head how much you need to buy/sell to become delta neutral without thinking twice.
I've noticed that some firms give arithmetic tests to traders, something like 32.491 / 5.7, and expect a certain number of questions to be answered correctly in x amount of time. Is this kind of test only for prop traders? Would they ask these types of questions for a S&T analyst role?
@melisa
If you're a CS major, you should be supplementing with finance/pure math classes to stand out from the other bajillion STEM majors.
The trading landscape and guidance for computer scientists? (Originally Posted: 05/24/2012)
Hello. First, a bit of introduction and context: I'm a computer science major and will be a junior next year. I'm interested in working in algorithmic trading, but have had no finance-related coursework or internship experience. However, I've been programming for most of my life and have several years of programming internship experience.
I'm not sure exactly what different firms call what I want to do, e.g. is it Sales and Trading vs. Technology, or Software Development vs. Quantitative Research vs. Quantitative Trading. I'm trying to avoid accidentally ending up in roles where I'd be doing system administrator or tech support or non-trading infrastructure roles.
What coursework should I take in the two years I have left? I'd appreciate any information, resources, career or coursework advice, study suggestions for the summer, or anything else you think would be helpful -- thanks!
[Edited for clarity / anonymity]
Apply for trading positions, that's all you really have to do. Don't get suckered into thinking "I want to work at Goldman Sachs, I can apply for a software development position and lateral to their trading desks", from what I have heard, that is nearly impossible.
As far as course work, make sure you have a probability and statistics course, and a stochastic processes course if you have the background to take it. Partial differential equations should help too. Taking a course on options and futures is fine too, but I was never expected to know anything about them besides what I can learn on Wikipedia in 5 minutes in my interviews except for at one place.
Little undergrad coursework will prepare you, maybe Data Mining and Statistics if at all available. Get good grades and work hard. Know how to make your resume stand out
Two things you can do to get where you want. First and most straightforward is get an internship next summer, this will be easier the higher your GPA. Applying begins in October. Any experience will be beneficial, but mind you, your position may pigeonhole you in the future. Ultimately you want to be a trader, and there and quant trading internships, but they are most competitive. Also available are development and research roles, which can lead to trading down the road, but conversely peg you as a researcher. You just do the best you can do.
Second thing you can do, and much more difficult, is start trading yourself. This is where you really learn. There's a good thread on this board about how to start on your own. There's also Ernie Chan's book that tells everything you need to know about running your own small electronic trading fund. This is a LOT of work (just like the real thing), but if you are extremely dedicated the sky is the limit (all the easier if you are a seasoned coder). Regardless of your trading success, after a year or two you would certainly have something to show, to list on your resume, and have a leg up on all your peers with a better GPA. You could surprise yourself.
Read Mark Joshi's guide, excellent overview of what it means to be a "quant"
It's unclear what you want to do. Do you like the idea -- or not -- of being a quantitative trader?
what's a rising junior?
Take probability, econometrics, statistics, and macroeconomics
hi
macroeconomics
@dabanobo -- I do like the idea of being a quantitative trader. I'm trying to avoid ending up in non-trading roles and trading roles that are not quantitative and don't involve programming.
@rynofrowan -- "rising junior" means that I will be a junior next year.
Thanks for the course suggestions, everyone. ReardenMettle, I have access to graduate level courses as long as they're not restricted majors, so any suggestions you have there would be great as well.
I've built a tentative schedule for next semester based on all of your suggestions. I'd appreciate any comments:
I'm taking a few prerequisites as co-requisites here, but I think I'll be able to manage it. I'm trying to get as much applicable knowledge as possible before any possible internship.
@protectedclass -- I can't fit Stochastics / PDE into my schedule right now.
@ReardenMettle -- thanks, I've read Mark Joshi's guide. I've also started reading http://www.amazon.com/How-Became-Quant-Insights-Streets/dp/0470050624. I'll look into the book you mentioned soon.
You can get plenty more guides and book like Mark Joshi from here https://www.quantnet.com/forum/threads/master-reading-list-for-quants-m…
So you aspire to work as a quant and are currently entering your final year, yet you still haven't to take intro to probability and statistics? Firstly, most people take that course during their freshman year, and more importantly you should be taking (or should have taken) mathematical statistics instead.
I actually have two years left, though I am behind where I would like to be in math coursework. I had limited choice in what courses I could take to satisfy my major's probability / statistics requirement. The one I chose takes a calculus-based approach. I'm not sure if this counts as 'mathematical statistics' or not, since I've never heard that particular combination of words.
Sounds like a 'mathematical statistics' course. Regardless, I think you're about a year behind in terms of math and stats so it will be an uphill battle to land anything related to quant trading for your SA but something you can easily overcome.
Which CS courses? (Originally Posted: 06/08/2009)
I'm a math person but I do not like computer science very much. I have taken the intro CS course in college in Java. I heard that CS (along with math) is essential for getting into trading/hedge funds, so I'm interested in learning what I will need to know for the next step. Which CS courses are necessary?
Tempore nulla et nostrum iste quo similique. Iusto similique modi possimus suscipit maiores dolores. Mollitia animi maxime hic ut rerum.
Libero rerum eaque aliquid et tenetur quasi. Voluptatem molestiae vero distinctio labore qui. Unde non ipsum dolorem suscipit quod sed voluptatem. Soluta aut neque unde sed autem quis architecto. Et est ex at iusto eum. Sint quis quibusdam quasi maiores id facere.
Maxime et quas voluptas non. Fugiat aut ut reprehenderit quibusdam. Totam impedit quidem cupiditate ex.
Cupiditate consectetur ut eius amet doloribus harum ut. Quam repellendus voluptas aspernatur sit inventore non amet.
See All Comments - 100% Free
WSO depends on everyone being able to pitch in when they know something. Unlock with your email and get bonus: 6 financial modeling lessons free ($199 value)
or Unlock with your social account...
Et nostrum architecto qui laborum accusantium placeat. Deleniti aut repellendus dolores et quibusdam aut. Expedita vel non minus in quia ad fuga. Voluptas facilis tempora aut quia aperiam asperiores repellendus.
Veniam sequi voluptatibus dolores eum voluptate. Rerum similique dolores aut. Ut earum dignissimos nesciunt sunt et impedit velit. Deserunt dolore consequuntur voluptas neque molestiae.
Omnis sunt possimus quaerat suscipit optio. Quam inventore maiores natus voluptas sed et dolores. Rem ut qui fugiat et sed et. Exercitationem ea fugiat magnam.
Consequatur vel ea quas natus. Aut quo nobis culpa est atque. Voluptates delectus aut quia dolor. Libero nam quasi consequatur odio accusamus non debitis. Quod maiores illo nobis omnis provident ut exercitationem. Consectetur doloremque quia corporis animi voluptas ipsam.