Разделы



Виды оптимизаторов

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

Скрытые оптимизаторы

Бывает, что нельзя кликнуть мышкой на кнопку с надписью Оптимизи­ровать. Нет команды, которую можно было бы отдать программе — да нет ни самой программы, ни компьютера вообще. Значит ли это, что оп­тимизации не происходит? Нет. Даже при отсутствии видимого оптими­затора и признаков оптимизации процесс идет сам по себе — это называ­ется скрытой оптимизацией. Все происходит таким образом: трейдер ис­пытывает набор правил, основанный на некоторых идеях, касающихся рынка. Результаты системы неудовлетворительны, и трейдер перераба­тывает идеи, меняет правила и снова тестирует систему, получая лучший результат. Повторив свои действия несколько раз, он получает систему, которой можно доверить реальную торговлю. Можно ли считать эту сис­тему оптимизированной? Поскольку никакие правила или параметры не подвергались модификации с помощью компьютерных программ, кажет­ся, что трейдер с успехом разработал неоптимизированную систему. Но


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

Рынок Forex - это великолепная возможность беспрепятственного, ничем не ограниченного заработка, который позволяет воплощать собственные аналитические способности!

Оптимизаторы с лобовым подходом

Оптимизатор с лобовым подходом определяет оптимальное решение пу­тем систематического перебора всех потенциальных вариантов, т.е. соче­таний правил, параметров или того и другого вместе. Поскольку требуется проверить все варианты, оптимизация может быть чрезвычайно медлен­ной, и, тем медленнее она идет, чем больше комбинаций подлежит рассмот­рению. Таким образом, оптимизация с лобовым подходом подвержена дей­ствию правил комбинаторного взрыва. Насколько же медленна оптими­зация с лобовым подходом? Рассмотрим случай, когда у нас есть четыре параметра и каждый из них может принимать одно из 50 значений. Лобо­вая оптимизация потребует перебрать в тестах 504 (около б миллионов) со­четаний параметров для поиска одного идеального; если (как, например, характерно для TradeStation ) каждый тест займет 1,62 с, то весь процесс займет около 4 месяцев. Этот подход не очень практичен, особенно при большом количестве параметров и их значений, а также в том случае, если, кроме оптимизации, у вас есть и другие интересы в этой жизни. Тем не менее оптимизация с лобовым подходом полезна и эффективна; при пра­вильном использовании она всегда находит самый лучший вариант, так что лобовой подход предпочтителен для задач, где количество комбинаций мож­но перебрать за несколько минут, а не за месяцы и годы.

п»ї

Для оптимизации с лобовым подходом не требуется длинных программ, обычно используются простые циклы. Параметры изменяются от началь­ного до конечного значения с определенным шагом при помощи операто­ра For loop (С, C + + , Бейсик, Pascal /Delphi ) или Do loop (FORTRAN ). Опти­мизатор с лобовым подходом для двух параметров, написанный на совре­менном диалекте Бейсика, может выглядеть примерно так:


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

Как пример практической оптимизации с лобовым подходом рассмот­рим систему, основанную на пересечении двух скользящих средних, реа­лизованную при помощи TradeStation . Система оптимизировалась по по­казателю общей прибыли (это единственный показатель, который TradeStation может оптимизировать без дополнительных модулей). Ниже приведен код для торговой системы на двух скользящих средних:

Система была оптимизирована изменением периода первой скользящей средней (LenA ) от 2 до 10 с шагом в 2. Период второй скользящей средней (LenB ) оптимизировался от 2 до 50 с тем же шагом. Шаг был принят бо­лее 1, чтобы испытывалось менее 200 сочетаний параметров (TradeStation может хранить данные не более чем о 200 оптимизационных тестах). По­скольку были исследованы не все возможные сочетания параметров, оп­тимизация не была проведена идеально; лучшее значение могло оказать­ся пропущенным при поиске. Таким образом, оптимизация проходила в 125 тестов, что заняло 3 мин. 24 с времени для обработки данных за 5 лет исторических данных на конец дня на компьютере с процессором Intel 486 частотой 66 МГц. Полученные результаты были загружены в таблицу Excel и сортировались по общей прибыли. В табл. 3-1 приведены различные показатели эффективности для 25 лучших вариантов.

В таблице: LENA означает период короткой скользящей средней, LENB — период длинной скользящей средней, ЧИСТ. — чистую прибыль, Д.ПРИБ, — чистую прибыль для длинных позиций, К.ПРИБ. — чистую при­быль для коротких позиций, Ф.ПРИБ. — фактор прибыли, ДОХ — общую (не годовую) доходность счета, МаксПК — максимальное падение капи­тала, СДЕЛ — общее количество совершенных сделок, ПРИБ % — процент прибыльных сделок.

п»ї

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


Привычная трейдерская мудрость гласит: Тренд— твой друг. При этом если вторая скользящая средняя имеет период меньше первого, то наиболее выгодные сделки в табл. 1-3 совер­шены против тренда. Эти выгодные контртрендовые сделки могли быть не обнаружены, если бы для поиска не использовалась оптимизационная процедура.

Читать далее: Оптимизация под управлением пользователя