Automated Trading: Sports Markets
Developing profitable automated trading strategies that operate on sports markets
  • 2017-06-01
  • Python
  • Machine Learning
  • Data Science
  • Trading
  • Project Overview

    Trading on sports markets is an experience that shares many common aspects with trading on financial markets. Invdividuals can buy and sell sports bets on an exchange, with the opportunity to make a profit regardless of the outcome of the event.

    Since the first quarter of 2017, I have been working on devising and implementing automated trading strategies that can operate on these markets with no human intervention. On May 24, I went live with the first phase of my first automated trading strategy that operates on horse racing markets in-play.

    I started with a fund of £100, split into 10 units of £10 each. The fund will be known as the DBC fund, the statistics of which can currently be seen on the homepage. Given a scenario where individuals can invest into a fund managed by this strategy by purchasing "units", the challenge is to see how the value of the units will rise over time.

    At the present moment, each unit is worth: £23.458 (+134.58%). The PnL to date can be seen below.

    Sports Trading in a Nutshell

    Sports trading involves taking two types of positions on the market, which relate to going long (buying) and short (selling).

    It is evident that in order to profit, you need to Lay low, and back high. The price at which you take these positions is determined by various factors, though it usually indicates the market's general perception of the likilehood of an event occuring.

    For example, a horse that is expected to win a race will have a low price at the beginning, due to its high liklehood of coming first. If the horse runs poorly during the race, its price will increase as the expectation of it to win will decrease. This change in its price over the lifetime of the race can be exploited by backing high and laying low, or laying low and subsequently backing high.

    Automated Trading

    Automated trading involves identifying opportunities where a price is expected to decrease or increase over a period of time, and hence the spread can be exploited for a profit. This guarantees a positive return on investment, regardless of the outcome of the sports event. In the event that the expected change in price does not occur, and in fact moves in the opposite direction, it is the responsibility of the trading bot to exit the position with minimal loss.

    Automated trading also makes trading on large volumes of events a possibility. The graph below shows the number of horse races traded per day since going live.

    Use of Machine Learning

    During this time period, I have been collecting data that will eventually permit analysis through machine learning. A classification algorithm could be used to identify scenarios where a particular movement in price is highly likely to occur, and therefore can be taken advantage of.