Поиск с приоритетом шагов
Поиск
с приоритетом шагов сканирует в одно время одну переменную, а выбранное
значение сохраняется постоянным для каждого из следующих сканирований, в целях
снижения отрицательного воздействия на эффективность. Рассмотрим предыдущий
тестовый набор из 4 переменных:
МА1 от 1 до 15 с шагом 1 =15 шагов
МА2 от 5 до 101 с шагом 2 = 49 шагов
VB1 от 0 до 500 с шагом 10 = 51 шаг
VB2 от 0 до 500 с шагом 10 =51 шаг
То,
что по временным затратам делало решетчатый поиск непригодным для проведения
данного теста, то для метода поиска с приоритетом шагов вполне по силам.
Тестовый прогон будет состоять всего из 166 тестов (15+49+51+51=166), а это
совсем другое дело. Как это делается? И в чем недостаток этого метода?
Первая
переменная считается наиболее важной и сканируется первой, при постоянных
значениях каждой из трех остальных переменных. Константы для трех других
переменных могут выбираться случайно или априорно. Так называемый «серединный»
подход использует в качестве констант середину каждого диапазона сканирования.
Первое сканирование будет таким:
В
первом сканировании все возможные значения МА1 оцениваются при постоянных
значениях МА2, VB1 и VB2. Каково значение допущения, что МА1 является самой
важной переменной? Первый тест будет определять оптимальное значение МА1,
которое затем будет сохраняться постоянным в последующих сканированиях второй,
третьей и четвертой переменной.
Например,
допустим, что первый шаг этого теста определил топ-модель со значением МА1,
равным 5. Следующий шаг, сканирование второй переменной, будет проводиться с
помощью следующих комбинаций:
Это
сканирование, в свою очередь, определит оптимальное значение для МА2. Это
оптимальное значение, например, 29, в дальнейшем будет использовано в третьем и
четвертом сканированиях.
Два
преимущества поиска с приоритетом шагов — скорость и оценка относительного
влияния каждой переменной. Наиболее значимая переменная модели — та, которая
оказывает наибольшее влияние на эффективность. Допустим, что сканирование МА1
дало следующие результаты:
В
этом же тесте сканирование VB1 дает следующие прибыли и убытки:
Различные
значения МА1 привели к серьезному изменению прибылей и убытков, в то время как
различные значения VB1 привели к небольшим изменениям. Вывод из этого — в
данной модели МА1 является более значимой переменной, чем VB1.
Это
может привести к двум следствиям. Возможно, полосы волатильности (volatility
bands) слабо помогают данной торговой модели. Возможно, их можно убрать. При
разработке модели действует принцип «меньшее-лишнее». Безусловно, учитывая
небольшое изменение, которое давали разные значения переменной VB1, нет
достаточных причин проводить более глубокий поиск. Учитывая небольшое число
тестов, требуемых для выполнения этого поиска, затраты на него невелики.
С
другой стороны, недостаток скрупулезности, вызываемый очень ограниченным
диапазоном поиска с приоритетом шагов, в некоторых случаях может оказаться
большим недостатком, особенно если при пошаговом поиске обнаруживается, что
каждая переменная существенно влияет на эффективность.
Статья размещена в рубрике: Разработка, тестирование и оптимизация торговых систем для биржевого трейдера
|