Пример стратегии на основе индикаторов ADX DI+ и DI-

wikipedia

Материалы: adx-script.tscript (Скачайте файл. Откройте в программе TSLab "Лаб" -> "Управление скриптами" → Нажмите кнопку "Загрузить из файла").

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

В wiki предложена стратегия, которую и построим:

  • Для длинных позиций:

    • Купить, если +DI > -DI и ADX растёт.

    • Выйти из позиции, если +DI < -DI или ADX падает.

  • Для коротких позиций:

    • Войти в короткую позицию, если +DI < -DI и ADX растёт.

    • Закрыть короткую позицию, если +DI > -DI или ADX падает.

Стратегия достаточно проста, если определить для себя, что это такое «растет» и «падает». Человек, видя график индикатора, четко может сказать, что вот здесь индикатор растет, а здесь его значение уменьшается. Но человек это видит только в истории и не знает, что будет со значением индикатора в будущем. Я могу предложить несколько вариантов определения роста индикатора. Например, если предыдущее значение ADX меньше, чем текущее, очевидно индикатор стал больше, а значит растет. В программе это легко записать:

ADX[i-1] < ADX

Или например, такая запись:

ADX[i-5]<ADX 

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

ADX[i-5]<ADX[i-4] && ADX[i-4]<ADX[i-3] && ADX[i-3]<ADX[i-2] && ADX[i-2]<ADX[i-1] && ADX[i-1]<ADX

Получается последовательный ряд, подтверждающий наличие роста. Таких моментов в истории уже не так уж и много. И здесь важно понимать, а не может ли такое условие означать окончание роста. Т.е. как бы там ни было, человеку, или с помощью оптимизации константы ADX > ADX[i-Константа], или «на глаз», необходимо определить, что индикатор растет. Можно взять среднее значение ADX и относительно него определять состояние индикатора. SMAadx < ADX Вариантов много, есть например такой вариант

ADX > ADX[i-speed]

Т.е. вместо фиксированного бара, я поставил некоторый индикатор. Здесь есть один маленький технический момент. В блоках формула и логическая формула есть параметр «Начинать С», его необходимо поставить больше, чем возможное значение индикатора. Например, при оптимизации, мы можем задать пройти значения константы от одного до 1000, вот в блоке формулы, данный параметр необходимо поставить 1001. Возможно, стоит сгладить DI, перед тем как делать условия для входа, или как писал Уайлдер, необходимо смотреть на величину ADX, если значение индикатора маленькое, то в данный момент тренда нет.

Last updated