Wednesday 4 January 2017

Machine Learning for Trading (Part 2)

Machine learning is sometimes conflated with data mining, where the latter subfield focuses more on exploratory data analysis and is known as unsupervised learning. I like to think of Data Mining as looking for nuggets of gold (i.e. new information) in the depths of the Earth (i.e. the data).

Machine Learning is more directed, we know more or less what we are trying to achieve (e.g. a prediction or a classification) and we use the machine learning techniques to find a way to do it.

However, this distinction could also bee seen purely as nuance.

Let's first look at what we want to achieve. For example:
  • A prediction of future price (e.g. in the next 1 hour, EUR/USD will be 1.0500)
  • A prediction of future price direction (e.g. in the next 1 hour, EUR/USD will go up)

The first is a regression task, the latter is more of a classification task.

Of course, predictions don't have to be just about price. You could also predict volatility, daily range or a bunch of other variables. Classification tasks could include things like: will this be a trend day or a range day? Will the low of the day hold, or will there be a break-out?

Now, let's look at some ways we can start to tackle this. Machine Learning / Data Mining has many approaches, from simple linear regression, to decision trees, to neural networks and genetic algorithms.

I've looked at neural networks in the past. They are fantastically interesting tools, but also very hard to get right, computationally expensive, and opaque (i.e. you never really understand how it works). Genetic algorithms are great for optimisation and searching multi-dimensional spaces, but they are also computationally expensive and can be difficult to construct and use. I shall not be looking at either of these in this series.

No comments:

Post a Comment