Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм. |
Автор megabax | ||
02.02.2014 г. | ||
Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.Что бы смотреть урок полностью, а так же скачать исходники к уроку, подпишитесь на платный раздел. В платном разделе статья находиться здесь. Как и обещал на прошлом уроке, сегодня мы будет дорабатывать и исследовать наш генетический алгоритм. Начнем с того, что добавим функцию клонирования гена и хромосомы. Для гена (класс Gene) он будет выглядеть вот так:
а для хромосомы (класс Chromosome) вот так...
...
зачем нужны эти функции? Разумеется, для размножения "особей" - наборов оптимизируемых параметров. Мы будем удваивать эти наборы, сортировать по целевой функции и производить селекцию (удалять лишние, наименее удачные наборы, оставляя только самые лучшие).
Теперь разработаем новый класс GeneticOptimization - он будет выполнять у нас функцию дублирования и селекции ...
...
А вот результат работы этих программ:
А вот график депозита оптимизированной стратегии:
Как видите, он в лучшую сторону отличается от графика, полученного оптимизацией на уроке 13:
Но продолжим наш эксперимент. Сделаем, что бы был возможность произвести не один, а несколько шагов оптимизации. Для этого создание оптимизатора и стратегии сделаем в конструторе, а вызов шага поместим в цикл. подробно расписывать не буду, все это есть в исходниках. И так, результат:
Как видите, раз на раз не приходиться, да еще и популяция вырождается. Так что нам еще есть к чему стремится. А именно:
Но этим мы займемся на следующих уроках.
Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. Скриншоты, помеченные знаком **, являются цитатами и иллюстрациями программного продукта "Блокнот", авторское право на который принадлежит корпорации Microsoft..
|
||
Последнее обновление ( 02.02.2014 г. ) |