You are on page 1of 5

Visualization project for time series and trading applications

Project introduction:

The first phase of the project is to use open source charting technologies to view time series data. The
data objects will start with simple time series data of asset prices like stocks, commodities, options, etc.

The end goal will be to develop a trading system based on historical data. The project will be phased to
initially focus on the core features of the system architecture and save all the bells and whistles for later
versions.

However, it is important to plan the technology so that up-gradation and addition of features should be
a smooth process.

Technologies:

The project will heavily use the LAMP stack. Since the first part of the project is more dependent of the
visualization modules the javascript tools that have been initially shortlisted to achieve the visualization
charts are:

1) gRaphaël http://g.raphaeljs.com/: The library seems to be very flexible and easy to use and
hence speed of deployment is very fast. Limited interactivity is also built it which is sufficient for
the project goals.
2) Flot: http://code.google.com/p/flot/: This is a pure javascript library which seems to give very
good output for time series data.
3) Highcharts: http://www.highcharts.com/: High Charts is commercial software that seems to offer
very good capabilities. This software is open source and could be chosen to invest in if it is worth
the effort and the savings in time of development and deployment are justifiable.

The key criteria for choosing the above tools are:

• Open source
• Easy to use
• Quick to deploy
• Compliant with W3 specifications and are advanced in usage

The project will also make heavy use of client side processing and rendering using tools like JQuery
(http://jquery.com/). The idea is to maximize the usage of already tried and tested forward looking
technologies.
Technologies:

The first phase deliverable will include simple outputs of data that will be queried from a MySQL
database. The data are basic ingredients that go into any computational finance project.

Examples of the output include:

a) Stock price charts:

Similar charts would be developed to display various technical indicators and financial metrics.
Deliverables (Phase 1):

1) Basic charting templates (static i.e. not dynamic). The charts (or the view to be precise)
will request data to be displayed and the data will be displayed in the webpage. There
will be a chart created for each of the basic chart types i.e.:
a. Line Chart (time series data)
b. Bar Chart (comparative index returns)
c. Pie Chart (profit distribution across asset classes)
2) Each of the charts above will have corresponding data tables displayed using basic
Javascript, SVG, HTML. Example shown below:

http://www.lightstreamer.com/demo/jqGridDemo/

3) The basic charts developed in deliverable 1 will be enhanced and made dynamic in
nature. The request will be augumented by AJAX requests and the chart will be made
dynamic i.e. real time.
4) The tables in deliverable 2 will be made dynamic and AJAX requests will be incorporated
to make the feel real-time.
Phase 2 of the project:

The phase 2 of the project is to build a trading system and enhance the visual interaction using the
outputs from phase 1.

The project will use the plugin from Light Streamer and use AJAX to update real-time information from
the database.

The stock grid will be displayed as shown in the example here and will be enhanced to display price /
volume action as done in any standard trading software.

http://www.lightstreamer.com/demo/jqGridDemo/

The final output will be something like this. The number of fields will be only the most important ones.

Project Resources:

The following excellent resources from a great site called http://nettuts.com will provide all technical
expertise for any student to get going. I will be continuously available to provide any technical / business
guidance required.

My favourite tutorials from Nettuts are mentioned below. A premium subscription can be made
available if needed.

• An Intensive Exploration Of jQuery (http://net.tutsplus.com/articles/news/an-intensive-


exploration-of-jquery/)
• jQuery for Absolute Beginners: The Complete Series (http://net.tutsplus.com/articles/web-
roundups/jquery-for-absolute-beginners-video-series/)
• 17 Hours of JavaScript from the Masters (http://net.tutsplus.com/articles/web-roundups/17-
hours-of-javascript-from-the-masters/)
• For Ruby on Rails. Just in case we decide to move to it. Essential Learning for Ruby and Rails
(http://net.tutsplus.com/tutorials/ruby/your-ruby-library-essential-reading/)
• A really great PHP framework called Code Igniter. We will most likely use this because it is very
simple and robust.(http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-shopping-
cart/). Take a look at all the tutorials here.

Have fun!

You might also like