In this article I want to show you how to apply all of the knowledge gained in the previous time series analysis posts to a trading strategy on the S&P500 US stock market index. We will see that by combining the ARIMA and GARCH models we can significantly outperform a "Buy-and-Hold"(...)
In this article we are going to consider the famous Generalised Autoregressive Conditional Heteroskedasticity model of order p,q, also known as GARCH(p,q). GARCH is used extensively within the financial industry as many asset prices are conditional heteroskedastic. We will be discussing conditional(...)
In the previous set of articles (Parts 1, 2 and 3) we went into significant detail about the AR(p), MA(q) and ARMA(p,q) linear time series models. We used these models to generate simulated data sets, fitted models to recover parameters and then applied these models to financial equities data. In(...)
This is the third and final post in the mini-series on Autoregressive Moving Average (ARMA) models for time series analysis. We've introduced Autoregressive models and Moving Average models in the two previous articles. Now it is time to combine them to produce a more sophisticated model.(...)
In Part 1 we considered the Autoregressive model of order p, also known as the AR(p) model. We introduced it as an extension of the random walk model in an attempt to explain additional serial correlation in financial time series. Ultimately we realised that it was not sufficiently flexible to(...)
In the last article we looked at random walks and white noise as basic time series models for certain financial instruments, such as daily equity and equity index prices. We found that in some cases a random walk model was insufficient to capture the full autocorrelation behaviour of the(...)
In the last article of the Time Series Analysis series we discussed the importance of serial correlation and why it is extremely useful in the context of quantitative trading. In this article we will make full use of serial correlation by discussing our first time series models, including some(...)
In last week's article we looked at Time Series Analysis as a means of helping us create trading strategies. In this article we are going to look at one of the most important aspects of time series, namely serial correlation (also known as autocorrelation). Before we dive into the definition(...)
Although I've spent the majority of this month researching time series analysis for the upcoming article series, I've also been working on QSForex attempting to improve the API somewhat. In particular I've made the interface for beginning a new backtest a lot simpler by encapsulating(...)
Over the last few years we've looked at various tools to help us identify exploitable patterns in asset prices. In particular we have considered basic econometrics, statistical machine learning and Bayesian statistics. While these are all great modern tools for data analysis, the vast majority(...)
This is a short update to inform current and prospective readers of Successful Algorithmic Trading that the Python code in the book has been updated to be fully compatible with both Python 2.7.x and Python 3.4.x. In addition I've created a requirements.txt file that allows you to easily(...)
It's been a while since my latest Forex Trading Diary update. I've been busy working on the new QuantStart Jobs Board and so I've not had as much time as usual to work on QSForex, although I have made some progress! In particular I have been able to add some new features including:(...)
In the previous article on Bayesian statistics we examined Bayes' rule and considered how it allowed us to rationally update beliefs about uncertainty as new evidence came to light. We mentioned briefly that such techniques are becoming extremely important in the fields of data science and(...)
In a previous article I outlined the best degree courses to take in order to help you get a job as a quant. I also mentioned that to discuss the best UK universities was an article in itself. This is that article! Coincidentally, the QS World University Rankings for 2014/15 have just been released(...)
Yesterday I published some important changes to the QSForex software. These changes have increased the usefulness of the system significantly to the point where it is nearly ready for multi-day tick-data backtesting over a range of currency pairs. The following changes have been posted to Github:(...)
I've been busy working on the open-source QSForex system over the past week. I've made some useful improvements and I thought I'd share them with you in this forex trading diary update. In particular, I've made the following changes, which will be discussed at length in this(...)
In the previous article we discussed Monte Carlo methods and their implementation in CUDA, focusing on option pricing. Today, we take a step back from finance to introduce a couple of essential topics, which will help us to write more advanced (and efficient!) programs in the future. In subsequent(...)
I'm often asked by individuals in high-school or sixth-form (for those of us in the UK!), as well as those contemplating heading back to university, as to what the most appropriate degree course is to take in order to become a quant. If I had to pick one course to cover all aspects of quant(...)
One of the most problematic areas of quantitative trading is optimising a forecasting strategy to improve its performance. Seasoned quant traders realise that it is all too easy to generate a strategy with stellar predictive ability on a backtest. However, some backtests can mask the danger of an(...)
In today's entry of the Forex Trading Diary I want to discuss the longer term plan for the forex trading system. In addition I want to outline how I've used Python's Decimal data-type to make calculations more accurate. To date, we've been experimenting with the OANDA Rest API(...)
In this article I want to discuss one of the most important and tricky issues in machine learning, that of model selection and the bias-variance tradeoff. The latter is one of the most crucial issues in helping us achieve profitable trading strategies based on machine learning techniques. Model(...)
In the last Forex Trading Diary Entry (#1) I described how to build an automated trading system that hooks into the OANDA forex brokerage API. I also mentioned that the next steps included constructing a portfolio and risk management overlay for all suggested signals generated by the Strategy(...)
I previously mentioned in the QuantStart: 2014 In Review article that I would be spending some of 2015 writing about automated forex trading. Given that I myself usually carry out research in equities and futures markets, I thought it would be fun (and educational!) to write about my experiences of(...)
This is the first article in what will become a set of tutorials on how to carry out natural language document classification, for the purposes of sentiment analysis and, ultimately, automated trade filter or signal generation. This particular article will make use of Support Vector Machines (SVM)(...)