Concept reminds of a prototype I built a while back in excel. I found some "research" that listed over 100 trading indicators sorted by effectiveness. (It said the EMA5 was best, btw.) So I put some stock data, and several "top" indicators into the sheet. I then made a simple and small neural network (trained via excel's evolutionary algo) into the sheet. The setup had the ability to assign weights to each indicator, parameters to each indicator, and set thresholds in the NN, all via the evolutionary algo. It seemed to curve-fit and would have long drawdown periods as a result. It would required a very creative and unconventional cost function to fix the problem, imo, but it didn't seem that it would be more effective (by a long shot) than what I was already using--even if I could fix the curve fitting problem...so I left the idea alone. Good Luck and keep us posted!
That sounds like some serious Excel craftiness going on. It amazes me what people are able to do in Excel!! Will definitely keep you posted!!
Your code seems like a good start to get experimentation going. I think I get the gist of what you're trying to accomplish given your reveal of API, although I'm not quite sure how it functions as backtester. Is your code generating buy/sell signals and simulating execution of that for each permutation of allowable possibilities / restrictions?
Yes...that is correct. There is a bunch of stuff going on that is abstracted behind the code that I showed. I will make available the SDK as soon as I have something operational in C#.
Good writeup. Not sure sure what you consider a programmer, but sounds like you could program something from the start. Wether scripting shell scripts or writing huge java enterprise applications, you're still a programmer, and the latter can sometimes be a worse solution if a shell script is better fit. Sadly, the other way of programming, top-down waterfall, leads to technical people only seeing one way of doing stuff, becoming blind to all the possibilities. So I actually prefer MVP and refactoring, delaying decisions over time until I see clear benefits. It's a less linear way of working, requires support and discipline, but can be worth it both in time and quality in the end. If it leads to early retirement of the project, all the better. Not all ideas are great. Often top-down waterfall commits you too much and requires too much unnecessary work, but is suited to projects with crystal clear requirements and low tolerance for failure, ie. "bridge building".
Very interesting work! Sorry if I missed it in the link you provided, but what are you gaining by not having your strategies running end to end in NinjaTrader vs using NinjaTrader in conjunction with your python system?
Platform agnostic.. same strategy code runs on any platform with any broker so long as I write the connecting agent to said broker. Also, the same strategy instance can command multiple brokers and listen to multiple data feeds at the same time.