I'm really happy with this now, and I'm doing the final Train for my demo account. This bot is "done" now, at least in its current form.

I've made a couple enhancements since the first post in this thread:
The bot now uses very fresh data, up until 11/23/2013. Also, I have started using the OPENEND flag.

After fully optimizing the 7 pairs, I noticed that some pairs were given a very low OptimalF fraction from looking at the .fac file:
Code:
AUDCHF              .054  1.07  176/380    7.4
AUDCHF:L            .061  1.08  113/256    6.1
AUDCHF:S            .036  1.04   63/124    1.3
AUDJPY              .136  1.13  127/236    6.0
AUDJPY:L            .157  1.13   89/163    4.3
AUDJPY:S            .103  1.12   38/73     1.8
AUDUSD              .139  1.29   75/211   19.6
AUDUSD:L            .116  1.25   53/141   12.7
AUDUSD:S            .218  1.41   22/70     6.9
EURAUD              .612  1.74   40/114   23.8
EURAUD:L            .459  1.52   25/79    11.9
EURAUD:S            .994  2.28   15/35    12.0
EURCAD              .339  1.29  107/171   15.3
EURCAD:L            .374  1.32   75/110   10.2
EURCAD:S            .283  1.26   32/61     5.1
NZDJPY              .117  1.19  160/373   18.8
NZDJPY:L            .196  1.34  110/258   23.6
NZDJPY:S            .000  0.84   50/115   -4.8
USDJPY              .999  1.77   59/84     9.0
USDJPY:L            .999  2.64   42/52    10.9
USDJPY:S            .000  0.63   17/32    -1.


So as an experiment, I told Zorro not to trade anything that produced an OptF less than .1 (originally I had used .001 as the threshold). I was very happy with these results, as you can see in the comparison metrics graphic. It shows that by requiring a minimum 0.1 OptF to trade, one pair was dropped. That only affected the return in a negligible way, but reduced trades by 26% which is a huge reduction in risk for very small opportunity cost.

There are many other ideas I would like to implement, but I'm ready to throw this bot on a demo account and let it play. The next bot I'll design will become dt-e9 (evolution 9).

Aside from the fact that I'd like to work on a new core logic (I'm thinking to experiment with IBS, which is listed in another thread here somewhere)... I do also have several ideas I'm working on for the infrastructure:
* Equity-curve trading works now, but it could be better. I will plan to implement some improvements here;
* Available margin check: I am always looks for features like this, which will help constrain the tradebot to its statistical simulation bounds. Though the bot performs well in simulation, I would like to ensure that it automatically restricts itself in the event that live trading does not behave as expected (global thermonuclear war??)
* File-based state information: I would like to implement a feature to easily save certain state information in a file. While this is currently being done on some level with the .trd files, that is a bit foreign to me and I don't know if we can even access that information. The info I want to save would include metrics such as loss streaks, that could then be used as ongoing constraints even if Zorro were stopped/started multiple times (which is realistic)
* I'd also like to play more with the prospecting process. I developed this during dt-e8, so it is definitely in its infancy. One thing I learned is that, despite my efforts to pick a good starting point to prospect from (NZDJPY)... it seems my pick was only mediocre at best (at least according to OptimalF). I've got some ideas I'd like to try on the next bot. I think the danger in this will always be avoiding too much selection bias.

Attached Files
OptF-minimum.png (371 downloads)
dt-e8.zip (35 downloads)