Главная | Новости FX CLUB | Торговые условия | Торговые платформы | Обучение трейдингу
О компании
Торговые условия
Открыть демо-счет
Открыть реальный счет
Ввод средств на счет
Вывод средств со счета
Торговая платформа
  Торговые платформы
Платформа Libertex
Платформа MetaTrader4™
Платформа Rumus
  Аналитика
Видеообзор рынков
Видео от FX CLUB
Аналитика Forex
Экономический календарь
  Обучающие материалы
Обучение Forex
Статьи форекс
Статьи forex











 





Поиск информации по сайту:
Пользовательского поиска

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

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

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

BestFitness = - 1.0E30

For Parml = Parm1Start To Parm1Stop By Parm1lncr

For Parm2 = Parm2Start To Parm2Stop2 By Parm2Incr

RunSystem (Parm1, Parm2, GlobalData)

CurrentFitness = CalcFitness (GlobalData)

WriteProgressLine (GlobalData)

If CurrentFitness > BestFitness Then

CurrentFitness = BestFitness

BestParm1 = Parm1

BestParm2 = Parm2

End If

Next Parm2

Next Parm1

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

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

{ Система пересечения двух скользящих средних в Easy Language }

Inputs: LenA(4), LenB(l0);

If (Average(Close, LenA) > Average(Close, LenB)) And

(Average(Close, LenA)[1] <= Average(Close, LenB)[1] ) Then

Buy ("A") 1 Contract at Market;

If (Average(Close, LenA) <= Average (Close, LenB)) And

(Average(Close, LenA)[1] > Average (Close, LenB)[1]) Then

Sell ("B") 1 Contract at Market;

Система была оптимизирована изменением периода первой скользящей средней (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 совершены против тренда. Эти выгодные контртрендовые сделки могли быть не обнаружены, если бы для поиска не использовалась оптимизационная процедура.

Статья размещена в рубрике: Анализ входов и выходов в сделки на финансовых рынках



 

Главная Софт Литература Читайте на сайте Советы новичкам Контакты

Copyright © 2007 fx-trader.ru