27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

the major news events that affect the stock market and also<br />

understand their impact. Most recently, in [2] the authors<br />

analyze the text content of Twitter feeds using two mood<br />

tracking tools, and use a Granger causality analysis and a<br />

Self-Organizing fuzzy Neural Network to predict changes<br />

in the Dow Jones Industrial Average closing values.<br />

Apart from the research papers, there exist two Android<br />

applications which are related to the proposed system. One<br />

of them is Bloomberg Mobile 1 . It is one of the best available<br />

in the market supporting features like latest financial news<br />

and stock market quotes among others. The unique selling<br />

point of the application is that users will be able to create<br />

personalized views of the news filtered by industry, region,<br />

exclusivity and/or popularity. Another application 2 which<br />

is related to our project is about simulation of buying and<br />

selling of stocks. It allows the users to track their progress,<br />

buy and sell at real, up to date stock prices and manage their<br />

portfolio on the go. The unique selling point of the application<br />

is the presentation of the stock market in a simulated<br />

environment. Our application is unique in that it combines<br />

the best features of other applications, such as providing latest<br />

financial news, quotes, and a simulated environment for<br />

trading using virtual money, but also adds new features such<br />

as stock market prediction.<br />

3 System Architecture<br />

A high-level architecture of the proposed system is depicted<br />

in Figure 1. This is a three-tier architecture, consisting<br />

of the Android client, the Internet, providing access to<br />

stock-related news and quotes and enabling the client/server<br />

interaction through the Web Services, and the Server, consisting<br />

of the Process, the Prediction, and the Training Engines<br />

and the system’s database.<br />

3.1 Android Client<br />

The Android client provides several types of functionality<br />

to the end user: It serves as a stock market interface,<br />

providing information about the latest financial news and<br />

quotes (using the Internet module). It also allows the end<br />

user to create a watch list of stocks and provides a simulated<br />

environment for buying/selling stocks using virtual money.<br />

This can be regarded as a stock market online game, and<br />

the end user can review his/her ranking as compared to other<br />

players who are using the application. Most importantly, the<br />

Android client interacts with the server’s prediction engine<br />

to provide predictions for a company’s stock price. This information<br />

can be used by the end user to add/remove stocks<br />

from his/her watch list and portfolio. All this information<br />

1 http://www.bloomberg.com/mobile<br />

2 http://www.chickenbrickstudios/games/mmc<br />

is sent to the Android Client by the Server through the Web<br />

Services.<br />

3.2 Server<br />

The Server consists of three Engines (Process, Training,<br />

Prediction), as well as the database, with the Training and<br />

Prediction modules being the core of the proposed system.<br />

Training Engine. The Training Engine uses the Internet<br />

module to retrieve news and quotes. It then employs data<br />

mining algorithms to train the system so that it can then<br />

predict the stock price movement. It saves those rules in<br />

the database, which can then be used by the Prediction Engine<br />

to provide prediction to the Android Client. The training<br />

consists of a series of actions. Since the data are timesensitive,<br />

the system needs to be trained frequently so that<br />

the predictions depict the latest market trends. Our architecture<br />

enables the administrator to decide how often the training<br />

occurs. The training process is triggered automatically<br />

at the times defined.<br />

The training process can be described as the following<br />

sequence of actions, also depicted in Figure 2: The Training<br />

Engine requests news for a list of companies through Yahoo!<br />

Finance 3 The Training Engine then processes the articles<br />

using sentiment analysis, and assigns a sentiment score<br />

to each company using the sentiment dictionary. A positive<br />

sentiment score means that the stock price is predicted to<br />

go up, whereas a negative sentiment score means that it is<br />

predicted to go down. The sentiment scores are saved in<br />

the database. Next, the stock quotes of those companies are<br />

requested and are also saved in the database. The quotes<br />

of the same companies are requested after n hours (n is a<br />

user-defined parameter). The quotes’ source returns realtime<br />

stock quotes for those companies. The training engine<br />

retrieves from the database the sentiment scores which were<br />

generated for those companies as well as the quotes to check<br />

for accurate predictions made in the stock price movement.<br />

The training engine then uses the sentiment scores of the<br />

accurate predictions, and creates correlations of the scores<br />

to the percentage change in the respective stock quotes using<br />

machine learning techniques (association rules or decision<br />

trees). The results, in the form of rules, are saved in<br />

the database, to be accessed later by the prediction engine<br />

to make predictions on both the trends (stock going up or<br />

down) and the percentage change of the stock.<br />

Prediction Engine. The Prediction Engine is used to send<br />

stock price predictions to the Android Client. This engine<br />

interacts with the database to retrieve and use the training<br />

data. However, its functionality is asynchronous to that of<br />

the Training engine. In fact, the Prediction Engine is called<br />

on-demand, i.e. whenever a user wants a prediction on a<br />

3 http://finance.yahoo.com<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!