You are on page 1of 18

1

Evaluation of Algorithmic Trading


Strategies with Machine Learning and
Data Mining
Written by Zsolt Bitvai and Kushal DSouza
Supervisor: Dr Eleni Vasilaki

Darwin Research Proposal, University of Sheffield, 2011


2

Table of Contents:

Evaluation of Algorithmic Trading Strategies with Machine Learning and Data Mining
Abstract
Chapter 1: Introduction
Chapter 2: Statement of the Problem
Chapter 3: Review of the Literature
3.1:Algorithmic Trading
3.1.1:Types of Trading Algorithms
3.1.2:Evolution of trading algorithms
3.1.3:High frequency
3.1.4:Day trading
3.2:Execution Methods
3.3:Data Mining
3.3.1:Methods used for data mining
3.3.2:Neural Networks for data mining
Chapter 4: Methodology
4.1:Evaluation framework
4.2:Frequency of Trading
4.3:Programming language
4.3.1:Popularity
4.3.2:Performance
4.3.3:Productivity
4.4:Plan
References
Appendix A:Human Element

Abstract
In this project, we evaluate known trading algorithms for automatic market prediction and
attempt to find correlation between external factors and market movements. We collect
training data from bitcoin markets, such as MtGox, in the form of historical trades and run
machine learning algorithms on it, such as feed forward neural networks. We minimize the
error function and compare the prediction against known trade prices and volumes in the
training set. We implement several algorithms and study how accurate their predictions are
with various parameters, but without data over fitting. In end, we have an objective measure
of performance of various trading algorithms by our criteria.

Darwin Research Proposal, University of Sheffield, 2011


3

Chapter 1: Introduction
In the 21st century, computers are transforming the electronic stock and currency
markets[8]. Algorithmic trading or automated trading, also known as algo trading, black-box
trading or robo trading, is the use of electronic platforms for entering trading orders with an
algorithm deciding on aspects of the order such as the timing, price, or quantity of the order,
or in many cases initiating the order without human intervention[7]. Brokers standing on the
market floor shouting under pressure in order to execute a trade before the competitors are
being replaced by computerized high performance algorithms. Innovations come from the
fields of computer science, mathematics, statistics and physics.

Darwin Research Proposal, University of Sheffield, 2011


4

Chapter 2: Statement of the Problem


Many trading algorithms are kept private owing to the assumption that once public, they can
no longer profit from a particular market inefficiency. In addition, the random walking market
hypothesis states the stock markets cannot be predicted. This seems to be invalid in view of
the fact that several trading algorithms can predict market movements with various certainty,
some even go as high as 90%.

A key question is whether we can accurately predict how a market will behave automatically
using methods from machine learning and data mining. Clearly this is unlikely to work if
we concentrate solely on modelling market statistics (few arbitrage opportunities exist as
other automatic traders will eliminate these immediately). However, by looking at other
data sources to find correlates with market movement we can develop both more accurate
models of markets while also discovering useful latent information in our data. This project
examines algorithms for modelling markets and, more generally, real-valued time series data
and describe how markets operate and, particularly, attempt to predict market movement
over time. The key scientific question is whether external influences correlate with markets
and how existing algorithms perform.

This project starts by implementing a regression technique for predicting market movements,
based on the literature. Then, this algorithm is applied to a range of different markets
and measurements (price movement, volatility, and trading volume) to see how well they
generalise. The evaluation will be based on historical data, using market movement time
series. Part of the challenge of using this data is processing vast amounts of data.

The algorithm might rely on Bitcoin to conduct its virtual trading. Bitcoin is new open source
Internet currency. Bitcoin exchanges function digitally with no down time. Transactions are
carried out distributed, with no central supervision, at almost no cost, wholly anonymously
and near instantly. This is a very interesting environment to study, unlike any other market
places and may have the potential to revolutionise algorithmic trading.[16]

The research attempts to answer the following questions:

What features should the algorithm have.


What data sources should it take into account and how should it behave on that data.
What should the decision process be.
How accurate is the algorithm.
What is the optimal configuration.
How to measure performance.
How to predict volatility, price and volume of trade across multiple markets.
How to make the algorithm fast enough to adapt to changing markets in real time.
How to process large quantities of data effectively. I.e. financial data streams from
multiple markets.

Darwin Research Proposal, University of Sheffield, 2011


5

Chapter 3: Review of the Literature

Nowadays a large number of assets are traded electronically such as stocks, bonds, cash,
certificates or derivatives. The fundamentals of market mechanics have not changed. Sellers
need to find buyers for their assets. Likewise investors need to be able to buy and sell
assets easily. The ease at which an asset is sold is called its liquidity. It signifies the ability of
an asset to be sold without a significant price movement and minimal loss in its value. Thus
the more liquid a market is, the more active it will be making it easier and cheaper to trade
in[9, page 3]. In algorithmic trading, a computer system is responsible for the execution of an
order involving the buying or selling of a given asset. So a computer program follows a set of
preset rules to determine how each order should be executed.

Over the years, many different styles of investing in assets have been developed which in
turn has resulted in the development of a large number of theories of investment. The main
aim of investment theory is to maximize profit and minimize risk. One of the best known
investment theories is the Market Portfolio Theory (MPT) which models the profits from the
returns in a portfolio of financial assets.[10] Whilst building this portfolio, there are some
factors that need to be taken into account. When buying and selling assets, the main factors
that are taken into account are the associated cost of the transaction and the risk of the
transaction.

3.1:Algorithmic Trading
A trading algorithm is essentially a computerized model which tells us the steps required in
order to trade an order whilst keeping in mind the continuously changing market conditions.
This model consists of a set of rules which can be complex. In order to start this project, we
will decide on a particular algorithm. The aim of the project is then to break down the rules
of the algorithm and find ways in which these rules can be improved in order to make the
algorithm more efficient or accurate.

3.1.1:Types of Trading Algorithms

There are a range of trading types and some of them are explained below:

Portfolio Trading provides a means to trade multiple assets rather than having to trade
them individually. In systematic trading, the same strategy is continuously adopted for
trading. Quantitative trading enforce rules based on quantitative models. Whilst algorithmic
trading only executes order, quantitative trading also instigates trades. Thus in quantitative,
trading a wider range of goals needs to be focused on. High Frequency Trading is similar
to quantitative trading only differing in the times scales, which can be hours, seconds or
even fractions of a second. High frequency trading aims to take obtain short term gains by
taking advantage of price discrepancies. Statistical arbitrage is conducted by analyzing a
fusion of both real time and historical data. The goals are similar to High Frequency Trading,
however the time spans are much longer.[9, page 9]

Darwin Research Proposal, University of Sheffield, 2011


6

3.1.2:Evolution of trading algorithms

There exist a large number of trading algorithms at the present time. However, the
algorithms can be broken down into some basic types depending on certain driving forces
behind the algorithms. Some of the main driving forces for algorithms are the schedule,
predetermined benchmark, dynamic benchmark and the liquidity that can be achieved.

The very first algorithms that emerged were quite simple in the sense that they simply
focused on meeting specific benchmarks by slicing the orders. Some of the initial algorithms
were based on time weighted average price and volume weighted average price. The
driver behind these algorithms was mainly the scheduling. However, these algorithms were
extremely vulnerable as they were predictable and could be taken advantage of by other
individuals participating in the market. Thus the trading algorithms evolved to incorporate
more randomisation.[9, page 13-15]

The second generation of algorithms were mainly based on the Transaction Cost Analysis.
Transaction cost is the cost incurred whilst making a transaction. For example, commission
paid to the broker. The algorithms started to become more price and risk sensitive in this
generation. These algorithms tired to tackle something coined as the trader's dilemma, i.e.
trading too fast incurs high market costs whereas trading too slowly involves considerable
risk.[9, page 13 - 15]

Many of the first generation algorithms focused mainly on the best bid and offer quotes.
However, nowadays as the order book data is becoming increasingly available, the
algorithms are trying to incorporate this data with the hope of making the process more
liquid.

3.1.3:High frequency

High frequency trading can have significant effects on markets, by increasing volatility.
They conduct as much as 70% of all global trade and can cause crashes and extreme price
changes. They run on servers with ultra-low latency with connections to multiple stock and
exchange markets via their application protocol interfaces to make decisions in a split of a
second on trading. They aim to model the market using mathematics and physics instead
of studying historical data as they focus on extremely short-term temporary trades that they
carry out many times in a second. Strategies include Market making, Ticker Tape trading,
Event Arbitrage, Layering, High-frequency statistical arbitrage.

3.1.4:Day trading

Day trading algorithms execute orders much less frequently than their high frequency
counterparts do. They implement multiple strategies at once with different signals and

Darwin Research Proposal, University of Sheffield, 2011


7

unify them before trading. Most of them combine elements of artificial intelligence,
machine learning, natural language processing and data mining. They analyse past market
data, social media events and other factors in near real time to find patterns and trends
using an auto-regressive learning model with gradient descent and thus they attempt
to predict market movements. Their strategies are tested with various configuration on
high performance grid computers and the results are fed back in order to improve their
configuration. This way it is possible to train the algorithms and evolve them as they gather
and analyse more and more data.[2]

Promising research has been done on automatic market prediction in recent years. Most
researchers have focused on neural networks to train algorithms. In particular, feed
forward and multi-layer networks with back propagation proved successful. A potential new
experiment could be the application of deep belief networks for this task. Sometimes, these
learning algorithms have built-in limitations with regard to their accuracy. Therefore, genetic
programming can evolve non-stationary distribution trading algorithms by iterations.[5]
We can make use of stochastic gradient descent learning and filtering approaches to
process the data in a single pass and continue to update the model as more data becomes
available[5].

Algorithms for machine translation can also be applied to trading. For example support
vector machines, linear regression or Markov Chain Monte Carlo are widely used. Related
fields include information theory and natural systems modelling. From physics, fractals and
random matrix theory could be potentially useful for this project.[5]

Renaissance Technologies, a fully automated quantitative trading firm, has achieved good
progress with applying speech recognition technology and digital signal processing, such as
Kalman filters, Hidden Markov Models and Hilbert-Fisher transforms to market ticker data.
That is because many researchers hypothesize that stock market time series resembles a
signal. Surprisingly enough, pattern recognition and voice transcription also has applications
in market analysis, while the more conventional statistical moving averages, and mean
reversion can be used for simplistic prediction.

3.2:Execution Methods
The main factors that affect the execution of orders are the efficiency, usability and cost.
Algorithms generally tend to be more efficient than traders as they can handle a large
number of orders in extremely small time periods. However, when it comes to usability,
the extremely complex models used by algorithms can be confusing to some users.
The usability is determined by the amount of direct control a user has on a trade. The
transparency, changing market conditions and anonymity also affect the usability.

3.3:Data Mining
Data mining is the process of analyzing large data sets in order to discover patterns within

Darwin Research Proposal, University of Sheffield, 2011


8

these data sets. It incorporates techniques from areas such as artificial intelligence and
machine learning. Many of the data mining techniques can be purely statistical in nature. In
markets which are volatile many unpredictable and sudden shifts can occur. These shifts
can make the prediction of markets based on statistical analysis of historical data very
hard. This is where data mining becomes very useful. Data mining techniques can take into
account a much wider range of factors in their prediction models. Data mining techniques
are also suited to the market conditions prevalent nowadays, wherein trading is fragmented
into multiple venues.

Data mining has three main applications in trading and finance. These applications are
prediction[11], finding relationships and generating trading strategies. There are various
data mining techniques which can be applied to financial markets. Some of these are the
classification and clustering analysis, time-series mining, association rule mining etc. Some
of the data mining methods that come under these techniques are k-nearest neighbour,
Neural Networks, Genetic Algorithms, Decision Trees Base Reasoning and Mathematical
Programming. These methods will be explained briefly in the following sections.

We will first look at the precautions that must be undertaken when pursuing data mining
techniques. One must ensure that the quality of the data being used is good. Analysing data
that is of bad quality can produce obscure results. Therefore, one must ensure that any data
that is being used must be checked to make sure it adheres to economic standards. Checks
must be put in to ensure that any outliers are not discarded and missing data is excluded. It
is also important to check whether the results of analysing the data make economic sense.
We must also ensure that reasonably sized data sets are used and avoid over - fitting of
the data. Over fitting essentially means that the results of analysis work perfectly for the test
data selected, but once the same techniques are applied to real data, the results that are
obtained are not relevant. This mainly occurs when the model that is chosen for analysis is
fine tuned a lot so that it only works on the test data.[9, page 447]

3.3.1:Methods used for data mining

In this section, some of the methods used for data mining will be discussed briefly. One of
the methods used is the k-nearest neighbour algorithm. This algorithm classifies objects
based on their closest training examples in the feature space. Feature space can be thought
of as an abstract space where each object is represented as a point in n-dimensional
space. Another method used is known as the support vector machines(SVN). Given a
set of training data wherein data is classified as one of two categories, the SVN algorithm
tries to build a model that assigns data into one category or the other. Thus, it essentially
tries to seek a plane that optimally separates the data. There are also the evolutionary
computation algorithms that are based on Darwins theory of natural selection.
Evolutionary computation ensures that every successive generation of a population only
possesses those traits that enable the generative to survive, i.e traits that are successful.
Genetic algorithms mimic the process of natural evolution using techniques such as
inheritance, mutation, selection and crossover.[12]

Darwin Research Proposal, University of Sheffield, 2011


9

One of the other methods used for data mining is neural networks and we will be using
this method of price prediction during this course of this project. The reasons for our choice
along with the advantages of this particular method are discussed below.

3.3.2:Neural Networks for data mining

The human brain consists of a network of interconnected neurons. Information is passed


between these neurons as electronic symbols. Every neuron has branches called dendrites
which in turn connect to many other neurons. The connections between neurons are called
axons. On the provision of sufficient electric signal a neuron can become activated and pass
its information to other neurons. A neural network tries to mimic this behaviour of neurons
in the human brain. A neural network consists of a set of interconnect nodes wherein each
node mimics the behaviour of a neuron. For each node in a neural network, a weight is given
to each of the inputs for the node. This ensures that some inputs are given more importance
than others. An activation function is then applied to the provided inputs which results in an
output for the node.[14]

Due to the complexity of algorithmic trading and the time constraints present, we have
decided that the most feasible solution is to apply a trend/data mining strategy on different
markets and compare how this strategy performs in different market types. Eventually we
aim to apply this strategy to the bitcoin market and attempt to analyze and improve its
performance.

We have chosen to use neural networks as our data mining strategy[1]. Neural networks
have been used for stock price prediction for a while now. They are known for their ability to
deal with uncertain and insufficient data that can change rapidly in short periods of time. It
is already known that data from financial markets is always changing rapidly. Research has
shown us that neural networks have proved to be a very important tool for stock market price
prediction[13].

We plan to use back propagation in order to train our neural network so as to allow the
algorithm to make predictions with better accuracy. Back propagation is a means of teaching
neural networks how to perform a given task. Analysis has shown that neural network
algorithms that incorporate back propagation have the ability to predict with greater accuracy
than other neural network algorithms.[13]

Neural networks also have certain limitations. They require large data sets to train and
can produce unreliable results for complex networks[13]. However, for the purpose of this
project, the neural network that will be implemented will not be sufficiently complex so as to
make this an issue. We plan to implement this network on the bitcoin market which provides
us with easy access to a large amount of data.

Neural networks mainly consist of the architecture, the learning algorithm and the activation
functions used. The architecture or the model of the neural network defines how each of
the individual nodes within the network are connected to each other. The learning algorithm
is defined by the weights applied to each of the inputs on a particular node. The final part,

Darwin Research Proposal, University of Sheffield, 2011


10

that is the activation function defines the output obtained from each node respective to their
inputs.[14]

A perceptron is an example of the simplest kind of artificial neural network. It maps its
input x to an output f(x). The output is a binary value of either 0 or 1. A simple diagram of a
perceptron ( single node) is shown below.

Fig 3. Perceptron algorithm outline (source:[15])

In the above diagram, Figure 3, the weight w1 to w7 are applied to the inputs x1 to x7
respectively. After this, an activation function f is applied to the weighed sum of the inputs
which produces an output y. The above diagram represents a single node in a neural
network. A neural network consist of many such nodes. The output y will be passed along to
the next node in the series.

In the following section, we discuss the methods that we will use for back propagation.
Initially, we will divide our data set into test data and training data. When we are performing
the training of the algorithm, we will only work with the data from the training set. The output
that is obtained from our neural network algorithm will be compared to the target output
and the error is measured in the difference. With each iteration, the error declines as the
algorithm learns. If the learning rate is too big, the network might not find the optimum
solution which is the local minimum of the error function. Therefore, the learning rate should
decline with each iteration until no errors are below a specific threshold. The neural network
might not find the global minimum. To achieve that we need to combine it with genetic
algorithms that evolve over iterations. When learning takes place and errors are made, the
weight vector is updated. With each update the algorithm get closer to the optimum solution
with steepest gradient descent climb. We must ensure that we compare the output to the test
data as well to validate our learning and avoid over fitting the train data set. This is illustrated
in the diagram shown below wherein the error decreases over various iterations whilst using
the training data set(Figure 1). However, when the same algorithm is applied to the test data
set(Figure 2), we notice that after a certain point, the error starts to increase again. This is
an indication that over fitting has occurred and we will need to stop back propagation at the
point at which the over fitting has occurred.

Darwin Research Proposal, University of Sheffield, 2011


11

The diagram below illustrates our neural network model. D(t) represents inputs at a time t.
P(t) represents the predicted outputs at a time t. P(t) is equivalent to the input at time t+1.

We already know what D(t+1) is as this is available to us from the training data set. We can
thus measure the error of the prediction and its performance.

Darwin Research Proposal, University of Sheffield, 2011


12

Chapter 4: Methodology
The first strategy we developed is a simple multi layered perceptron algorithm. This is
a black box set up were we get the real time ticker data form markets, and run our rule
engine on it. One option to measure the accuracy and success of the algorithm is to take
a snapshot of the starting balance of the trading account, and compare that to the balance
after a period of time. We can directly determine how profitable an algorithm is this way.
However, profitability can vary based on the amount of time we run the algorithm and what
time the algorithm runs. For example, during recession the profits may be lower than during
boom. In addition, another issue with measuring profitability is the fact that whenever we
make a trade, that influences the market. Therefore, in order to accurately measure the
performance, our trading algorithm should also perform real trades on markets, which is not
feasible at this point due to limited funds.

Another option for measuring trading performance is to predict the market movements and
compare the prediction with the actual market movement from historical data. Our black box
trading algorithm does exactly that by minimizing the error function of the algorithm. We split
the historical trading data into test and train sets. We train our multi-layer perceptron on the
train set which consists of the earlier trades. Then we run on the test set, and predict the
price and volume at which the next trade is going to occur. We then compare the prediction
to the real test data.

4.1:Evaluation framework

The best way to test the algorithm is on high volatility financial markets. Because Bitcoin and
Second Life dollar markets are extremely volatile, they are a good match for the project. Our
system is programed in Java and runs on a server. It collects freely available streaming real
time market data from several bitcoin currency markets, including MtGox and Intersango and
saves the data to a database. Then, it loads the data a high performance grid computer to
replay market conditions and run a rules based pattern matching engine on it in parallel to
the data collecting program. Trade execution then is simulated and the results are stored
and compared to the original test data. Various trading strategies can be easily plugged in
to our rule engine. We study existing day trading algorithms and see where improvements
could be made and how they interact with each other when many of them run concurrently.

We can measure performance with different parameters, i.e. single market or multi market,
historical trades data size, unitized risk deviation, which is normalized standard deviation,
centralized bitcoin purse or distributed bitcoin purse. As we already have a framework
to work on Bitcoin Markets we can explore several stock markets with an open source
automated trading software called TradeLink[4].

4.2:Frequency of Trading
In addition, the determining factor in trade execution is latency and hardware for high

Darwin Research Proposal, University of Sheffield, 2011


13

frequency trading systems. Due to the face that this project does not have access to ultra
low latency connections to markets and nor to specialized hardware, the trading algorithm
implementation focuses on a larger time period. In addition, the high-frequency trading
sector is over-crowded while there are more opportunities at the day trading level. These
algorithms would trade from every minute to every hour or every day. Last but not least, high
frequency trading required specialized strategies such as flesh orders and insider trading
that are soon to be banned by regulators. Day trading algorithms on the other hand evaluate
historical data, mine it in order to find patterns, and then act on the patterns. This is more
suitable for the current aims of the project and it is easier to test our results.

4.3:Programming language
Trading algorithms are mainly implemented in two languages: C++ and Java/C#. This
section will compare the pros and cons of choosing one language or the other for our
system[3].

4.3.1:Popularity

C++ is the de facto standard for High Frequency Trading Algorithms. For other kinds of
trading algorithms C++, C# and Java are used. There's a trend for new systems to be
implemented in Java and C#, though older systems are still overwhelmingly implemented in
C++. In our sample survey on job sites, C++ had 1049 job posts, managed languages such
as Java and C# 580, and scripting languages such as VBA and Python 220.

4.3.2:Performance

C++ used to be faster language than Java/C# in 1995. However, with the newer release of
Java 6 and 7, Java has produced better performance benchmarks and many occasions
it ties with C++. With the help of Just In Time compiler, Java compiles directly to native
code. In addition it has excellent profiling support and managed code optimization. In C++
code optimization is performed manually, which can lead hard to optimize code and require
considerable amount of programming experience.

In terms of memory usage and management, Java can incur a delay in processing when its
garbage collectors kicks in. However, with sufficient memory resources available, this would
be less of an issue on server side when executing trades. In addition, day trading algorithms
are significantly less sensitive to trade executions times. Nonetheless, trade execution time
is still considered virtually equivalent in Java and C++ most of the time.

4.3.3:Productivity

Darwin Research Proposal, University of Sheffield, 2011


14

The fact that Java is a higher level managed language and it is generally more advanced
than C++, results in approximately a 20% productivity gain in programming. Java has auto
memory and resource management and by default prevents one of the most common
programming mistakes: pointer allocation and deallocation. It also has a clean domain level
implementation that is not polluted with low level memory management code, which aids
software abstraction and management of complexity.

Both authors have background in Java programming and are considered experts. On the
other hand, C++ is a new language for both of them. That means, it would take about 1
week to familiarize themselves with the syntax of C++ and obtain knowledge of intermediate
level. This is an optimistic view. In addition, it would take about 3 more weeks to learn
the various supportive frameworks for the language and get to know the community. That
means, the authors would be expected to learn unit testing, database management, server
side programming and computing frameworks in C++. Last but not least, the authors would
have to learn a totally new integrated development environment to at least intermediate level
that wouldn't match the effectiveness of the java IDE, Eclipse, considered a market leader.
Optimistically speaking, this would require one month of learning, while the authors may be
busy with other projects or university modules as well at the same time. The run time of the
research project is 6 months. This means that the authors would have to spend about 16%
of their time on learning C++. Due to the fact that the authors are already familiar with all
these concepts in Java, Java has a 20% opportunity productivity gain in this regard. Last but
not least, the difference between intermediate and expert knowledge also amount to at least
10% productivity gain if not more. All in all, Java has 1.2 * 1.2 * 1.1 = 1.58 that is minimum
58% estimated net productivity gain compared to C++.

4.4:Plan

All tasks are implemented iteratively. If one of the authors falls behind or fails to complete
a task, the project can still progress and useful findings can be drawn from intermediate
results. We plan by writing a simple trading bot to gather results from MtGox bitcoin market.
It saves all data to a database. We then plan to research various trading algorithms with
machine learning and data mining, in particular a neural network. We will implement a feed
forward network first, called the perceptron. We will then measure its accuracy in predicting
the bitcoin market movement, which strongly resembles stock market price movements.
We will attempt to minimize the error function of the algorithm without over fitting it the train
data. We then implement a support vector machine algorithm and similarly measure its
performance. We may implement further algorithms provided we get enough time to do so.
In the end, we are able to rank the efficiency of trading algorithms by our chosen criteria,
which is accuracy in market prediction.

Darwin Research Proposal, University of Sheffield, 2011


15

Darwin Research Proposal, University of Sheffield, 2011


16

References
1.Geoffrey Hinton. (2010). Introduction to Neural Networks and Machine Learning. Available:
http://www.cs.toronto.edu/~hinton/csc321/notes/lec2.pdf. Last accessed 05th Dec 2011.

2.Raja Velu, Ph.D. (2011). Algorithmic Trading and Quantitative Strategies. Available: http:/
/www-stat.stanford.edu/courses/documents/Stats242_2011.pdf. Last accessed 05th Dec
2011.

3.Wikipedia Community. (2011). Comparison of Java and C++. Available: http://


en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B#Performance. Last accessed
05th Dec 2011.

4.Open Source Community. (2011). Trade Link. Available: http://code.google.com/p/


tradelink/wiki/WhatIsTradeLink. Last accessed 05th Dec 2011.

5.Geoffrey Hinton. (2007). The Next Generation of Neural Networks .Available: http://
www.youtube.com/watch?v=AyzOUbkUf3M. Last accessed 05th Dec 2011.

6.M Sebastian A Wolfram. (2010). Modelling the Stock Market using Twitter. Available: http:/
/www.mendeley.com/research/modelling-stock-market-using-twitter-1/. Last accessed 05th
Dec 2011.

7. Wikipedia Community. (2011). Algorithmic Trading. Available: http://en.wikipedia.org/wiki/


Algorithmic_trading. Last accessed 05th Dec 2011.

8. Richard Anderson. (2011). Quant trading: How mathematicians rule the markets.
Available: http://www.bbc.co.uk/news/business-14631547. Last accessed 05th Dec 2011.

9. Barry Johnson (2011). Algorithmic Trading and DMA. USA: 4Myeloma Press. p3-50, 439-
470

10.McClure, B. (). Modern Portfolio Theory: Why It's Still Hip. Available: http://
www.investopedia.com/articles/06/MPT.asp#axzz1feCboKEu. Last accessed 28th Nov
2011.

11. Stephen Langdell, PhD, Numerical Algorithms Group. Examples of the use of data
mining in financial applications

12. Xindong Wu et al. (8th October 2007) Top 10 algorithms in Data Mining : Knowl Inf Syst
(2008) 14:137

13. Marijana Zekic, MS, Neural Network Applications in Stock Market Predictions- A
Methodology Analysis : University of Josip Juraj Strossmayer in OsijekFaculty of Economics
Osijek

14. Cynthia Krieger(1996) , Neural Networks in Data Mining

15. Wikipedia Community. (2011). Perceptron. Available: http://en.wikipedia.org/wiki/


Perceptron. Last accessed 21st Nov, 2011.

16. Wikipedia Community. (2011). Bitcoin. Available: http://en.wikipedia.org/wiki/Bitcoin. Last


accessed 05th Dec 2011.

Darwin Research Proposal, University of Sheffield, 2011


17

17. Kurt Dopfer (2005). The Evolutionary Foundations of Economics. Switzerland:


Cambridge. p592.

Darwin Research Proposal, University of Sheffield, 2011


18

Appendix A:Human Element


In order to include a human element in trading, game theory tells us the outcomes of games
that trading parties play with each other. In addition, according to behavioural economics,
peoples emotions play a significant role in decision making with regard to investments.6
By studying the vast corpora of social media text updated in real time by people around
the world, we can make useful prediction of the stock market. When people generally feel
anxious, likely, they start saving money and the stock market goes down, whereas when
they feel happy and content, they may feel more encouraged to buy shares, increasing the
stock price value of said companies. In addition to social media sentiment tracking, we can
also measure the buzz of a given company on the internet. Search index volume for certain
terms on Google can give a good indication.

Online blogs and forums and virtual communities are a gold mine for analysing the effect of
public opinion on financial markets and study local and global trends in real time. We can
study general opinion from all sources, or narrow down to a selection that only concerns
the financial domain. Social networks may include Facebook, Linkedin, Twitter, while virtual
communities can be found in World of Warcraft and Second Life. We can focus on particular
companies and brands to segment the stock market. However, because bitcoin behaves
like an asset in many instances, we can analyse bitcoin currency markets, where bitcoin is
traded for other digital goods such as Second Life Lynden dollar.

We must ask the question: Is the public so invested in stock markets that their mood swings
affect their investment decisions, or is it something else that causes this correlation? It is
also interesting to study why some mood indicators have little correlation, such as Opinion
Finder or certain Google Mood profiles, while other profiles have strong correlation, such as
the calm Google Mood Profile.

In addition, we can filter social media posts by meta data. Trades can be filtered by geo
location for relevant local markets. In Twitter when someone has no follower or has
excessive re-tweets per day, he might be considered a spammer. Tweet inputs can be also
weighted by popularity. When tokenizing the text, we can apply custom algorithms for the
financial domain so that we do not accidentally lose valuable data in the process. We can
furthermore study multiple input sources at once and think about improving the lexicon of
sentiment related data to perform a finer grained analysis.

We can do an ordinary least squared pooled regression to learn from summarizing social
media text content with vector space search with tf.idf weighting. Deeper features using NLP
and IR techniques, e.g., term weighting, named entity recognition can also be explored. A
fuzzy self-organizing neural network can be used to study using the Granger casualty test to
see whether there is causation between social media and market movements. The data we
input is bitcoin streaming info, i.e. ticket, trades, market depth. Alternatively, we can use data
from the London Stock Exchange.

Darwin Research Proposal, University of Sheffield, 2011

You might also like