PopovMP/Forex-Strategy-Builder — pull request #10 by QANTau (2013-03-03 11:35:33+00:00)
Title: Generator Changes

Miroslav,

I have made a number of changes to the code for your review and consideration.

1. The generator can be automatically started by using the -autostartgenerator command line option.
2. A custom configuration file can be now be specified by using the -configfile= command line option.
3. I've modified the random number generator used by the generator process to now use a cryptographic random number generator. This change was made as I found that the random numbers used by the generator were identical when I launched multiple copies of FSB in parallel on the same machine (using -autostartgenerator), resulting in the same initial strategy between the multiple FSB instances. The use of a cryptographic random number resolved this issue.
4. I've added what I believe to be a suitable implementation of the custom generator sorting functionality, which now uses a 'simple' and 'advanced' option, with internal and external DLL code merged together in the UI. The external assembly uses a simplified data structure and the code in the external file (the solution is available for you at https://www.dropbox.com/s/oahmvsco5wxrnrb/Forex-Strategy-Builder.Custom.zip) allows for a variety of different analysis tools to be implemented at a later stage. It is my intention that the external assembly can be used as a template for anyone wishing to implement a non-standard selection criteria in the generator.
5. The StrategyXML file loader and some minor generator changes have been made to allow for a strategy with slotStatus="Locked" defined in the slot to be persistent when the generator loads, allowing for strategy files to be defined as a template for a defined starting point in the generator without the need to set everything via the UI on each load.

In the implementation of #4 above, I have also added a feature into the generator to capture some details of how many strategies were were ignored during the generator process as they failed certain limitations.

Once we agree on a strategy for bringing these changes together (assuming that you are happy with all of these recommendations) I will get started on the changes to the wiki to support the new features.

Regards

Adam