Programming Languages for Trading Jobs
Fellas,
I, like many of you, am trying to jobs at prop firms, hedge funds etc.. and wanted to learn some programming languages in addition to all the financial knowledge and experience since a lot of these jobs postings require some sort of programming knowledge.
Through some searching, these are the ones I've found to be the most useful:
VBA
C++
Python
Matlab
Please feel free to correct me or add on to this list. Any info would be appreciated.
Thanks,
DJR
VBA is by far the easiest to learn. The reality is that it's not even a real programming language, it's basically just used to write macros in Excel (or other office apps - but let's be honest, Excel is the cream of the MS Office crop). Don't get me wrong, you can do great stuff in Excel VBA - connect to databases and execute queries, automate data visualization in little bar charts (with high-end formatting!), but if you are going to do anything hard core, you need something else.
Python is basically just a scripting language. Similar to Perl, more widely used - I'd stay away from this, honestly. It's good to learn, good for web pages, and stuff like that, but it's more for BO peeps IMO.
Matlab is for hardcore math programming. Again, it's not REALLY a language. It's used for data manipulation, engineering, and at quant shops it used for model development.
C++ is really hard - but if you are an expert in C++, nobody can say that you aren't a real programmer. You can do anything in C++. For Example, the perl language and Matlab were written in C++ .....
This information is somewhat misleading. VBA/Excel is used to do "hard core" things for most fundamental-based funds. Matlab is not a low-level language, but that doesn't mean it's not a programming language. In fact, at many more quantitative funds, literally everything is done in Matlab. Python and Perl are frequently used in hedge funds these days, even for front-office quants. C++ is generally not important at hedge funds, unless you are heavily involved in implementation / technology roles.
The type of quant that requires C++ / Java (e.g. front office trading-quant, risk management quant, etc.) is a very different type of job from the hedge fund quant.
I highly recommend python.. Easier/faster/more powerful than VBA.. and development time is uber short with the many built in libs.. almost as fast as C++ if you use pysco.. the gzip lib allows reading/writing to gzip-contained files so working with high-frequency (read: large file sizes) data is a breeze.. and of course sci/numpy has all the mathematical packages MATLAB has but for free..
I wouldn't do C++.. the only people using it are a) model-building quants - the ones I spoke to recommended I stay in front office b) quant developers on the buyside - implementing others' ideas
C++ isn't really all that useful without a strong knowledge of data structures and software engineering.
In any case, fifteen years ago, 80% of financial programming was done in C++. Five years ago, it was 40%- mostly mathematical number crunching. Today it is about 5-10%. Optimizations in Java have replaced a lot of C++ development.
I'm the friendly desk developer and almost all of my work is in Java. It's fast, simple, and effective.
Is this really the case? Why is it that all the quant job postings emphasize C++? Is Java better to learn for quant work?
C++ is good if you're doing some huge quant pricing system that's designed to handle huge volumes. You put together a C++ JNI for the number-crunching, wrap your Java-based system around it, and it's done.
But if you're just trying to do something quick and dirty for the trader that doesn't need to handle 570,000 bond positions every evening, Java is a lot faster to develop and get done.
A number of quant groups still use C++ because that's how it's always been done. But that's changing, slowly but surely.
What's best for IBD? VBA for sure, but should I brush up on C++
I put C++ experience on my resume to show that I had more programming experience, and you bet I was asked about it in interviews, despite the fact that I never used it in my job. So in that sense, I was very glad that I brushed up on C++.
VBA is quite important on the banking side, particularly for quant-type work. Just to clarify, are you already placed into a banking position, are you searching for quant roles, or are you just interested in what you should study / list on your resume for generic recruitment?
I've always prototyped my work in matlab and then written specs for the software engineers to write the production quality code in C++
Depends on what you wanna do. if you wanna be a banker anything more than VBA is overkill. on a trading desk python would be killer-useful though not so well supported so MATLAB may have a slight edge there (banks wouldn't care about the 5k license right?).. if you're talking internship its difficult to get the IT guys to install it though.. heard its well received on the buyside..
It depends on your objective as well. Do you want real skills and to be able to get shit done? Python. or are you trying to buff your resume?
If I were you I would first learn Excel/VBA then move on to C#.net
Once you have a solid .net background you can move to other languages realtively easily.
I agree that Java/C# are also good languages to learn. They're fairly similar to C++, so given your time constraints, you should pick one of Java/C#/C++. My impression is that C++ is simply more standard on wall street (right now--who knows in a couple of years) so studying C++ may be more useful for recruitment.
Man so many languages I'm more confused now that I was when I posted this
To summarize: Banking: Excel/VBA, maybe Python and Matlab? Quant: C++/C#/Java
What about the differnet kinds of Prop trading firms and Hedge funds? ones that specialize in Algo? Market Makers? Are you working with the IT guys here or do they expect you to be fluent in programming?
Man so many languages I'm more confused now that I was when I posted this
To summarize: Banking: Excel/VBA, maybe Python and Matlab? Quant: C++/C#/Java
What about the differnet kinds of Prop trading firms and Hedge funds? ones that specialize in Algo? Market Makers? Are you working with the IT guys here or do they expect you to be fluent in programming?
Anybody can learn the basics imperative programming in Java or C++ or C#. And it's a good skill to have. However, this doesn't give you a competitive advantage if all you know is bubble sort when the competition has things so optimized that they can decide between quicksort and mergesort by sampling five elements. What gives you the competitive advantage on the technology front is algorithms, data structures, numerical methods, machine learning, fast execution, and maybe code organization.
Essentially, if you want to do algorithmic trading, a CS or ECE degree is highly recommended. That's where the competitive advantage is.
http://jobview.monster.com/C-Python-Developer-Job-Chicago-IL-US-9170431…
Python is newer but a better language vs MATLAB/VBA for front-office type work. Full blown Quants are C++ or bust.
Another thing worth mentioning is once you've done the other three, VBA can be picked up on the job. Thats how I learnt it anyway.
My 2 cents - for banking, VBA is plenty enough. For some slightly more technical things, Python can be used - much more capable and faster than VBA. Using a converter, you can actually use Python to manipulate Excel at incredible speeds. C++ if your job is building systems, rather than using them. Matlab same category as python, except easier to learn, and slightly more popular.
The Chicago MM I was at before was a pure C# shop. Jane street uses OCAML, which I have no clue about.
Functional programming languages are a whole different monster than Java/C++. They all go off of recursion and have one line of actual execution per function call. You usually use them in compilers and the programs look pretty similar to written Backus-Naur form for language descriptions, but they're seeing a few applications elsewhere.
I'm going with VBA and C++ then, if they need more I'll wing it. Thanks guys...
Programming important for Trading (Originally Posted: 03/09/2010)
I was just wondering what types of programming are useful for trading/structuring/strategist?
I am as ignorant as one can be on the subject so am I wrong when I think of programming as VBA(excel), and that C+/C++ stuff everyone talks about?
In truth, I am asking which beginner courses I should take during my two month break this summer. I have been trying to completely avoid anything computer related up until now but want to atleast have a little experience in case it is desired in a trading/structuring assistant role or if I decide to try and go for one of the quantitative Masters in FE/Financial Math.
I have no idea what C+/C++ is except for the assumption it is code, and don't trully understand what type of skillset/intellectual ability it requires. I understand what VBA is as an analyst used it to create a macro I pleaded with him to create. However, that is as far as my knowledge on the matter goes.
I figure VBA would be important for any position that involves excel (research, IBD, structuring), but do actual traders or the analyst traders even use excel much? C+/C++ sounds like it is more useful for the structurers on the exotics side.
So, where should I get started?
thanks
yes you should definitely take this time to start learning. C++ is probably a good starting point
C++ is good, but you really want something more fundamental than a language course- COBOL was big back in the '80s; C++ was big 10 years ago; today it's Java. (C++ is still used for some of the more quantitative logic.) Maybe in ten years it will be Python or VBA.
It would be good to get some experience in either optimizing execution (that probably means a background in assembly and CPUs) or algorithms (CS Theory courses). At the very least, it would be good to understand order of complexity and some of the basic principles of memoization and dynamic programming.
Yes, thanks for the tips. I'll probably start off with Python and VBA and then move on to C++ if I get the time.
JimSimons - do you recommend any particular books/sources to learn Python? What do you think of http://diveintopython.org/ ? thanks
importance of programming in trading (Originally Posted: 12/19/2007)
I've read on more then a few posts here that some trading positions require or prefer programming skills. What programming language is most prevalent in the trading world, and what kind of trading jobs would usually require programming knowledge?
VBA is pretty important. SQL doesn't hurt...
-
that and lutz.. if you're a programming noob. docs.python.org if u have any experience.
How to leverage programming skills in prop trading? (Originally Posted: 09/07/2014)
I'm a junior guy, working for a fund on a commodities desk. I am very skilled in programming (world top10 uni CompSci graduate) however I'm not good (definitely not a Quant) at maths or statistics. We already have a math PhD on the desk with custom option models etc.
Why I don't work as a developer? The work is mundane, people I met on the internships were not ambitious and boring, and there was no 'winning' on the job. Also the payoff would never get into 700k+ areas, like it does at the fund, through pay based on percentage of pnl.
I'm not a developer on the desk, just the classic trader assistant, controlling exposure, pnl and swap hedging. Our desk has a tradition of promoting to traders positions from within, and I wouldn't want to be the one to break it.
Question is, how could I use my programming skills to improve profits of other traders on the desk, without venturing into statistics area and thus clashing with our PhD guy?
Were you ever impressed by some custom tools which some of the traders used? If so, what were they? Or maybe you have some of ideas on your own?
How to leverage programming skills in prop trading? get a job at a legit prop firm
It's one of the big names, couldn't really get more legit than that.
Post-trade analysis tools would probably be a good side project. See if you can automate any market-open or market-close procedures.
Thank you so much for a very useful suggestion! I will try to go in this direction. Do you mean stuff like tracking whether the trade was successful or not? What was the entry point, when was it in the money, when was the profit/loss taken?
Figure out something that would make your job easier.
Thanks - this has been my focus for the past half a year or so since I joined - issue is, while it makes my work more precise and allows me to avoid mistakes - it does not bring value to the desk which was pointed out to me.
I was told that I don't use my extensive skills.
do backtesting. classic trading is dying to algo trading.
not in commodities where a lot of stuff is OTC and trends are not as clear.
Programming in S&T (Originally Posted: 02/03/2014)
In S&T at a BB, if you are NOT part of the strats or quants group, do you need skills in programming? For example, does an equities agency trader need to concern himself with any programming, or is it strictly working with trading software interfaces?
The only programming you'll need to do is in VBA or in Bloomberg API. A background in programming will help learning those if you don't already, and it's a pretty good way to add value in your first few years on the desk. Especially since a lot of the guys on the desk will be in their 30s and not be as good.
does a momentum type trader need to learn programming? (Originally Posted: 06/14/2010)
i am a sophomore at NJ, majoring economics and statistics. i started trading at the summer of my freshman year. and i started out as a growth investor, buying shares of AMZN, AAPL. then after reading some books about technical analysis, i began trading using trend following techniques, like the moving average system, formations, candlesticks. do CS programming skills help me a lot getting a job at trend following prop shops?
Well, I'm biased, but my view is that CS skills never hurt. (Chuckle)
That said, if you want to go into algorithmic trading, you'll need the equivalent of about 30 credit hours of CS courses, bare minimum to even think about competing against a lot of the nerds going into this field. In particular, you'll need to figure out a way to write code that is better than what anyone else can write in a certain respect (IE: algorithms, fast execution, etc.) Is that something you feel comfortable being able to do?
I interned at a BB trading desk. The Feedback from the MDs to Associates was "Programming is a skill that is not expected from a trader. We have a separate IT team to help us on such issues"
Bottom line is that the ability to write efficient code is a significant competitive advantage for a trader to have. It lets you get ideas to market without having to wait six months for IT like you normally would at a bank. You can always have someone else write your trading strategies into code for you, but that will make him the algorithmic trader and make you the quant/financial engineer if the banks head in the same direction as the prop shops.
This can be a bit of a touchy political subject; expect a "No" as a knee-jerk response from any traditional trader; expect a "Yes" as a knee-jerk response from anyone in algorithmic trading or quant development. The answer is probably somewhere in between.
Interesting question. With machine learning, you can make computers a lot less mechanical than you'd think. Set up a simple MLP and give it a cue ball and it can learn to push all of the balls into one corner of the table on its own using it.
Obviously, a deterministic process is always going to be mechanical. But computers don't have to be deterministic.
Traders an programming? (Originally Posted: 09/26/2008)
With trading becoming increasingly more electronic-based, and many trades occurring from computer based algorithms, would it be worthwhile for someone interested in pursuing a career in trading to learn a programming language? HOw many of you traders out there know programming, and specifically, what languages would be best to learn? Thanks.
a lot of junior traders know basic VBA programming.
they tend to work with derivatives.
would be very valuable - just be sure that if you want to trade, you don't get lured into quant/systems
there are usually two roles a hedge funds.
quants and developers.
i think it's important for both positions to have a good understanding of what each other does. however, you don't necessarily need programming experience to get a quant position.
=== http://bankertimes.com investment banking news
if you are decently above average in intelligence, you should be able to easily learn programming in your company's internal scripting language within a few weeks. It will likely be a very high level language (meaning super easy and super portable).
that's for traders. if you are a quant or developer you would be using C/++ to code the heavy stuff under the hood.
So is it then not worth it to learn C++ before I start? Would I be better off just learning some VBA?
Take a programming course, any one. You'll learn the proper way to code, and also how to hack out something that works, and hopefully when each is appropriate.
I had never seen VBA before I started and I picked it up rather quickly. Having said that, I also have experience in C++, Matlab, and several other languages. I have thus far not needed anything beyond VBA and Google searches. If things were set up properly, then I might be more inclined to use C or SQL. In either case, I'd have to learn the specifics of how to use that language appropriately for what I need to do.
You're looking for the simple answer - there isn't one. If you can say for a fact that you won't be doing anything outside of VBA, then learn VBA. Like I said - in my experience thus far as an analyst (~6 months) I haven't needed anything beyond some slightly complex VBA. If you think you might use something beyond VBA, learn C++. It's slightly more complicated, but should help you code in other languages.
The other thing to consider is if you're going to be self-taught or take a course. I would say if you're going it alone, you will make much more/faster progress if you're learning VBA (you can record macros and learn the code that way).
Hope that helps.
think of where this business will be in 15 years.
You will absolutely need programming... learn VBA first, then data analysis tools (MATLAB, R/Stata/SASS) and then C/C++/python
Options trading / programming classes (Originally Posted: 02/12/2011)
I'm going to be starting out at a prop firm soon. I've tried my hand at trading for four years but just recently started looking into options.
I want to spend my summer wisely and was wondering if there were places (especially near NYC) that offered classes in derivatives and/or programming related to trading (MFE-like classes essentially). Any colleges offer such classes?
What is your background in programming? If you're interested in algo trading, you really need more than just an introductory class. Data structures, numerical methods, and graduate-level algorithms/CS Theory classes are all essential. If you're interested in quant analytics, there's a little less emphasis on swift computation and more emphasis on math, so if you've got a basic programming course under your belt, I'd look at numerical methods.
Unlike IP, I'm going to assume that you are not going to be at a algo trading firm.
The level of programming that you need isn't very advanced. You could easily teach them yourself or take introductory classes at local CC. You will probably be using Excel VBA so that's a good place to start, but starting with a real object-oriented language (C, C++, Java) never hurts because it sets a good foundation.
Picking up options finance on your own probably isn't going to be as easy (or interesting I should say). The bible of choice is Hull or Natenburg.
Programming for Trainee Traders (Originally Posted: 02/10/2013)
For an applicant who is applying for S&T,
how many programming languages is optimal?
Is it the more languages you know the better?
Does it not really matter?
Is it that if you know too many, you'll get labeled as a quant?
thanks!
I had no idea you needed to know programming language to be in S&T...
speaking as a programmer in general, completely ignoring the trader part
it's not # you know, rather what and how well, and what you're trying to accomplish
different tools are suited for different tasks
as a programmer again, ignoring the trader part, I think a good (and fairly vanilla) mix is C / Java / MATLAB and maybe [insert functional language here] -- fast systems language, fast prototyping language, computational language, mathematical language
edit: I would add rudimentary knowledge of some scripting language (e.g. perl) for when you need to slap things together, but I find scripting and computational languages are mainly a matter of just RTFM whenever you need to do something new
Programming for S&T? wat
I smiled when I saw these types of responses to these threads. This was exactly my response when job searching for assistant trader or entry level trading positions. For some reason almost all of them want you to be proficient or well versed in at least one of the major programming language. Why? I have no idea. I'm interested in finance and trading .... not computer languages .... and I don't really see what benefit they provide to someone with their mind in securities and financial markets.
When I interviewed for Tibra they asked me to do a programming test, which they admitted (after I got the offer) probably won't be that useful for my job trading options (since they have software developers to support the traders), and they just wanted to use it to weed out more people
S&T, which is usually financial market making at a large bank while optimizing the flow that comes from that, probably VBA honestly.
Prop shop, which is algorithmic/automated/HFT market making or other activities? ya, since it's automated... probably something C related (C#, probably C++)
Programming in Trading (Originally Posted: 12/22/2009)
I never considered a career in trading because I don't want to constantly program. Internship postings I see usually say programming skills needed. Are there trading jobs which don't require (much) programming?
Not usually at an intern level since a trading intern can't do anything else except watch and build specific tools that either tech or research can't or don't have time to do. Its more easy VBA than anything more difficult
Most sell-side trading desks (at banks) don't require a lot of programming by the analysts. In general, the most programming you'd be doing would be in VBA, which is pretty easy to pick up, and it wouldn't be what you're doing all day.
agreed with the above posters. most of the hardcore complicated programming are done by the software guys (like the prop programs).
the most ever programming you'll need is vba.
one exception is if you're in a program like citadel's ftap or any other quant trading programs. where it's a combination of programming/trading.
Coding for Traders (Originally Posted: 02/01/2011)
How much coding/programming knowledge is expected of (or advantageous for) incoming first-year sell-side traders, particularly in the Energy space?
Are there any decent trading-focused coding textbooks/resources out there for people with no compsci background?
Thanks,
Tunnel
Traders like excel. VBA is quite useful -- and VERY easy to learn.
Indeed, im seeing this on most job apps im looking at. Either VBA fully required or, in their words, 'much appreciated'.
Since you say its easy to learn, what would you recommend as a starting point? Im thinking of purchasing the Lynda.com VBA for excel package.. i also flipped through the VBA for Dummies book at a local shop but in my previous experience with the Dummies series the books have been far too simplistic - equivalent of a wiki entry except in 200 pages.
I use MATLAB
I've got the VBA for Dummies book, and it was a decent intro to VBA for me. You'll definitely need to pick up another book on top of that to get any real traction on it though
Computer programming (Originally Posted: 04/03/2007)
Computer programming background helpful for trading?
no
For most hedge funds, it is essential.
i am trying to get my minor in computer programming, and the way i understand it is that whether or not i actually program anything, ill be able to explain myself better to the people that will be. in turn hopefully ill be able to be more efficient for whomever i work for. if i am successful and later in life want to trade my own money, i think keeping up with the computer programming skill will help when there isn't it support everywhere.
yeah I mean I don't expect to get any programming assignments! but just to have that logical problem solving background...
It depends on the type of trading you intend to do. For certain desks such skill may be a requirement.
Magni assumenda quisquam suscipit qui. Quisquam unde sunt exercitationem hic possimus. Corporis modi aliquam doloribus quam ut ea consequatur.
Eum rerum eum suscipit cum architecto omnis. Quas et quod consequatur voluptatum est consectetur consequatur. Deserunt illo eos aliquam et qui dolorem maiores. Modi officiis quod cumque ad consequatur. Reprehenderit quidem corporis dignissimos quaerat.
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...
Eos voluptatem in quisquam qui officiis quaerat voluptatem. Aut qui quis quibusdam et cupiditate doloribus dolore voluptatem. Dolor in et corrupti.
Quisquam architecto sit dolor magni reprehenderit voluptas. Dolor natus perferendis dolores sit magni dolores voluptatem. Est hic similique quia iure est aut fugit. Placeat cupiditate deserunt rerum eveniet ex praesentium.
Quas praesentium omnis dolores velit qui non. Ipsam architecto dolorem dolorum sapiente. Ad enim quia sunt totam commodi dolores atque.
Quia mollitia sint id placeat. Ab eius excepturi reprehenderit. Vel repudiandae esse ipsam et. Dolor officia dolores sit ut labore laborum illo.
Ducimus est quasi delectus dicta nihil minima ut. Repudiandae debitis qui vitae consequatur similique. Fugit tenetur cupiditate iusto aliquid. Qui ipsum nihil quos enim omnis.
Excepturi iste eos enim vero esse cumque beatae. Molestias non inventore laboriosam nihil. Natus dolores ut nam laudantium. Non molestias quas enim fuga deserunt ut. Commodi unde harum et consequatur maiores.
Magni necessitatibus dolores amet. Autem assumenda est ad sed sit. Qui et odit debitis ut aspernatur quo.
Rerum alias ut quam aspernatur esse et aperiam recusandae. Perspiciatis fuga harum et dolorem maxime.
Aut consequatur maiores nisi pariatur. Et labore architecto dolore quia cupiditate labore earum. Ea laudantium doloremque aperiam numquam vitae quae. Quae quia aliquid explicabo id nobis quia. Enim ut dolorem repudiandae architecto aut accusamus.