Our best traders spend a lot of their time pounding away writing code

#1
A recent NYT article sheds light on how the trading landscape has been changing on Wall Street, due to technological advances as well as regulatory reforms such as the Dodd-Frank financial legislation.

The article makes clear that technology has been and will play a HUGE part in the industry as an increasing volume of trading occurs over automated exchanges as required by laws or other factors.

"The increased use of automated platforms means that more programmers are needed, but fewer employees over all."

The trading desks at Credit Suisse are demonstrations of how changes have transformed the type of trading and traders needed for the job.


"The traders here are mostly educated in math or physics, often outside the United States, and their desks are piled high with textbooks like the “R Graphs Cookbook,” for working with obscure computer programming languages."

“Our best traders spend a lot of their time pounding away writing code,” said Ryan Sheftel, head of the bank’s automated Treasury bond trading, pointing at one of his young employees. “He is doing thousands of trades, but doesn’t need to be manually involved anymore. The code he wrote is making the trading decisions.”

Banks are being pushed to move their trading onto automated platforms as a consequence of the international bank changes known as Basel III.[prbreak][/prbreak] These require banks to hold big cushions of capital to protect themselves in case trading positions lose value, with bonds requiring particularly large and expensive cushions.

This has resulted in banks shrinking the inventories of bonds they used to have on hand in case a customer wanted, say, a million dollars’ worth of 10-year General Motors bonds. Now, those same customers have to look more broadly to find the same quantity, potentially bypassing Wall Street all together.

Another regulation forcing fixed-income desks to change quickly is a part of the Dodd-Frank financial legislation that is set to push derivatives like interest rate swaps onto exchangelike platforms later this year. Banks have lobbied vigorously against it, arguing that the electronic infrastructure is not ready for the complexities of the multitrillion-dollar market.

If there is one single point I want to drive home about, it is the future of trading will mean programming. That means there is no way you can find top dream jobs in this industry, be it traders, quants, without knowing some kind of programming languages very well.

Note: Tim Grant was mentioned in the article. He was the first person we interviewed on QuantNet.

Source: Bond Trading Loses Some Swagger Amid Upheaval
 

John

Member
#2
I agree this is the future: programming (creating the 'soft' infrastructure), calibrating the model (adjusting the model parameters to changing market conditions), monitoring the market (compare model output with market trades) and executing trades could all be done by the same person, the 'quant' trader.
 

elektor

Active Member
#4
I think the Dodd Frank listed derivatives project involves volumes. The only major programming hurdle I see here is the data cleaning job. I don't think valuation and potential future exposure of transactions like fx futures, options and commodities will require QF programming skills. But, agreed my banks systems are just on the boundary of handling this volume.
One place I see a probable heavy focus of programming with regulatory focus is the on the fly calculation of RWA (in the future Reg Capital + CVA charge) for different desks. Desks need to know before they take on a trade how much RWA the banks group level or sub group level changes in a matter of seconds. This in my opinion requires massive computing power and good QF programming knowledge.
 

Ian Kaplan

Active Member
#5
The huge loss at Knight Capital (over $400 million) because of errors in Knight's trading software show that software is not just important, but critical. There is no question that Knight's software design, implementation and deployment was flawed. A software error that caused a loss of this magnitude should not have happened.

Some quantitative groups (whether they are market makers or trading groups) have not come to the realization that they are, in effect, like software companies. The financial engineering is important, but equally important is the software engineering.

The software engineering experience needed to design complex, large scale financial systems can only come from years of experience. Many quantitative groups don't take this seriously and don't hire the sort of seasoned software professionals they should (again, by definition this didn't happen at Knight).
 

dstefan

Baruch MFE Director
#6
We noticed in the marketplace that programming and software engineering are becoming critical parts of certain financial engineering careers after the financial crisis.

The first semester C++ programming course in the Baruch MFE Program which is co-taught by two market practitioners, one of them a Baruch MFE alum active on QuantNet, has evolved naturally over time to a software engineering course (including a lot of Python, for example). The name of the course was recently changed to reflect this to MTH 9815 Software engieering for Finance.
 

voltaire

New Member
#7
Hmmm... Not sure where does it end ! When I started in the investment industry, a Bachelor was consider a + and for sure a MBA or CFA was greatly welcome also ! Now you need a financial engineering degree (which Im doing right now part time !) AND an advanced degree in programming ! By the time you finish both degrees you be 50 ! I'am not saying that programming skills are not worth it, I'm doing some soft programming like VBA and Matlab to help me test and better assimilate the concepts I learned but Python, Java, C++ , R,etc(...)Come on ! Where does it end ? The implication alone to be a good programmer is years of studies ... It's like asking a brain surgeon to be also proficient in heart surgery.. Its good for the Hospital or the financial industry because you dont need to pay 2 individuals !
 

Yike Lu

Finder of biased coins.
#9
Voltaire, let me help you see this is perspective.

A lot of the better programmers got started when they were younger, early teens let's say. Programming requires a fair amount of accumulated experience in order to get things done - there is no magic bullet because there are just a lot of things to learn.

But, once you've learned a sufficient variety of languages (as long as they are from different paradigms), it becomes much easier to learn a new one. It even becomes fun to learn a new one. Hence programmers tend to know several languages.
 

voltaire

New Member
#10
Voltaire, let me help you see this is perspective.

A lot of the better programmers got started when they were younger, early teens let's say. Programming requires a fair amount of accumulated experience in order to get things done - there is no magic bullet because there are just a lot of things to learn.

But, once you've learned a sufficient variety of languages (as long as they are from different paradigms), it becomes much easier to learn a new one. It even becomes fun to learn a new one. Hence programmers tend to know several languages.
I don't disagree with you on this but you are missing the point. You still need to master finance, financial engineering and the "market plumbing" - by the way not teached at any school. Add that up and I think the analogy of the brain surgeon and heart surgery is a valid one !
 

Shantanu Kumar

Active Member
#11
I don't disagree with you on this but you are missing the point. You still need to master finance, financial engineering and the "market plumbing" - by the way not teached at any school. Add that up and I think the analogy of the brain surgeon and heart surgery is a valid one !
Yeah many people have pointed out that in general there is lack of jobs. So employers can ask whatever they want as they have a large pool of candidates. This is why the requirements keep increasing every day.
 

amanda.jayne

Active Member
#12
Add that up and I think the analogy of the brain surgeon and heart surgery is a valid one !
Hardly.

Handling big data and developing meaningful models and analytics transcends academic notches on ones bedpost.

In the end it's all just numbers - the units tend to blur.

Focus on one aspect and be better than most and you will fare just fine.
 
#13
I had an informal meeting with HH three months ago. I was told that knowing 5 to 6 programming languages is a new norm if one needs a job as Quant.

Add to that, Signal Processing, Information Theory, Artificial Intelligence and Machine Learning is also gaining prominence when employers look for potential Quant recruits.
 
#14
I had an informal meeting with HH three months ago. I was told that knowing 5 to 6 programming languages is a new norm if one needs a job as Quant.

Add to that, Signal Processing, Information Theory, Artificial Intelligence and Machine Learning is also gaining prominence when employers look for potential Quant recruits.
If you legitimately have all those skills then you won't need a HH.
 
#17
Hi can anyone enlighten me on the usage of R as comparing to C++ in designing high frequency trading/ intra day trading?

Questions:=
1) Since R is a single threaded mode and C++ is multi threaded mode, wouldn't anyone here agreed with me C++ is a better choice to design high frequency trading/ intra day trading as compared to R?

Thank you for your kind advice.
 

nkabir

Active Member
#18
Hi can anyone enlighten me on the usage of R as comparing to C++ in designing high frequency trading/ intra day trading?

Questions:=
1) Since R is a single threaded mode and C++ is multi threaded mode, wouldn't anyone here agreed with me C++ is a better choice to design high frequency trading/ intra day trading as compared to R?

Thank you for your kind advice.
R and C++ occupy different niches in a developer's tool-chest. R is a very high level language (effectively a DSL) that gives its users a broad collection of documented and tested tools for statistical analysis. Most importantly, it's extremely productive for testing hypotheses quickly. Being able to formulate and validate a hypothesis quickly and repeatably is critical when tackling hard problems. C++ is a low-level language. Although it provides constructs like classes and templates, the core specification deals with abstract data structures and algorithms rather than any particular problem domain. Before considering execution speed, you first need to establish that you're solving the right problem. To do that, you need to conceptually understand the problem and the problem domain. If you try to tackle the complexities and quirks of a low level language at the same time, you may end up with neither an understanding of the problem nor a solution.

In short, this is a false dilemma. Use both.
 

Ian Kaplan

Active Member
#19
Great answer, nkabir. Both insightful and well written.

I am in the Masters program at the University of Washington, which is a hotbed of R programming. I've been thinking about the issue of R and deployment (not in high frequency trading, however, that's another issue).

As you note, R is great for working out the algorithm, back testing and proving the concept (with nice graphics). But then what do you do when you want to deploy? If you write the deployed application in Java or C++ you may have to implement at least some of the math that is in the R libraries. In some cases this can be a daunting task, since some of the R libraries are written by people who pioneered the mathematical technique.

I think that a good choice for deployment may be Python (if your application is not time critical in the sense that high frequency trading is). Next to R, Python seems to have the most extensive math libraries and there are quant libraries that are now available.

Python can also be linked to Java (Python can be compiled into Java byte code) so in the (increasingly rare) case where there is functionality in Java that doesn't exist in Python, you can build that part of the application in Java.
 

nkabir

Active Member
#20
Python can also be linked to Java (Python can be compiled into Java byte code) so in the (increasingly rare) case where there is functionality in Java that doesn't exist in Python, you can build that part of the application in Java.
Thanks for the kind words, Ian. I did not want to divert the question off topic but, I agree, Python fits the high level sweet spot while retaining its versatility as a general purpose language. I teach Python in my course and use it extensively at my firm. With libraries like Pandas, API integration with Amazon and Google, easy unit-testing libraries, flexible web frameworks, and quick integration with the Unix shell, it has broader utility and better long term prospects than R.
 
Top