$cheme $tock - A Stock Market Visualization Application
By Paul Ricker & Gary Kanter
December 10, 2008

Overview

$cheme $tock is a web application that allows a user to view both current and historical stock data.

The application is composed of a web server written in scheme, middleware logic, written in scheme, which talks to the Yahoo! Finance API, and an Adobe Flex 3 application running in a web browser on the client side.

A user can select a range of dates in order to visualize a candlestick chart, which shows the range of intraday trading prices over the specified period of time. The application will also display a series of key financial data and ratios (like PE, Dividend Yield, % Change, etc) for the particular stock, based on the most recent market data.

Screenshot

Concepts Demonstrated

  • Data abstraction is used to provide access to both current and historical stock data.
  • List Processing is used in a variety of ways to filter and format stock data.
  • Functional Programming is heavily used on the middleware layer in the creation of requested financial data sets.

External Technology

$cheme $tock uses the following technologies:

  • Yahoo! Finance Web Server
  • Adobe Flex 3 Application Framework

Innovation

Our project demonstrates how Scheme can be elegantly interfaced with cutting-edge technology like Adobe's Flex 3 Framework. The project also demonstrates scheme's strength as a data processing middleware layer. Through the use of s-expressions scheme can easily create xml documents describing custom data sets which can then be 'plugged' into modern web application frameworks in an almost trivial manner.

Technology Used - Block Diagram

Additional Remarks

Our project also demonstrates how easily quality visualizations of data can be created with Adobe's Flex 3 framework. More importantly we also show how middleware layers written in scheme can actually further increase the productivity gains of such rapid application approaches because of scheme's ideal programming constructs for data representation and encoding, seen through the use of s-expressions.