Hey swingtraderkk, thanks for bringing up this topic.
I just wanted to say that I agree, collaborating might be a great way to keep us all from reinventing the wheel. At the very least, I want to share what I have learned so far, and then see if others have input or improvements.
I'm a n00b so I'm sure there are better programmers than me, but I think the best way to find out and hone my own skills is to look at what others would. At the same time I'm sharing ideas, I could get new ideas from others that share.
I am in the middle of a refining process for building bots, and I'm ready to start sharing. I know that I'm "ready" because for the first time now, I feel comfortable to let Zorro trade with real money. Up until this point, I don't think I fully trusted myself. I've never had trust issues with Zorro itself, it's more my own coding abilities, or lack thereof.
My philosophy thus far has been that a successful tradebot should not be ENTIRELY about "the edge" (ie, the logic of the trading itself). Rather, my hypothesis has been that other factors, such as risk controls, are MORE important than even the edge. I'm not convinced that "no edge" could be profitable (after all, we're not gambling here) but I wanted to prove to myself that a slight/marginal edge could be developed into something worthy.
Therefore, so far I have not yet focused at all on "the edge" or tried to use my energy toward coding any type of holy grail (I'm using mostly just Workshop examples so far). Instead, I've studied how Zorro works, done a lot of testing iterations/refinements, and come up with a set of tools that help create (any) bot that I could be comfortable to trade with. For example, there are certain things I noticed the bots doing that I did not like, so I wrote various functions, etc. that could weed that stuff out. Collectively together I call these functions and routines my "toolbox" and this is an infrastructure that will evolve and be used in every bot I build.
Anyway, back to the philosophy... I mentioned that I had no focus on the edge -- well I took all these toolbox items and several refinements of process, and came up with a new breed that I'm calling a slop-bot. The core logic of this bot is a very simple moving-average crossover -- that's it. But when combined with the infrastructure of my toolbox, and using what I've learned about optimization and risk control... I honestly feel that it has evolved into something statistically worthy.
And that's enlightening to me... because if I can take slop and turn it into something tasty... then I can only imagine how good a tradebot would be if it started with a GOOD trading edge. The mechanics of the edge I think could be ripped from anywhere... there are a lot of successful positive-expectation systems out there. But to be successful, you have to look at the big picture. I am beginning to believe that the edge is only a SMALL part of what makes a bot successful.
I want to share my process, as well as the entire bot and tools. I am trying to decide the best way to do this, because I want to hear feedback from others at every step of the process. For that reason, I'm kindof thinking to start multiple threads to keep the steps separate (but I don't want to overrun the forum). I could also try to put it in one thread, but I don't want the earlier steps to be glossed-over as as result. The process I'm using as been refined at least 4 times now, and I'm sure it will be refined even further.
My goal is be able to take ANY edge logic, and pop it right into this design process. It's a very mechanical step-by-step evaluation process. At the end, I'd like to have a worthy bot that can be added to my legion. For diversification, I plan to start core-edge-logic with a flavor, and that would be carried throughout the process. For example, the MA-crossover is a simple trendfollower. But next I might build a mean-reversion bot.