# How to Learn Algorithmic Trading: Part 3

Third in a series on learning quantitative / algorithmic trading, this post focuses on financial modeling and analysis, assuming understanding of financial mathematics from Part 2 and overview of quantitative trading from Part 1. After digesting these, readers should be capable of both building interesting systematic trading systems and understanding microstructure dynamics that drive modern market making (sell side) and large block trading (buy side).

Thanks to awwthor, quant.this, Josh Ulrich, Gappy, and Bjørn for their comments and recommendations on the original post. As with the preceding two posts, the following is intended to inform *retail quantitative trading with a bias to equity, exchange-traded derivatives, and FX*.

Begin with standard introductory financial time series asset dynamics, volatility, and forecast modeling:

- Analysis of Financial Time Series, by Tsay: standard applied time series text for financial econometrics
- Market Models: A Guide to Financial Data Analysis, by Alexander: excellent introduction to financial modeling and forecast
- Asset Price Dynamics, Volatility, and Prediction, by Taylor: classic text on financial modeling and forecast

Proceed to modern portfolio theory and financial engineering:

- Modern Portfolio Theory and Investment Analysis, by Elton
*et al.*: standard text on modern portfolio theory - Options, Futures and Other Derivatives, by Hull: standard reference for introductory financial engineering
- Active Portfolio Management, by Grinold & Kahn: standard introduction to quantitative portfolio management by the BGI guys who invented it
- Principles of Financial Engineering, by Neftci: intermediate financial engineering

Continue on to volatility for options and correlation / dispersion for arb:

- Volatility and Correlation, by Rebonato: excellent coverage of volatility and correlation
- Volatility Trading, by Sinclair: volatility arbitrage by a retail practitioner
- Volatility Surface, by Gatheral: theoretical coverage of vol models, by well-known researcher
- Options as a Strategic Investment, by McMillan: classic introductory text on derivative hedging and volatility trading
- Option Volatility & Pricing, by Natenberg: dated practitioner introduction to volatility trading

Finally, delve into high-frequency & market microstructure to enjoy foundations of modern buy and sell sides:

- Trading and Exchanges: Market Microstructure for Practitioners, by Harris: practitioner introduction to stylized financial microstructure effects
- An Introduction to High-Frequency Finance, by Dacorogna
*et al.*: theoretical and dated practitioner introduction to HF, with emphasis on FX - Empirical Market Microstructure, by Hasbrouck: intermediate equity market microstructure, with coverage of standard theoretical models
- Microstructure Approach to Exchange Rates, by Lyons: intermediate FX market microstructure, covering both theory and empirical models (bit dated)
- Market Microstructure Theory, by O’Hara: classic introduction to microstructure theory; now dated
- Optimal Trading Strategies, by Kissell and Glantz: practitioner introduction to market impact and optimal execution

From here, readers can happily delve into the journal literature.

### Trackbacks

- How to Learn Algorithmic Trading « Quantivity
- How to Learn Algorithmic Trading: Part 2 « Quantivity
- Unmasking the Mystery of Machine Learning | William Victor's Blog
- Mean Reversion Redux « Quantivity
- Market Microstructure에 관심이 있는 분들은? | 그대안의 작은 호수
- Top 25 Articles on HFT and systematic trading « Software Trading
- How to Learn Algorithmic Trading | (inter [related])
- Resources for Quantitative Trading | Math Trading

You are the light in the dark. Thanks.

@Frank: thanks for your kind comment.

You should also include one by Potters and Bouchaud…

@Gaurav: thanks for your comment. I agree, and will be including Bouchaud’s best econophysics articles in my forthcoming post on seminar journal articles. I enjoyed Fluctuations and Response in Financial Markets enough to warrant a dedicated post.

I’d have left out Norvig in part 2, and most of part 1 (except Lefèvre), but conspicuous in its absence is Barry Johnson’s book, “Algorithmic Trading and DMA: An introduction to direct access trading strategies” -best thing I’ve read all year, and the best thing anyone wanting an intro to this subject can read.

http://www.algo-dma.com/

Completely agree- Johnson’s book is very well written. Norvig is a good comprehensive intro to AI though so I’d keep that in Part 2. Great list overall though!

@Scott: agreed; publication was subsequent to blog posting. I will update the original to include; and may write a review, if interest warrants.

Not sure what it the purpose of this but let’s be realistic here.

The post suggest one should learn derivatives pricing, portfolio management, market microstructure & HF. These are all distinct topics and after years of working in quantitative finance I have yet to see someone who’s actively using tools from all these subjects.

All are large areas where one could spend a lifetime learning and newbies will be better off picking one of them and learning it really well rather than scratching the surface of all of them.

@numtech: thanks for your comment. I agree: modern quant strategies are, due to specialization, mostly narrow dives into only one of these topics. That said, deep and beautiful interrelationships (both mathematical and financial) exist between numerous topics which benefits some holistic understanding. Also, a secondary intent is to illustrate the breadth and depth of modern quant finance (which is often surprising to folks outside the field, who still think of investing/trading as either fundamental/index or manual day trading).

I agree, this information is misleading and unpractical. The author does not seem to know much about the field. It will take years to read and comprehend all those textbooks which are a hodgepodge of financial/mathematical books that cover way too much information. A solid mathematical background through BS or sometimes PhD is sufficient in most cases to find a job in algo trading. The rest is learnt on the job.

@sarah: from perspective of an entry-level job, BS in CS is in greater demand today (which includes more than enough math foundations). That said, assessing the minimal knowledge necessary to quality for an entry-level job was not the intent of the post.

That was a generous and insightful post – much appreciated. If I were looking for one or two books that would attempt to explain some of the flaws in traditional technical analysis and then go on to introduce and explain modern quantitative methods that replace those methods, what would you suggest?

With Thanks -

@Jeff: I am not aware of such a text, as audiences of the two camps are fairly distinct. Dacorogna

et al.comes to mind (albeit dated), as it provides a decent conceptual bridge between the two worlds through its treatment of: convolution operators (Ch. 3), volatility processes (Ch. 8), and algo-driven trading models (e.g. Ch 11). By no means perfect match to your request, but at least gives a taste.Many Thanks.

All the Best,

Jeff

Just come across this list. Before I respond, some background might be helpful. I’ve worked at a (very) successful algorithmic trading fund in England since graduating with a PhD in theoretical physics three years ago. I’m still not an expert in the area but I think my practical experience in the field lends some credibility to my views.

I simply cannot imagine *anyone* reading all of the books you’ve mentioned in this and preceding posts on how to learn algo trading, never mind actually becoming an expert in them. I’m reasonably smart but I’d struggle to cover, say, Tsay’s book on time series analysis in a year. In my opinion, it’s quite ridiculous to suggest that reading more than a handful of these books is necessary for anyone to have a career in algorithmic trading.

*Nobody* can be an expert in more than a handful of the areas you’ve suggested, nor should they attempt to be. If we find that we need someone who’s an expert in machine learning or DSP, we simply look for an expert in machine learning or DSP. We don’t waste valuable time searching the world for someone who knows everything.

For the benefit of anyone who’s read this list and felt disheartened at the *massive* amount of work it implies, the best advice I can give on how to get a job in this area is as follows:

1) Get as good a degree in physics/mathematics/computer science as you possibly can. (It doesn’t particularly matter if you’ve gone to Oxbridge or an Ivy League college, although that is obviously a help in terms of obtaining contacts.)

2) Learn to program. In addition to becoming familiar with the basic syntax of, say, C++ and Java, learn about fundamental data structures, algorithms, and concurrency. Anyone can do this in about six months to a year of hard work.

3) Learn at least one high-level language. My personal preference is R, particularly now that it’s becoming really powerful at tasks that require large-memory support and parallelism, but Matlab’s fine too.

4) Try to get some practical work experience coding before you apply for jobs. Demonstrable experience in open source or hobbyist projects is also a decided advantage. (Having said that, don’t be too disheartened if you don’t have a massive amount of this kind of experience; most people will quickly pick up the required skills on the job simply by being surrounded with people who can answer your questions.)

5) Learn as much about statistics as you can. This is particularly important for physicists since, sadly, statistics doesn’t seem to be an important component of many physics degrees any more.

That’s really all there is to it!

@B Martin: thanks for your comments–which I agree, as it pertains to getting a job. As commented above, intended purpose of this post more pedagogical than professional—and thus not a guide to getting an entry-level algo trading job, for which a solid CS degree is sufficient. To emphasis this, a clarification of intent has been added to Part 1.

Also, for future comments, please use a valid email address.

I run a HFT firm and these are all great recommendations, I will check out the ones I haven’t already read, especially regarding time series. I think to develop new strategies it is good to read a little bit of everything.

People at large established firms have a different learning ‘payout’ perhaps, in those firms it is indeed more useful to be very practical and have expertise in one area rather than play around with new concepts.

Is “R” practical for a small firm? any resources anyone can recommend for getting up to speed using this for financial data?

@Scott: thanks for your comment; I equally concur with your comments.

R is practical for any sized firm, especially those without Matlab legacies. Big data and modern large-scale machine learning / data mining is built on R, and thus standard for those communities. Lots of books are available on R.

Feel free to email me privately (including general description of with you are interested to do), and I am happy to provide more specific recommendations.

Is R more popular than Weka? Which do you think will be better to know in 5 years? Or is there an even better third alternative? I just recently started trying to learn Weka, and I kind of like it. But I don’t want to hop on a boat that’s inevitably sinking.

@Ryan: No one answer; depends what task you are trying to solve.

Here are a few observations, for which undoubtedly others will have differing experience:

I’ve done some data mining with both Weka and R. Weka is more strictly focused on the machine learning domain than R. R has a broader language and handles time series and also appears to be slowly replacing Matlab in the quant jobs ads. I’d highly recommend porting your knowledge to R, its very easy to learn if you read through the “Introduction to R” on the project page.

thank you so much for your well written 3 parts guide, this is something I’ve been looking for for a long time.

hi guys, having worked in this field of Algo / Quant Trading (am a quant trader to present), I couldn’t resist but comment about this thread.

Kudos to the author for trying to help; but unfortunately I will give more kudos to B.Martin.

100% agree with Martin; and add the following key success criteria for being al Algo trader:

- At least a degree in one of the following (listed in order of importance): Computer Science / Econometrics / mathematics / Engineering

- Excellent programming knowledge experience of an object oriented language. In order of importance: Java, C#, and C++. If you are a noob; do Java; and avoid C++. It is not efficient to spend 10x efforts to do the a job in C++ vs Java

- Excellent knowledge of a statistical package; starting with R or Matlab, or Excel

- Some of the books suggested by the author of this blog:

- Statistics, and Timeseries analysis

- Market microstructure

- Technical Analysis and Money management

If you read all the stuff suggested by the author; I estimated that you will need about 10 years to finish them. I also doubt that you will get a job; as you will be too old for the job by the time you get there.

The most important message I want to express here is; KISS (Keep it simple smart). You don’t really need to read all the mumbo jumbo of the books listed here; especially stuff to do with Artificial Intelligence and the like (I am indeed an expert in AI, and brave enough to say it..:)

The journey is indeed a lengthy one. IMHO; if you are a noob; it will take a couple of years or more to get successful.

Start building your knowledge step by step. Adding a block once in a while.

If you are after a job in algo trading; get some experience; even if it means working for free.

If you are after trading for a living; start the journey with simple stuff; and build on it as you go.

Alpha

Thanks for the good guidance Alpha for the neebees in this field. Well .. my self I do programming for living and it’s my passion. And want to get into A.I. (finance) and Algo trading. Got expertise in Java now searching now for resources (books) those get me onto board of Algo trading Job. To get my hands dirty in this field I want to build a small trading system (for improving my skills in this area). But my confusion is what books I have to read to get the functional knowledge. Do you please send me those list (if possible). Thanks