назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [ 13 ] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33]


13

Глава 5

Поиск и оценка

Эта глава охватывает следующие области:

1. Методы поиска.

2. Методы оценки.

3. Оценка результатов тестового прогона.

Это самые эзотерические и менее понятные аспекты процесса. тестирования и оптимизации. Они кажутся сухими. Однако их влияние на тестирование и понимание результатов тестирования очень велико.

Методы поиска

При всяком тестировании и оптимизации используется некоторый тип метода поиска, задающий число проводимых тестов и порядок их выполнения, а также диапазон временньгх периодов, на котором будет применяться исследуемая стратегия. Метод поиска - это способ перебора различньгх параметров, определяемый данной оптимизацией, и выбора наи;тучшего набора параметров модели.

Другими словами, любая оптимизация подвергает набор исторических данных серии тестов. Порядок, в котором проводятся эти тесты, может влиять на определение лучшего набора параметров. Это является причиной существования разных видов поиска в, так называемом, пространстве параметров.

Индивидуальный (отдельный) тест - это одна торговая имитация на одном отрезке исторических данных при одном наборе

переменных модели. С помощью переменных модели торговая имитация рассчитывает все сделки и вычисляет статистическую характеристику модели. Оптимизация или тестовый прогон - это связка или набор тестов. Успешный результат такого теста - набор моделей, удовлетворяющих критериям эффективности. Неуспешный тестовый прогон может привести к отсутствию моделей, удовлетворяющих критериям эффективности.

Решетчатый поиск (The Grid Search)

Рассмотрим тест торговой системы, основанной на пересечении двух скользящих средних на рынке фьючерсов на S&P с 03.01.1989 по 31.12.1990. первая скользящая средняя (МА1) будет протестирована на значениях от 3 до 15 дней с шагом 2 дня. На языке исследователей, эта скользящая средняя будет проскани-рована от 3 до 15 по 2. Для первой скользящей средней будут протестированы семь разных значений:

Вторая скользящая средняя (МА2) будет просканирована от 10 до 100 с шагом 10. Будут протестированы 10 ее разных значений:

Весь этот тестовый прогон будет состоять из 70 возможных комбинаций значений двух диапазонов сканирования (7x10=70). Тестовый прогон проводится следующим образом. Сначала каждое возможное значение МА1 тестируется с первым возможным значением МА2:

3 10

5 10

7 10

9 10

И 10

13 10

15 10

После того как этот тестовый цикл завершен, тестовая процедура увеличивает переменную МА2. Каждое возможное значение МА1 тестируется со вторым возможным значением МА2:

МА1 3 МА2 20

5 20

7 20

9 20

13 20

15 20



Этот процесс продолжается до тех пор, пока каждое возможное значение МА1 не будет протестировано с последним возможным значением МА2. Последними тестами будут следующие:

МА1 3 5 7 9 11 13 15 МА2 100 100 100 100 100 100 100

Эффективность торговой системы вычисляется для каждой из пар значений переменных МА1 и МА2. Торговая эффективность каждой такой пары оценивается в соответствии с типами оценки, которые задают условия данного тестового прогона. Топ-модели (лучшие модели) - это те модели, которые удовлетворяют критериям оценивания. Если критерии и процесс тестирования являются содержательными, то эти топ-модели будут кандидатами на участие в следующем цикле тестирования. На Рисунке 5-1 показан поиск на данной решетке пространства переменных.

13 15

Рис. 5-1. Решетчатый поиск - две переменные.

Этот метод поиска известен как решетчатый поиск. Два диапазона переменных задают решетку комбинаций переменных. Оценивается эффективность каждой комбинации. Другими словами, исследуются все узлы решетки. Это самый распространенный метод поиска. Существует и много других методов. Преимущество поиска по узлам решетки в его скрупулезности. Поскольку оценена каждая возможная комбинация, пропустить лучшую невозможно, за исключением случая, когда сам метод оценивания был плохим. Это будет обсуждаться позже.

Недостаток решетчатого выбора - его низкая скорость. В небольших тестах, подобных предыдущему примеру, время прогона было незначительным, особенно на быстрых современных персональных компьютерах. Предположив, что на один тест требуется одна секунда, поиск на решетке из 133 тестов занял бы всего 133 секунды, или 2.2 минуты.

Однако рассмотрим тест с четырьмя переменными. Допустим, что тестируются две различных скользящих средних и две полосы волатильности (VBI и VB2) вокруг каждой скользящей средней. Это дает следующие четыре диапазона сканирования:

МА1 МА2 VB1 VB2

от 1 до 15 от 5 до 100 от О до 500 от О до 500

с шагом 2 с шагом 5 с шагом 25 с шагом 25

= 8 шагов = 20 шагов = 21 шаг = 21 шаг

Для этого необходим тестовый прогон, эквивалентный 70560 тестам (8 х 20 х 21 х 21=70560). При одной секунде на тест данный тестовый прогон займет 19.6 часа ((70560 тестов/60 се-кунд)/б0 минут = 19.6 часа). Это немалое время.

Что еще более ухудшает ситуацию, эти сканирования переменных достаточно грубы. Нельзя сказать, что было бы абсолютно излишним просканировать эти четыре переменные меньшими шагами, например:

МА1 МА2 VBI VB2

от I до 15 от 5 до 101 от О до 500 от О до 500

с шагом 1 с шагом 2 с шагом 10 с шагом 10

= 15 шагов = 49 шагов = 51 шаг = 51 шаг



Это требует тестового прогона, эквивалентного 1911735 тестам (15 X 49 X 51 X 51=1911735). При одной секунде на тест этот тестовый прогон займет 531 час (1911735 тестов/60 секунд)/б0 минут = 531 час). Это равно 22.13 дня (531/24 = 22.13). Конечно, это абсолютно непрактично и подчеркивает главный недостаток поиска на решетке.

Следовательно, чтобы сделать более крупные диапазоны сканирования и тесты с 3 и 4 переменными приемлемыми по скорости, необходимо использовать иные методы поиска. Метод поиска - это техника тестирования, которая отбирает комбинации переменных заранее заданным способом, чтобы выделить лучший набор переменных без тестирования каждой комбинации. Сушествует много методов поиска. Однако для того, чтобы выиграть в скорости, мы жертвуем некоторой степенью точности. Если в чем-то мы выигрываем, то в чем-то другом теряем.

Поиск с приоритетом шагов

Поиск с приоритетом шагов сканирует в одно время одну переменную, а выбранное значение сохраняется постоянным для каждого из следующих сканирований, в целях снижения отрицательного воздействия на эффективность. Рассмотрим предьщущий тестовый набор из 4 переменных:

МА1 МА2 VB1 VB2

от 1 до 15 от 5 до 101 от О до 500 от О до 500

с шагом 1 с шагом 2 с шагом 10 с шагом 10

= 15 шагов = 49 шагов = 51 шаг = 51 шаг

То, что по временным затратам делало решетчатый поиск непригодным для проведения данного теста, то для метода поиска с приоритетом шагов вполне по силам. Тестовый прогон будет состоять всего из 166 тестов (15+49+51+51 = 166), а это совсем другое дело. Как это делается? И в чем недостаток этого метода?

Первая переменная считается наиболее важной и сканируется первой, при постоянных значениях каждой из трех остальных переменных. Константы для трех других переменных могут выбираться случайно или априорно. Так называемый «серединный» подход использует в качестве констант середину каждого диапазона сканирования. Первое сканирование будет таким:

МА1: 1 2 3 4 5

МА2: 53 53 53 53 53

VBI: 250 250 250 250 250

VB2: 250 250 250 250 250

13 14 15

53 53 53

250 250 250

250 250 250

В первом сканировании все возможные значения МА1 оцениваются при постоянных значениях МА2, VB1 и VB2. Каково значение допущения, что МА1 является самой важной переменной? Первый тест будет определять оптимальное значение МА1, которое затем будет сохраняться постоянным в последующих сканированиях второй, третьей и четвертой переменной.

Например, допустим, что первый шаг этого теста определил топ-модель со значением МА1, равным 5. Следующий шаг, сканирование второй переменной, будет проводиться с помощью следующих комбинаций:

МА1: 5 5 5 5 5

МА2: 5 7 9 11 13

VB1: 250 250 250 250 250

VB2: 250 250 250 250 250

5 5 5

97 99 101

250 250 250

250 250 250

Это сканирование, в свою очередь, определит оптимальное значение для МА2. Это оптимальное значение, например, 29, в дальнейшем будет использовано в третьем и четвертом сканированиях.

Два преимущества поиска с приоритетом шагов - скорость и оценка относительного влияния каждой переменной. Наиболее значимая переменная модели - та, которая оказывает наибольшее влияние на эффективность. Допустим, что сканирование МА1 дало следующие результаты:

Прибыли&убытки (-$3,000)

$2,500

$5,000

$10,000

$15,000

МА1 Прибыли&убытки

6 $12,000

7 $9,000

8 $7,000

15 (-$3,000)

Убь№м°" сканирование VB1 дает следующие прибыли и

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [ 13 ] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33]