Assignment 5 (final project), CSC458, Spring 2010
1 Assignment
This assignment’s goal is easy: outwit the greatest financial minds in history to write a program that can distinguish real stock market data from modeled stock market data.
In case it’s not already obvious, doing this well amounts to discovering better models of the stock market’s behavior, something that–at least in principle–would allow you to devise new strategies and Beat The Market.
For now, though, the only thing I’m hoping you can do is to beat your classmates.
In particular, you need to develop two functions: generateData and evaluateData. The first should generate data that is indistinguishable from actual stock market data, and the second one should consume data and decide whether it’s real or fake.
module Final |
|
val generateData : unit -> double array |
val evaluateData : double array -> bool |
The evaluateData function should consume an array of length 1000, and return a boolean representing whether you believe this to be actual recorded stock market data.
In order to test your programs, your evaluateData function will be called with a variety of inputs; some will be real stock market data taken from consecutive days’ adjusted closes using Yahoo’s history interface, and some will be fictitious data generated by other players’ programs. I will not call your evaluateData function with the output of your own generateData function, to save you the trouble of trying to watermark your own data in some tricky way.
Your program’s score will consist of the number of examples that you correctly classify. Your program will be called with an equal number of real and fake examples. Your program will be restarted for each call (so don’t bother using a mutable variable to try to keep track of prior inputs).
2 Interface
Your main source file should be called Final.fs, and should define a module called Final containing the two functions specified above. Your makefile should compile this into a library called Final.dll.
3 Handin
Your handin should contain a README explaining your strategy, a TEAM file as before, the file Final.fs, a makefile, and any other source files (including test cases).
4 Parters
I would encourage you to tackle this assignment with a partner.
5 Disclaimer
There may well be bugs in this assignment. Let me know right away if you find some!
[*] No, it’s no fair actually storing real stock market data in your program.