Программирование - это просто
Advertisement
Главная arrow Биржевые роботы arrow Тесты торговых стратегий на C# (платный раздел) arrow Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.
29.05.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм. Печать E-mail
Автор megabax   
02.02.2014 г.
New Page 1

Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.

Что бы смотреть урок полностью, а так же скачать исходники к уроку, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Как и обещал на прошлом уроке, сегодня мы будет дорабатывать и исследовать наш генетический алгоритм. Начнем с того, что добавим функцию клонирования гена и хромосомы. Для гена (класс Gene) он будет выглядеть вот так:

        /// <summary>

        /// Клонировать ген

        /// </summary>

        /// <returns>Копия гена</returns>

        public Gene clone()

        {

            Gene res = new Gene();

            foreach (GeneticCommand command in commands)

            {

                res.commands.Add(command.clone());

            }

            return res;

        }

 

а для хромосомы (класс Chromosome) вот так...

 

...

 

зачем нужны эти функции? Разумеется, для размножения "особей" - наборов оптимизируемых параметров. Мы будем удваивать эти наборы, сортировать по целевой функции и производить селекцию (удалять лишние, наименее удачные наборы, оставляя только самые лучшие).

 

Теперь разработаем новый класс GeneticOptimization - он будет выполнять у нас функцию дублирования и селекции ...

 

...

 

А вот результат работы этих программ:

 

Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.

 

А вот график депозита оптимизированной стратегии:

 

Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.

 

Как видите, он в лучшую сторону отличается от графика, полученного оптимизацией на уроке 13:

Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.

 

Но продолжим наш эксперимент. Сделаем, что бы был возможность произвести не один, а несколько шагов оптимизации. Для этого создание оптимизатора и стратегии сделаем в конструторе, а вызов шага поместим в цикл. подробно расписывать не буду, все это есть в исходниках.

И так, результат:

Тесты торговых стратегий на C#. Урок 15. Исследуем генетический алгоритм.

 

Как видите, раз на раз не приходиться, да еще и популяция вырождается. Так что нам еще есть к чему стремится. А именно:

  • Улучшить алгоритм мутации и отбора.

  • Предусмотреть возможность сохранения геномов, дабы не потерять хорошие экземпляры, если те случайно  родятся.

Но этим мы займемся на следующих уроках.

 


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 

Скриншоты, помеченные знаком **, являются цитатами и иллюстрациями  программного продукта "Блокнот", авторское право на который принадлежит корпорации Microsoft.. 


 

Последнее обновление ( 02.02.2014 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги