Just finished the first revision of the software I"m creating.
The overall idea hasn"t changed much from what I asked for in the original post.
The software allows the user to:
1. Load any symbol"s history and display it in a chart.
2. Select from a list of analyses to run on the loaded symbol.
3. Calibrate each analysis with different parameters.
4. Display the buy/sell signals or other graphic output of each analysis.
Additionally, I didn"t mention this yet but I added the ability to:
5. Run a simulation using a set of symbols and a set of analyses" buy/sell signals to see the performance of the analyses.
At some later revision I"d like to add:
6. A "Calibrator" that runs many simulations with different analyses/parameters to find the best performing set in a given time period for a given set of symbols.
It works pretty well. It"s extremely fast (It stores all the information using SQL, so only pulls data from yahoo the first time) and has a very customizable display for the data. I"ve attached a screenshot that shows what it looks like.
Now that I"ve completed the full circle of desired features, the next revision will be primarily adding more analyses, which was the original purpose of the project.
Some of the big challenges of the project at this point are:
A. There is an enormous amount of work to do in order to add all the analyses I"ve learned to the application, but that"s not unexpected and should be pretty fun as programming goes.
B. The charting software I"m using is a bit of a pain and has some inefficiencies, but improving the look is a complete waste of time really. You can see how strongly I feel about that by how shoddy the UI is. I"m incrementally refactoring the charting software by stripping out unnecessary features and adding ones I need, but anything I need to do takes a while. The software itself is good, but just isn"t what I need. I have the feeling that I"ll end up rolling my own charting software which will take a lot of time.
C. Even if one can generate a set of buy/sell signals with reasonable confidence values, what to do with them is an entirely separate issue of trading that I"m not well versed in and am not focusing on. The lack of good trading strategy hampers my ability to see how the analyses perform, but ultimately it shouldn"t be a huge detriment.
D. Once one has a confident buy/sell signal, simulating the transaction process is inaccurate. Currently I have a "delay" in days between the decision to transact and the transaction itself. Once the decision to transact is made, the actual transaction occurs X days after. I could play around with deviance using the open/high/low/volume values, but I"m just guessing at that point. I"ll need to study more on how a small purchase of stock would transact with some broker, but since most of the purchases I"m doing are on fairly long-term, the transaction discrepancies shouldn"t be major.
For the screenshot, you can see from the screenshot that I analyzed Ford"s stock for last year, and simulated the buying and selling of that stock using a single 10 day moving average. The selection of Ford"s last year was more or less random. You"ll notice that I start with $10,000 and end up with $14,124, but if I had just invested all $10,000 at the start and kept it in, I would"ve ended up with over $16,000. I could"ve hunted for a year/symbol that my simple analysis would"ve beaten the market, but I think it"s important not to be pretentious. I don"t believe I"ve got anything that can predict the stock market at this point, but I"ve got a lot of work to do to add the rest of the analyses. Once I do I think I"ll have a good method to determine the value of technical analysis.
If anyone has any questions, ideas to incorporate or has some unmentioned in this thread software that does this type of work, feel free to post it.