Разделы



Генетические алгоритмы

Основываясь на моделях, используемых в биологии и экономике, мате­матик и психолог Джон Холланд (John Holland ) разработал алгоритм ге­нетической оптимизации. Алгоритм впервые был опубликован в книге Холланда Адаптация в естественных и искусственных системах (J . Holland , Adaptation in Natural and Artificial Systems , 1975). Генетичес­кие алгоритмы (ГА) впервые стали применяться в компьютерных дисцип­линах в начале 1990-х годов (Yuret and de la Maza , 1994). Торговое сообще­ство впервые обратило на них внимание около 1993г., когда появилось несколько статей (Burke , 1993; Katz and McCormick , 1994; Oliver , 1994) и компьютерных программ. С тех пор несколько фирм добавили генетичес­кое обучение в свои программные пакеты, а у некоторых есть даже про­граммы генетической оптимизации профессионального уровня.

В торговом обществе ГА никогда не пользовались таким успехом, как нейронные сети. Популярность этой технологии никогда не росла из-за самой ее природы. Среднему человеку трудно понять генетический алго­ритм и более чем сложно применять его правильно. Однако, по нашему мнению, ГА могут быть крайне выгодны для проектировщиков торговых систем.

В данной книге представлен общий обзор ГА и их применения в торгов­ле. Читателям, заинтересованным в детальном изучении этого предмета, следует прочитать книгу Девиса (Davis , 1991), а также нашу главу в книге Virtual Trading (Katz , McCormick , 1995a , 1995b ) и наши статьи (Katz , McCormick , июль/август 1994, декабрь 1996, январь 1997, февраль 1997).

ЧТО ТАКОЕ ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ ?

Генетический алгоритм решает проблему, используя процесс, подобный биологическому развитию. Он работает как рекомбинация и мутация ге­нетических последовательностей. Рекомбинация и мутация — генетичес­кие операторы, т.е. они управляют генами. Ген — это последовательность кодов (генотипов), которая содержит всю информацию, необходимую для того, чтобы создать функциональный организм с определенными харак­теристиками (генотипом). Хромосома — последовательность генов. В слу­чае генетической оптимизации, используемой для решения задач, связан­ных с торговлей, последовательность кодов обычно принимает форму ряда чисел.

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

При моделировании эволюционного процесса ГА участвует в отборе и сопряжении членов из популяции (хромосом). Сопряжение — это про­цесс, содержащий скрещивание и мутацию. При скрещивании элементы, которые включают гены различных хромосом (члены популяции или ре­шения), комбинируются, чтобы создавать новые хромосомы. Мутацией называют возникновение случайных изменений в этих элементах. Это обеспечивает дополнительное изменение в наборах создаваемых хромо­сом. Как и в процессе биологического отбора (где менее пригодные чле­ны популяции оставляют меньше потомства), менее пригодные решения удаляются. При этом более пригодные решения размножаются, создавая другое поколение решений, которое может содержать несколько лучшие решения, чем предыдущие. Процесс рекомбинации, случайной мутации и отбора является чрезвычайно мощным механизмом решения задач.

п»ї

РАЗВИТИЕ МОДЕЛЕЙ ВХОДА , ОСНОВАННЫХ НА ПРАВИЛАХ

Что бы произошло, если ГА позволяли искать не просто лучшие парамет­ры (именно так чаще всего используют ГА), но и лучшие правила? В этой главе приводится результат использования ГА для развития законченной модели входа путем поиска оптимальных правил и параметров для этих правил. Несмотря на сложность, эта методология оказалась эффективной в нашем первом исследовании (Katz , McCormick , февраль 1997).

Как можно использовать ГА для поиска наилучших торговых правил? Доморощенный ГА просто жонглирует числами. Необходимо найти спо­соб нумерации различных наборов правил. Этого можно достичь мно­гими способами. Простой и эффективный метод включает в себя пост­роение набора шаблонов правил. Шаблон правила — это частичное опи­сание правила с оставленными пробелами, которые необходимо запол­нить. Например, если некоторые из правил предыдущих глав рассмот­реть как шаблоны правил, то пробелами будут значения периодов ус­реднения, порогов и других параметров. Шаблоны правил, определен­ные таким образом, несложно пронумеровать, поставив в соответствие каждому шаблону набор чисел. Первое число в наборе используется как индекс в таблице шаблонов правил. Оставшиеся числа набора исполь­зуются для заполнения пробелов в шаблоне, в результате чего мы полу­чаем четко определенное правило. Приведенный ниже компьютерный код содержит функцию C ++ (Rules ), которая производит нумерацию шаблонов; она будет описана позже. Хотя в данном исследовании использовался язык C ++, данный метод также можно реализовать в TradeStation с помощью программы TS -EVOLVE , созданной Scientific Consultant Services (516-696-3333).

Термин генетический поиск означает использование ГА для поиска са­мых лучших решений, т.е. имеющих максимальную функцию пригоднос­ти. Как правило, набор потенциальных решений, в котором ведется поиск, достигает огромных размеров. В данном приложении мы хотим использо­вать эволюционный процесс, чтобы выявить набор чисел (генотипов), ко­торые соответствуют основанным на правилах моделям входов (феноти­пам) с максимальной функцией пригодности (или торговой эффективнос­ти). Иными словами, мы собираемся заняться селективным выращивани­ем методов входа, основанных на правилах! Вместо того чтобы начинать с конкретного принципа, на котором основывается модель (сезонность, про­бой) , в данном случае для начала возьмем набор идей, которые могут спо­собствовать созданию выгодного метода входа. Вместо того чтобы после­довательно проверять ценность этих подходов, будет сделано нечто не­обычное: генетическому процессу эволюции представится возможность создать наилучшую модель входа из набора необработанных идей.

п»ї

ГА будут искать в чрезвычайно большом множестве решений наилуч­шую модель входа, которая может быть получена для определенных дан­ных и шаблонов правил. Количество правил для каждой модели будет ог­раничено во избежание подгонки под исторические данные. Данная за­дача сводится к поиску оптимальных наборов чисел. Без использования ГА такой массированный поиск решений был бы практически невозмо­жен и неразумен в любом смысле. Конечно, вместо ГА всегда можно осу­ществить лобовую оптимизацию — особенно, если вы располагаете не­сколькими тысячелетиями на проведение этой работы. В качестве другой альтернативы можно воспользоваться эмпирическим поиском оптималь­ных правил, т.е. попытаться найти наилучшие правила с помощью наблю­дений, однако этот подход не обязательно позволит максимизировать та­кую сложную функцию, как соотношение риск/прибыль. ГА обеспечи­вают эффективный способ выполнения очень больших поисков, особен­но когда нет простых эвристических методов решения данной задачи.

Читать далее: Эволюционный  поиск модели  входа