Assignment #3: Wall Street

Due date: March 8 by 16:00 (extended)

This assignment is to be done individually.


Financial market analysis and forecasting is one of the major consumers of statistical and AI research, given the obvious profit motive: if you can predict, with reasonable success, how the exchange rate between two currencies or the value of a particular stock, will behave tomorrow, next week, or next month, you stand to gain a rather nice improvement to your standard of living. Such forecasting is a typical example of a time series analysis problem.

To give you an appreciation of the potential for AI methods, in particular, a neural network approach, for making such predictions, this assignment deals with predicting the adjusted close price of the S&P/TSX Composite Index. Note that the only data you should be using is this set of adjusted close figures.

Your Task

Your task is to experiment with a regular feed-forward, backpropagation neural network, using a single hidden layer, to see how well you can predict the adjusted close for various days in the future, given training data of the market's recent behaviour.

In addition to varying the learning rate, α, and momentum, γ, the number of hidden layer units, and the size of training data, you will also want to experiment with the length of each such training vector, in other words, the number of inputs to your network. You can think of this as corresponding to how many days' worth of adjusted closes are considered relevant to predicting the adjusted close on some future date.

Try varying the meaning of each input to your network, for example:

You may wish to use the sample C code provided here or the (far more complete) Matlab Neural Network toolbox for your assignment, although you are equally encouraged to write your own code for this purpose.


Submitting your assignment

You must submit, at the start of class on the due date, a brief hardcopy report, which answers the questions, above, and explains the design decisions you made, as well as any interesting results you observed.

Remember that your report is the main method of communicating what you have accomplished to the reader. Therefore, make sure that it is well organized and well written; you will lose marks for spelling errors and poor grammar. The report should be a maximum of three pages in length; anything beyond the three-page limit will not be read. You are welcome to include illustrations to elucidate the text. A hardcopy of your source code and a brief set of testing results should be included as an appendix. (The appendix does not count as part of the three-page limit.)

In addition to the hardcopy submission, you must submit, through WebCT, an electronic version of your assignment in UNIX tar format, which includes:

Do not include with your submission any other items, such as a copy of your report, object code (*.o) files, or your executable program, or marks will be deducted.

Assignments will not be considered complete if they have not been submitted both in hardcopy and electronically or if the two versions of the source code differ. The hardcopy and electronic versions may be submitted at different times prior to the assigned deadline.

Marking scheme

Component Weight
Relevant experiments and discussion6
Answers to questions10
Actual code, reproduction of results, network performance4

Last updated on 6 March 2007
Assignment suggested and tested by Samuel Audet