Back to Home

## COURSE DETAILS

16:332:568 Software Engineering of Web ApplicationsSpring 2008Electrical and Computer Engineering DepartmentRutgers University, NJ

## INSTRUCTOR

Professor Ivan Marsic

## PROJECT STATEMENT

There are many tools available to investors but none of them removes entirely the element of chance from investment decisions. Large trading organizations can employ sophisticated computer systems and armies of analysts. Our goal is to help the individual investor make better investment decisions. Our system will use the Delphi method,8 which is a systematic interactive forecasting method for obtaining forecasts from a panel of independent experts.

The goal of this project is to have multiple student teams implement Web services for stock-prediction. Each Web service (WS) will track different stocks and, when queried, issue a forecast about the price movement for a given stock. The client module acts as a “facilitator” which gathers information from multiple Web services (“independent experts”) and combines their answers into a single recommendation. If different Web services offer conflicting answers, the client may repeat the process of querying and combining the answers until it converges towards the “correct” answer.

Here are some of our project goals:

- Our target customers are individuals who are trading moderately frequently (up to several times per week), but not very frequently (several times per day).
- The gathered data should be used for developing the prediction model, which can be a simple regression-curve fitting, artificial neural network, or some other statistical method. The model should consider both the individual company’s data as well as the broad market data. Once ready for use, the prediction model should be activated to look for trends and patterns in stock prices as they are collected in real time.
- The following data should be gathered and stored locally. Given a list of about 50–100 companies, record their quoted prices and volumes at the maximum available sampling density (check http://finance.yahoo.com/); also record some broad market indices, such as DJIA or S&P500.

Potential services that will be provided by the forecaster service include:

- Given a stock x, suggest an action, such as “buy,” “sell,” “hold,” or “sit-out;” we will assume that the forecaster provides recommendation for one stock at a time
- Recommend a stock to buy, from all stocks that are being tracked, or from all in a given industry/sector

A key step in specifying the forecaster service is to determine its Web service interface: what will go in and what will come out of your planned Web service? Below I list all the possible parameters that I could think of, which the client and the service could exchange. The development team should use their judgment to decide what is reasonable and realistic for their own team to achieve within the course of an academic semester, and select only some of these parameters for their Web service interface.

Parameters sent by the facilitator to a forecaster (from the client to a Web service) in the inquiry include:

- Stock(s) to consider: individual (specified by ticker symbol), select-one-for-sector (sector specified by a standard category), any (select the best candidate)
- Trade to consider: buy, sell, hold, sit-out OR Position to consider: long, short, any
- Time horizon for the investment: integer number
- Funds available: integer number for the capital amount/range
- Current portfolio (if any) or current position for the specified symbol

Some of the above may not be necessary, particularly in the first instantiation of the system. Also, there are privacy issues, particularly with the last two items above, that must be taken into account. The forecaster Web-services are run by third parties and the trader may not wish to disclose such information to third parties.

Results returned by a forecaster to the facilitator (for a single stock per inquiry):

- Selected stock (if the inquiry requested selection from “sector” or “any”)
- Prediction: price trend or numeric value at time t in the future
- Recommended action and position: buy, sell, hold, sit-out, go-short
- Recommended horizon for the recommended action: time duration
- Recommendation about placing a protective sell or buy Stop Order.
- Confidence level (how confident is the forecaster about the prediction): range 0 – 100 %

The performance of each prediction service should be evaluated as follows. Once activated, each predicted price value should be stored in a local database. At a future time when the actual value becomes known, it should be recorded along with the previously predicted value. A large number of samples should be collected, say over the period of tens of days. We use absolute mean error and average relative error as indices for performance evaluation.