
Критерии тренда в трейдинге
Введение
Все трейдеры знают фразу «Тренд — ваш друг». Действительно, трендовые движения цены могут приносить довольно большую прибыль. Торговля по тренду основывается на предположении о том, что движение цены продолжится в том же направлении. Основная проблема такого трейдинга — это определить время начала и окончания тренда с достаточной точностью.
На сегодняшний день существует очень много подходов к определению и расчету параметров тренда. В этой статье мы рассмотрим наиболее интересные из них. И попробуем применить их на практике.
Сглаживание и тренды
Движение цены можно представить с помощью простой модели. Есть какая-то детерминированная составляющая, которая зависит от времени. К ней прибавляется какая-то случайная компонента, которая ни от чего не зависит и ведет себя непредсказуемо. Одна из задач, которая стоит перед трейдером — каким-либо образом снизить влияние этой компоненты.
Одним, из наиболее простых фильтров, является простая скользящая средняя. Но, у этого индикатора есть один серьезный недостаток — он запаздывает. Давайте смоделируем тренд, и применим к нему SMA с периодом 3.
Тренд | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
SMA | - | - | 1 | 2 | 3 | 4 |
А теперь попытаемся избавиться от запаздывания. Формула SMA выглядит так:
Добавим к ней поправку, которая будет равна среднему изменению цены за один бар:
Посмотрим, как изменятся коэффициенты нашего нового индикатора:
Индикатор с такими коэффициентами будет точно попадать в тренд. Давайте обобщим этот индикатор на любое количество обрабатываемых цен. Расчет индикатора с периодом, равным 4, будет выглядеть так.
Сначала находим значение SMA:
Поправок на среднее изменение цены становится уже две:
То есть, мы рассчитываем среднее изменение цены относительно центра SMA. Тогда, формула индикатора будет такой:
Отличие этого индикатора от SMA особенно заметно при небольших периодах.
Главный недостаток такого подхода заключается в том, что нет никаких критериев, по которым можно было бы выбрать период индикатора. Трейдер должен выбирать его произвольно, исходя из своих собственных соображений.
Давайте попробуем построить индикатор, который не будет зависеть от периода. Предположим, что у нас есть временной ряд V, который мы хотели бы спрогнозировать на шаг вперед. Для прогноза будем использовать самый простой метод — что было, то и будет. Например, у нас есть начальное значение V, тогда прогноз на один шаг вперед будет равен этому значению:
После того, как появится новое значение V, мы найдем полусумму между прогнозом и V. Полученное значение будет прогнозом на следующий шаг:
То есть, прогноз будет корректироваться по мере появления новых значений временного ряда. Такой способ прогнозирования приводит к экспоненциальному сглаживанию с коэффициентом 0.5.
Теперь давайте немного изменим подход к прогнозированию. Предположим, что изменение прогноза происходит с одинаковой интенсивностью:
То есть, все значения прогнозов принадлежат линейному тренду. Формула индикатора, построенного на этом принципе, будет выглядеть так:
У нас получился рекурсивный индикатор — для расчета текущего значения индикатора используются его прошлые значения. Но, в таком виде он будет неустойчивым — один из коэффициентов равен 1. Чтобы преодолеть эту неприятность, применим ту же рекурсию к Indicator[i+1]:
Индикатор стал состоять из двух частей — SMA с периодом 2 и половины скорости индикатора на предыдущих отсчетах. Внесем еще одно изменение, чтобы сделать индикатор более устойчивым:
А вот так выглядит наш новый индикатор по сравнению с аналогичной ему EMA с периодом, равным 3.
К сожалению, подавить шумы полностью — задача практически невыполнимая. Но выделение трендовой составляющей в движении цены вполне возможно. Оба индикатора чувствительны к изменениям параметров тренда. При этом их запаздывание сведено к минимально возможному. Эти индикаторы можно применять как самостоятельно, для сглаживания цены, так и в качестве источника данных для других индикаторов.
Критерии тренда
Критерии тренда правильнее называть критериями случайности. Суть их применения очень проста. С помощью критерия мы проверяем, насколько случаен ряд с ценами. Если критерий нам показывает, что ряд не случаен, то можно говорить о том, что это тренд. Давайте посмотрим, какие бывают критерии, и как их можно применять в техническом анализе.
Критерий Аббе. Этот критерий основан на вычислении дисперсии двумя различными способами. Обычная выборочная дисперсия чувствительна к тренду. А в дисперсии Аллана влияние тренда стремится к нулю. Сравнивая между собой эти дисперсии, можно оценить вклад трендовой составляющей в изменение цены.
Для применения в трейдинге я немного изменю расчет этого критерия:
Этот критерий указывает только на наличие тренда. Направление тренда нужно определять другими способами.
Этот критерий может помочь в определении моментов смены тренда.
Критерий знаков 1-ых разностей. Этот критерий очень прост и интуитивно понятен. Берем N цен. Разбиваем их на последовательные пары, которых будет N-1. К каждой паре применяем функцию знаков:
После чего, получаем значение критерия:
В индикаторе RSI используется такой же подход, только движения цены вверх и вниз рассчитываются отдельно, без учета знаков.
У этой статистики есть один недостаток — она не различает последовательность появления знаков. То есть, мы можем поменять цены местами и получить тот же результат. Чтобы избавиться от этого недостатка, мы можем назначить веса каждому знаку, в зависимости от момента его появления. Тогда расчет критерия будет выглядеть так:
В этом случае, последовательность знаков становится уникальной, а один и тот же результат возможен только при схожести двух временных рядов.
Давайте посмотрим, как можно использовать этот критерий для технического анализа. Значения, которые можно получить с помощью этого критерия, лежат в строго ограниченных пределах. Интуиция подсказывает, что значения, близкие к нулю, могут встречаться чаще. Но, тут лучше проверить.
Предположение оказалось верным. Говоря строгим трейдерским языком: мы получили эмпирическую функцию вероятности. Что можно извлечь из этой функции? Мы можем получить уровни перекупленности/перепроданности. Я поставил этот уровень на 33% — то есть, индикатор фильтрует треть самых низких и самых больших значений. Треть, которая остается в середине — флет. А сам индикатор выглядит так:
Критерий знаков относится к непараметрическим. Основное достоинство таких критериев — их устойчивость и нечувствительность к резким изменениям цены.
Критерий Кендалла. Этот критерий тоже построен на функции знаков. Но применяется эта функция немного иначе.
Расчет этого критерия можно провести в два этапа. Сначала для каждой цены найдем сумму знаков со всеми предшествующими ей ценами:
После чего, находим общую сумму этих значений:
С помощью этого критерия мы сравниваем количество движений цены вверх и вниз по всем попарным сочетаниям цен. Благодаря этому, мы можем точнее оценить направление и силу тренда.
Ранговый критерий Вальда – Вольфовица. Для расчета этого критерия нам потребуется знать ранг каждой цены. Ранг – это количество цен, которые лежат ниже текущей. Для примера, я возьму 5 значений цены:
Индекс | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
Цена | 1.05702 | 1.05910 | 1.05783 | 1.05761 | 1.05657 |
Ранг | 1 | 4 | 3 | 2 | 0 |
Цена с индексом 0 выше только одной цены с индексом 4. Значит, ранг этой цены равен 1. Цена с индексом 1 больше всех остальных, и ее ранг равен 4. Таким же образом подсчитываются ранги всех остальных цен.
Суть этого критерия очень проста — если цены образуют тренд, то и их ранги будут упорядочены. Ну а если ранги перемешаны не пойми как, то и с ценами творится не пойми что. В этом примере цены частично упорядочены, что может говорить о наличии тренда.
Значение этого критерия рассчитывается по формуле:
По своей сути этот критерий представляет собой робастный вариант автокорреляционной функции. А индикатор, построенный на его основе, выглядит так:
Критерий Фостера – Стюарта. Этот критерий позволяет одновременно оценить наличие тренда в средних и дисперсиях. Он основан на подсчете количества верхних и нижних рекордов. Для каждого отсчета цены определяем значение двух переменных H и L.
Переменная H равна 1, если текущая цена выше всех предшествующих. Переменная L равна 1, если цена ниже всех предыдущих. Во всех остальных случаях эти переменные равны нулю. Параметры критерия рассчитываются так:
Параметр T показывает силу и направление тренда. Параметр D аналогичен критерию Аббе и указывает только на наличие тренда. Эти параметры могут использоваться как отдельно, так и в сочетании друг с другом.
Этот критерий можно модернизировать так, чтобы учитывать оба параметра одновременно. В классическом варианте тренд можно считать состоявшимся, если достаточно велико значение T или D (для T, конечно же, нужно брать абсолютное значение). Из этого следует, что при тренде произведение этих параметров максимально отклоняется от ноля. Такой подход позволяет выявить наиболее сильные тренды.
Теперь давайте посмотрим, как можно использовать эти критерии в трейдинге.
Торговые стратегии
К сожалению, критерии тренда ничего не говорят о начале тренда. Они указывают только на то, что тренд состоялся. Именно это их свойство можно использовать в трейдинге — после сильного тренда возможно изменение направления движения цены на противоположное.
На основе такого предположения можно создать простую стратегию. Если критерий тренда достиг какого-то минимального значения, то нужно открыть позицию buy. Для открытия позиций sell, критерий должен достичь максимума. То есть, критерии тренда используются для определения перекупленности/перепроданности. Такой подход выглядит многообещающим.
Применение дополнительных фильтров может улучшить результативность стратегии. В качестве такого фильтра можно использовать критерий Аббе. Напомню, что этот критерий только определяет наличие тренда. А вот направление тренда нужно определять другими способами. Например, я буду определять тренд с помощью средней скорости движения цены:
Если полученное значение выше или ниже определенного уровня, то я считаю тренд состоявшимся. Для подтверждения этого предположения, я использую критерий Аббе. Если его значение выше определенного уровня, то предположение о тренде истинно. Открытие и закрытие позиций я оставляю, как в предыдущем примере. Результат такой стратегии выглядит так:
Критерий Фостера – Стюарта позволяет сразу оценить как наличие тренда, так и его направление. То есть, этот критерий может одновременно служить и сигналом, и фильтром. Применение этого критерия может дать такие результаты:
Модернизированный вариант этого критерия позволяет получить другие результаты.
Применение критериев тренда вполне оправданно, но связанно с некоторыми трудностями:
- Во-первых, необходимо использовать дополнительные фильтры, чтобы уменьшить количество ложных сигналов.
- Во-вторых, нужны отдельные правила для закрытия позиций, чтобы снизить риски и нагрузку на депозит.
- В-третьих, критерии тренда могут быть чувствительны к количеству обрабатываемых цен. Поэтому, при их применении может потребоваться предварительное сглаживание временного ряда. А при небольших периодах сглаживание должно быть обязательным.
Заключение
На сегодняшний день существует несколько десятков критериев тренда. Применение этих критериев может оказаться полезным, как при анализе рыночных ситуаций, так и в торговле.
При написании статьи были использованы следующие программы.
Название | Тип | Описание |
---|---|---|
tSMA | индикатор | Трендовый аналог SMA
|
tEMA | индикатор | Трендовый аналог EMA с периодом 3 |
Abbe criterion | индикатор | Критерий Аббе |
Criterion Signs | индикатор | Критерий знаков 1-ых разностей |
scr Criterion Signs | скрипт | Скрипт позволяет оценить распределение значений критерия знаков
|
Kendall's criterion | индикатор | Критерий Кендалла |
Foster-Stewart criterion | индикатор | Критерий Фостера - Стюарта
|
Foster-Stewart criterion I | индикатор | Модернизированный вариант критерия Фостера - Стюарта |
Wald-Wolfowitz criterion | индикатор | Критерий Вальда - Вольфовица |
EA 3 criterions | советник | Советник торгует по 3 критериям
|
EA Abbe criterion | советник |
|
EA Foster-Stewart criterion | советник |
|
EA Foster-Stewart criterion I | советник |
|





- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
я постараюсь... есть еще несколько интересных критериев, включая определение точки разворота. Мне нужно придумать как их объяснить попроще.
по поводу тестера я не знаю в чем может быть проблема. у меня вот такое получается
Спасибо, попробую. А где вы ищете объяснения критериев и математических механизмов их обнаружения? Похоже на научные источники ...
Спасибо, попробую. А где вы ищете объяснения критериев и математических механизмов их обнаружения? Похоже на научные источники ...
литературы много, но все критерии чаще всего разбросаны то там, то здесь. Вот хорошая подборка разных критериев
Занимаюсь применением на практике описанного вами в статье критерия тренда Вальда - Вольфовича. Как я понимаю критерий Вальда-Вольфовича проверяет гипотезу о случайности/стационарности данных. В коде торговых советников важно понимать, что именно возвращает индикатор?
Правильно я понимаю, что Индикатор вычисляет вероятность (в процентах) того, что последовательность цен (в данном случае — значений open) является случайной на основе критерия Вальда-Вольфовича.
Результат сохраняется в буфере buffer[0] и представляет собой процентную вероятность (от 0 до 100).
Чем ближе значение к 100%, тем выше вероятность случайности (отсутствия тренда).
Чем ближе к 0%, тем выше вероятность неслучайности (наличие тренда или кластеризации)?
Логика расчета:
Индикатор ранжирует значения open за выбранный период ( iPeriod ), затем вычисляет статистику на основе рангов и преобразует её в процентное значение через CDF (эмпирическую функцию распределения):
Уровни на графике:
indicator_level1 = 33 и indicator_level2 = 67 — это ориентиры для интерпретации:
<33% — сильная неслучайность (возможен тренд).
>67% — высокая случайность (флэт).
Я верно понимаю интерпретацию представленного в ваше статье индикатора?
Занимаюсь применением на практике описанного вами в статье критерия тренда Вальда - Вольфовича. Как я понимаю критерий Вальда-Вольфовича проверяет гипотезу о случайности/стационарности данных. В коде торговых советников важно понимать, что именно возвращает индикатор?
Правильно я понимаю, что Индикатор вычисляет вероятность (в процентах) того, что последовательность цен (в данном случае — значений open) является случайной на основе критерия Вальда-Вольфовича.
Результат сохраняется в буфере buffer[0] и представляет собой процентную вероятность (от 0 до 100).
Чем ближе значение к 100%, тем выше вероятность случайности (отсутствия тренда).
Чем ближе к 0%, тем выше вероятность неслучайности (наличие тренда или кластеризации)?
Логика расчета:
Индикатор ранжирует значения open за выбранный период ( iPeriod ), затем вычисляет статистику на основе рангов и преобразует её в процентное значение через CDF (эмпирическую функцию распределения):
Уровни на графике:
indicator_level1 = 33 и indicator_level2 = 67 — это ориентиры для интерпретации:
<33% — сильная неслучайность (возможен тренд).
>67% — высокая случайность (флэт).
Я верно понимаю интерпретацию представленного в ваше статье индикатора?
Да, все верно Вы понимаете. Единственное - уровни 33 и 67 я задал просто потому, что нужны были какие-то уровни. Вы можете задать другие, например, 25 и 80.
Да, все верно Вы понимаете. Единственное - уровни 33 и 67 я задал просто потому, что нужны были какие-то уровни. Вы можете задать другие, например, 25 и 80.
Спасибо за ответ.