Технический анализ Графический анализ
Японские свечи Индикаторы Форекс Механические торговые системы Лучшие дилинговые центры
Пардо Р. Разработка, тестирование и оптимизация торговых систем для биржевого трейдера

Книга Р. Пардо «Разработка, тестирование и оптимизация торговых систем» – это классика мирового трейдинга. Это путь от неуверенности, бессистемности, расшатанных нервов, изматывающих стрессов к прибыльному трейдингу, опирающемуся на изощренное оружие, которым оснащает себя каждый трейдер – Успешную Торговую Систему.

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

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

3 5 7 9 11 13 15

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

10 20 30 40 50 60 70 80 90 100

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

МА1 3 5 7 9 11 13 15

МА2 10 10 10 10 10 10 10

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

МА1 3 5 7 9 11 13 15

МА2 20 20 20 20 20 20 20

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

МА1 3 5 7 9 11 13 15

МА2 100 100 100 100 100 100 100

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

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

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

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

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

МА1 от 1 до 15 с шагом 2 = 8 шагов
МА2 от 5 до 100 с шагом 5 = 20 шагов
VB1 от 0 до 500 с шагом 25 = 21 шаг
VB2 от 0 до 500 с шагом 25 = 21 шаг

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

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

МА1 от 1 до 15 с шагом 1 = 15 шагов
МА2 от 5 до 101 с шагом 2 = 49 шагов
VB1 от 0 до 500 с шагом 10 = 51 шаг
VB2 от 0 до 500 с шагом 10 = 51 шаг

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

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

Лучшие дилинговые центры:
Содержание Далее >>
Технический анализ
Хостинг от uCoz