шаблоны правил и стратегия торговой системы
C ++ код описывает шаблоны
правил и стратегию торговой системы. Шаблоны правил определяются с помощью
функции Rules . Аргументы v 1, v 2, v 3 и v 4 (четыре
числа, которые содержит каждый ген) несут всю информацию, требуемую для
реализации шаблонов правил. Аргумент v 1 используется для выбора
требуемого шаблона правила из 10 доступных; аргументы v 2, v 3 и v 4 используются
для определения требуемых параметров каждого правила (направления сравнения,
периоды скользящих средних и т.д.). Затем правило оценивается на всех днях, и
оценки (1 для ИСТИНА, 0 для ЛОЖЬ) помещаются в вектор cms ,
возвращающий результаты функции.
Макрос BiasedPosScale (x , а)
используется для создания соответствия между целыми числами от 0 до 1000 и
непрерывным диапазоном от 0 до а. Макрос используется, чтобы вычислить периоды
обратного обзора для определения ценовых экстремумов и периоды скользящих
средних v 2, v 3 или v 4, значения которых получены из
генетического алгоритма и пронумерованы целыми числами от 0 до 1000.
Соответствие между номерами от 1 до 1000 и числами из диапазона от 0 до а
нелинейно — оно устроено так, чтобы можно было более детально исследовать
меньшие значения параметров. Например, предположим, что период скользящего
среднего изменяется от 2 до 100 дней. Необходимо с одинаковой точностью производить
выбор лучшего решения между периодами 2, 3 и 4 и периодами 30, 50 и 90.
Точность поиска должна быть выше для маленьких чисел. Это связано с тем, что
изменение периода скользящего среднего от 2 до 5 дней сильнее повлияет на
результаты торговли, чем изменение от 50 до 60.
Занятия Forex - это великолепная возможность для Вас
подготовиться к прибыльной работе на бирже Forex!
Макрос LinearScale (x , а, b
) выполняет линейную адресацию целочисленного диапазона 0 ... 1000 к
диапазону а ... . Макрос обычно используется при вычислении порогов или
отклонений. В коде шаблона правила все параметры вычислены внутри функции Rules
, а не внутри ГА. Генетический алгоритм имеет инструкцию генерировать числа
в диапазоне от 0 до 1000, за исключением элементов хромосом 1, 5 и 9, которые
являются первыми числами в каждом гене и используются в качестве селекторов
шаблонов правил. Масштабирование проводится внутри функции Rules , так
как шаблоны для различных видов правил имеют различные диапазоны изменения
параметров и контрольных значений.
Процесс эволюции торговых систем
начинается со случайного выбора значений хромосомы. Генетический оптимизатор
выбирает два члена популяции и спаривает их (исходя из определения скрещивания,
нормы мутации и размера гена). Затем полученное потомство возвращается как
потенциальное решение. Когда компоненту ГА сообщают об эффективности
полученного решения, он сравнивает ее с наименее пригодным членом популяции.
Если пригодность потомства больше, чем у наименее пригодного члена, то ГА
заменяет наименее пригодный член решения полученным потомством. Этот процесс
повторяется в течение нескольких поколений и осуществляется с помощью
программной оболочки (не приведенной в данной книге), которая, в свою очередь,
делает повторные запросы к функции Model для моделирования торговли и
оценки пригодности системы.
Код функции Model почти
идентичен используемому в более ранних главах. До цикла индексации дней, в
котором генерируются приказы для торговли, функция Rules вызывается три
раза (один раз для каждого гена), и результаты помещаются во временные ряды rule
1, rule 2 и ruleЗ. При этом также подсчитывается средний истинный
диапазон за последние 50 дней, поскольку это необходимо для стандартного выхода
и оценки правил. Внутри цикла оценивание правил производится для текущего дня (rulel[cb],
rule2[cb], rule3[cb]), и если все оценки возвращают значение ИСТИНА, то
генерируется сигнал на покупку (или продажу, если исследуются входы в короткую
позицию). Входы запрограммированы стандартным способом для каждого из трех
тестируемых приказов. В эволюционном процессе используются только данные из
выборки.
Выходные данные, полученные от
программной оболочки, позволяют выбрать желаемое решение, которое можно
использовать в торговле отдельно или в группе моделей. Решения могут быть
легко сформулированы как понятные правила для оценки их физического смысла и
использования их в качестве элементов других систем.
Статья размещена в рубрике: Виды торговых систем
|