Развитие моделей входа, основанных на правилах
Что бы произошло, если ГА позволяли искать не просто лучшие параметры (именно так чаще всего используют ГА), но и лучшие правила? В этом разделе приводится результат использования ГА для развития законченной модели входа путем поиска оптимальных правил и параметров для этих правил. Несмотря на сложность, эта методология оказалась эффективной в нашем первом исследовании. Как можно использовать ГА для поиска наилучших торговых правил? Доморощенный ГА просто жонглирует числами. Необходимо найти способ нумерации различных наборов правил. Этого можно достичь многими способами.
Простой и эффективный метод включает в себя построение набора шаблонов правил. Шаблон правила — это частичное описание правила с оставленными пробелами, которые необходимо заполнить. Например, если некоторые из правил предыдущих глав рассмотреть как шаблоны правил, то пробелами будут значения периодов усреднения, порогов и других параметров. Шаблоны правил, определенные таким образом, несложно пронумеровать, поставив в соответствие каждому шаблону набор чисел. Первое число в наборе используется как индекс в таблице шаблонов правил. Оставшиеся числа набора используются для заполнения пробелов в шаблоне, в результате чего мы получаем четко определенное правило. Хотя в данном исследовании использовался язык C++, данный метод также можно реализовать в TradeStation с помощью программы TSEVOLVE, созданной ScientificConsultant Services (5166963333).
Термин генетический поиск означает использование ГА для поиска самых лучших решений, т.е. имеющих максимальную функцию пригодности. Как правило, набор потенциальных решений, в котором ведется поиск, достигает огромных размеров. В данном приложении мы хотим использовать эволюционный процесс, чтобы выявить набор чисел (генотипов), которые соответствуют основанным на правилах моделям входов (фенотипам) с максимальной функцией пригодности (или торговой эффективности). Иными словами, мы собираемся заняться селективным выращиванием методов входа, основанных на правилах! Вместо того чтобы начинать с конкретного принципа, на котором основывается модель (сезонность, пробой) , в данном случае для начала возьмем набор идей, которые могут способствовать созданию выгодного метода входа. Вместо того чтобы последовательно проверять ценность этих подходов, будет сделано нечто необычное: генетическому процессу эволюции представится возможность создать наилучшую модель входа из набора необработанных идей. ГА будут искать в чрезвычайно большом множестве решений наилучшую модель входа, которая может быть получена для определенных данных и шаблонов правил. Количество правил для каждой модели будет ограничено во избежание подгонки под исторические данные. Данная задача сводится к поиску оптимальных наборов чисел. Без использования ГА такой массированный поиск решений был бы практически невозможен и неразумен в любом смысле. Конечно, вместо ГА всегда можно осуществить лобовую оптимизацию — особенно, если вы располагаете несколькими тысячелетиями на проведение этой работы.
В качестве другой альтернативы можно воспользоваться эмпирическим поиском оптимальных правил, т.е. попытаться найти наилучшие правила с помощью наблюдений, однако этот подход не обязательно позволит максимизировать такую сложную функцию, как соотношение риск/прибыль. ГА обеспечивают эффективный способ выполнения очень больших поисков, особенно когда нет простых эвристических методов решения данной задачи.
Эволюционный поиск модели входа
В данном примере популяция моделей входа с тремя правилами была получена с помощью генетического оптимизатора OptEvolve, написанного на С ++ (Scientific Consultants Services, 5166963333). Каждый ген соответствует блоку из четырех чисел и шаблону правила — таким образом создается соответствие наборов чисел и наборов правил. Каждая хромосома содержит три гена и состоит из 12 чисел: первые четыре числа соответствуют первому гену (или правилу), следующие четыре соответствуют второму гену (или правилу), а последние четыре соответствуют третьему гену(или правилу). ГА должен знать размер гена, чтобы не разрушить важные гены при выполнении скрещивания. Скрещивание должно произойти только на границах генов (блоков из четырех чисел).
В настоящем примере это будет достигнуто путем приравнивания размера гена, который является параметром генетического оптимизатора, к четырем. Как упомянуто, каждый ген составлен из четырех чисел. Первое число является индексом в таблице возможных шаблонов правил. Например, если это число 1, то выбирается шаблон сравнения цен, в котором различие между двумя ценами закрытия сравнивается с некоторым порогом (см. код). Остальные три числа в гене соответствуют значению порога и двум анализируемым периодам для сравниваемых цен. Если первое число из блока 4 чисел равно 2, то будет выбран шаблон сравнения цены и скользящего среднего. В этом случае два из оставшихся трех чисел контролировали бы период скользящего среднего и направление сравнения (должна ли цена быть выше или ниже скользящего среднего). Вообще, если первое число в блоке из четырех чисел равно n, тогда используется шаблон для правила n, а любые требуемые параметры определены оставшимися тремя числами в блоке из четырех чисел. Эта схема кодирования облегчает поддержание расширяемой базы данных для шаблонов правил. Каждый из трех блоков четырех чисел связан с соответствующим правилом. Модель входа, состоящая из трех правил, соответствует любой хромосоме, состоящей из 12 чисел.
Отправить комментарий