ЧТО ТАКОЕ ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ?
Генетический алгоритм решает проблему, используя процесс, подобный биологическому развитию. Он работает как рекомбинация и мутация генетических последовательностей. Рекомбинация и мутация - генетические операторы, т.е. они управляют генами. Ген - это последовательность кодов (генотипов), которая содержит всю информацию, необходимую для
того, чтобы создать функциональный организм с определенными характеристиками (генотипом). Хромосома - последовательность генов. В случае генетической оптимизации, используемой для решения задач, связанных с торговлей, последовательность кодов обычно принимает форму ряда чисел.
При моделировании эволюционного процесса ГА участвует в отборе и сопряжении членов из популяции (хромосом). Сопряжение - это процесс, содержащий скрещивание и мутацию. При скрещивании элементы, которые включают гены различных хромосом (члены популяции или решения), комбинируются, чтобы создавать новые хромосомы. Мутацией называют возникновение случайных изменений в этих элементах. Это обеспечивает дополнительное изменение в наборах создаваемых хромосом. Как и в процессе биологического отбора (где менее пригодные члены популяции оставляют меньше потомства), менее пригодные решения удаляются. При этом более пригодные решения размножаются, создавая другое поколение решений, которое может содержать несколько лучшие решения, чем предыдущие. Процесс рекомбинации, случайной мутации и отбора является чрезвычайно мощным механизмом решения задач
...[ ... ]
РАЗВИТИЕ МОДЕЛЕЙ ВХОДА
РАЗВИТИЕ МОДЕЛЕЙ ВХОДА, ОСНОВАННЫХ НА ПРАВИЛАХ
Что бы произошло, если ГА позволяли искать не просто лучшие параметры (именно так чаще всего используют ГА), но и лучшие правила? В этой главе приводится результат использования ГА для развития законченной модели входа путем поиска оптимальных правил и параметров для этих правил. Несмотря на сложность, эта методология оказалась эффективной в нашем первом исследовании (Katz, McCormick, февраль 1997).
Как можно использовать ГА для поиска наилучших торговых правил? Доморощенный ГА просто жонглирует числами. Необходимо найти способ нумерации различных наборов правил. Этого можно достичь многими способами. Простой и эффективный метод включает в себя построение набора шаблонов правил. Шаблон правила - это частичное описание правила с оставленными пробелами, которые необходимо заполнить. Например, если некоторые из правил предыдущих глав рассмотреть как шаблоны правил, то пробелами будут значения периодов усреднения, порогов и других параметров. Шаблоны правил, определенные таким образом, несложно пронумеровать, поставив в соответствие каждому шаблону набор чисел. Первое число в наборе используется как индекс в таблице шаблонов правил. Оставшиеся числа набора используются для заполнения пробелов в шаблоне, в результате чего мы получаем четко определенное правило. Приведенный ниже компьютерный код содержит функцию C++ (Rules), которая производит нумерацию шаблонов; она будет описана позже. Хотя в данном исследовании ис
помощью програм
...[ ... ]
ЭВОЛЮЦИОННЫЙ ПОИСК МОДЕЛИ
ЭВОЛЮЦИОННЫЙ ПОИСК МОДЕЛИ ВХОДА
В данном примере популяция моделей входа с тремя правилами была получена с помощью генетического оптимизатора OptEvolve, написанного на С ++ (Scientific Consultants Services, 516-696-3333). Каждый ген соответствует блоку из четырех чисел и шаблону правила - таким образом создается соответствие наборов чисел и наборов правил. Каждая хромосома содержит три гена и состоит из 12 чисел: первые четыре числа соответствуют первому гену (или правилу), следующие четыре соответствуют второ
му гену (или правилу), а последние четыре соответствуют третьему гену (или правилу). ГА должен знать размер гена, чтобы не разрушить важные гены при выполнении скрещивания. Скрещивание должно произойти т о л ь -ко на границах генов (блоков из четырех чисел). В настоящем примере это будет достигнуто путем приравнивания размера гена, который является параметром генетического оптимизатора, к четырем. Как упомянуто, каждый ген составлен из четырех чисел. Первое число является индексом в таблице возможных шаблонов правил. Например, если это число 1, то выбирается шаблон сравнения цен, в котором различие между двумя ценами закрытия сравнивается с некоторым порогом (см. код). Остальные три числа в гене соответствуют значению порога и двум анализируемым периодам для сравниваемых цен. Если первое число из блока 4 чисел равно 2, то будет выбран шаблон сравнения цены и скользящего среднего. В этом случае два из оставшихся трех чисел контролировали бы период скользящего среднег
...[ ... ]
Шаблоны правил
Шаблоны правил
Первый шаблон правила (case l в функции Rules) определяет сравнение между двумя ценами и порогом: правило принимает значение ИСТИНА (TRUE), если цена закрытия 1b1 дней назад больше, чем некоторый пороговый фактор (thr) плюс цена закрытия 1b2 дней назад. В остальных случаях правило принимает значение ЛОЖЬ (FALSE). Неизвестные (1b1, 1b2 и thr) оставлены пустыми для будущего использования при реализации программы. Этот шаблон был включен, потому что тот вид правил, которые он представляет, был полезен в предыдущих исследованиях.
Второй шаблон правила (case 2) включает простые скользящие средние, которые часто используются для определения тренда. Обычно считается, что рынок будет двигаться вверх, если цена выше ее скользящего среднего, и опускаться вниз, если цена ниже ее скользящего среднего. В шаблоне присутствуют только два неизвестных: первый (per) контролирует число дней в скользящем среднем и второй (v4) контролирует направление сравнения (выше или ниже).
Третий шаблон правила (case 3) идентичен второму (case 2), за исключением того, что вместо простого скользящего среднего используется экспоненциальное .
Было много рассуждений относительно важности данных по суммарной величине открытых позиций на рынке (открытому интересу). Лэрри Виллиамс (Larry Williams, 1979) упомянул, что снижение открытого интереса в течение периодов застоя цен указывает на потенциал для сильного подъема. Сокращение открытого интереса может быть интерпретировано как снижение количест
...[ ... ]
МЕТОДОЛОГИЯ ТЕСТИРОВАНИЯ
Ниже
МЕТОДОЛОГИЯ ТЕСТИРОВАНИЯ
Ниже приводятся шаги, необходимые для эволюционного создания модели входа, основанной на шаблонах правил, используемых в этом исследовании:
1. Выберите произвольную хромосому с 12 элементами. Она представляет собой потенциальное решение (случайное и, вероятно, не очень хорошее).
2. Поставьте в соответствие каждому параметру правил определенное число, чтобы получить три полностью определенных правила (одно для каждого гена), и определите значение ИСТИНА/ЛОЖЬ для всех дней во временном ряду.
3. Обработайте ценовые данные день за днем. Если в данный день
все три правила возвращают значение ИСТИНА и если нет те
кущей длинной (или короткий) позиции, то модель получает
рыночный приказ на покупку (или продажу) при завтрашнем
открытии.
4. Если имеется позиция, используйте стандартную стратегию выхода для осуществления выхода.
5. Оцените торговую эффективность потенциального решения. Для этого определите "пригодность решения" как соотношение риск/прибыль в годовом выражении - величина, которая фактически является значением {-критерия.
6.. Сообщите генетическому оптимизатору, насколько пригодно (в вышеупомянутом смысле) потенциальное решение (хромосома) . Это позволит генетическому оптимизатору обновить популяцию хромосом.
7. Если решение отвечает определенным критериям, то следует сгенерировать сводку эффективности системы и другую информацию и сохранить эти данные в файле для последующего рассмотрения.
8. Повторять вышеупомянутые шаги снова и с
...[ ... ]