I will give you an array of numbers, 18 rows by 69 columns. Each row represents one stock market sector (we'll call them A, B, C, D, etc. but they actually represents sectors such as Gold, Retail, Leisure, etc.). Each column represents how that particular sector performed in comparison to all the rows during the last regular interval. The attached file looks like this below, but it is 18 by 69 (not 4 by 3).
A - 1, 3, 4
B - 2, 1, 1
C - 3, 4, 2
D - 4, 2, 3
The first column shows that A performed best (D worst). The last column (during the last time interval) B performed best (A worst). What will the next column look like?
Your task is to predict the top 3 rows (out of the 18).
The numbers are real historical data (over 69 past time intervals) and the market sectors do have relationships.
## Deliverables
**How it Works & Requirements**
At regular time intervals (each 5 weeks) I will add a new column of performance numbers to your program. The new numbers will all be unique ranging from 1 (best performer) to 18 (worst performer). These numbers represent the rank of each row (in other words, how that row performed compared to the others). Your program will look at this latest column and will look BACK at the prior 20 columns to predict the next column.
Obviously, the program cannot "cheat" and look ahead at any test data and cannot "hard code" anything because the data? is fluid.? When I use the program, it will only be looking back at the history.
Your program will predict all numbers (1 through 18) in the next column, but I am actually only looking to know the top 3. So that is how we will determine if your program "works."
**Your program will meet my requirements if for all possible columns in the test data (columns 21 through 69), 2 of the program's top 3 picks for the next column actually end up being in the top 8 of the next column 75% of the time.**
For example, to predict column 21, your program would look back at columns 1 through 20. To predict column 69 your program would look back at columns 49 through 68.
So the program will probably need to look through the historical data to identify patterns. The program will probably need to be able to "tune" (self adjust) itself each time a new column is added.