Версия страницы для печати Версия страницы для печати

Корреляция как индикатор циклов

Джон Эйлерс (John Ehlers)

   Время чтения: 20 минут

Использование фазовых углов для получения торговых сигналов и идентификация рыночного режима.

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

Циклические индикаторы могут давать очень быстрые и своевременные сигналы. Здесь я представлю новый циклический индикатор, который поможет вам входить в сделки на ранних этапах, а также переменную, которая поможет вам основывать торговые входы на преобладающих рыночных условиях.

В своей статье “Корреляция как индикатор тренда”, опубликованной в прошлом месяце, я описал, как можно разработать индикатор тренда, соотнеся цены с прямой линией, имеющей положительный наклон. Представленный мною индикатор тренда корреляции может помочь определить начало тренда, а также обнаружить его провал.

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

ИНДИКАТОР ЦИКЛА

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

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

ПРОВЕРКА КОНЦЕПЦИИ

Общая цель корреляции – установить связь между двумя функциями. Иногда корреляция может дать полезные сведения и даже новые открытия.

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

На рисунке 1 синим цветом показана форма входного сигнала (то есть форма и вид сигнала) в виде 20-баровой синусоиды.

Корреляция как индикатор циклов. Рисунок 1.
РИС. 1: В ФАЗЕ И ПОЧТИ БЕЗ ЗАПАЗДЫВАНИЯ. Корреляция данных с косинусоидой и косинусоидальной волной дает индикатор, который находится в фазе с данными. Фактически, корреляция индикатора настолько хороша, что его график перекрывает график входных данных.

При корреляции с 20-баровой косинусоидой выходной сигнал “индикатора” показан красным цветом. Корреляция индикатора настолько хороша, что его график перекрывает график входных данных. Да, входные данные действительно есть – вы можете убедиться в этом, настроив входные данные на 21-барную синусоиду при сохранении периода косинусоидальной корреляционной функции на уровне 20 баров, как я сделал на рисунке 2. Главное, что корреляция цены с косинусоидой дает индикатор, который находится точно в фазе с компонентом цикла в данных. В этом смысле никакого запаздывания не существует.

Корреляция как индикатор циклов. Рисунок 2.
РИСУНОК 2: ДА, ЗДЕСЬ ДЕЙСТВИТЕЛЬНО ДВА ГРАФИКА. Отстройка входных данных показывает, что они действительно есть. На рисунке 1 его почти не было видно из-за тесной корреляции.

Рыночные данные не являются ни чисто циклическими, ни статистически стационарными. Поэтому предположение о фиксированном периоде цикла для индикатора большую часть времени будет в той или иной степени неверным. Поскольку мы используем детерминированные (заранее известные) формы волн, мы можем провести стресс-тест индикатора, чтобы увидеть, насколько плохими могут быть результаты, если выбранный период цикла окажется ошибочным.

Корреляция как индикатор циклов. Рисунок 3.
РИСУНОК 3: ИНДИКАТОР СТРЕССОВОГО ТЕСТА 1. Насколько плохими будут результаты, если мы не выберем правильный период цикла? Давайте рассмотрим несколько примеров. Здесь ошибка настройки на 50 % короче – проверка того, что фактические данные имеют на 50 % больший период, чем предполагаемый период цикла, – приводит к опережению фазы менее чем на 45 градусов. Это означает, что если период цикла данных длиннее предполагаемого, то вы можете войти в сделку раньше.

На рисунке 3 показаны результаты, если данные имеют на 50 % больший период, чем предполагаемый период цикла. То есть период косинуса индикатора сохраняется на уровне 20 баров, а период входной синусоиды составляет 30 баров. В результате индикатор выдает ошибку. Если длина индикатора меньше периода входного сигнала, то индикатор выдает выходное значение раньше, чем идеально правильное. В результате ошибка для статического синусоидального сигнала имеет вид опережающей фазовой ошибки. В данном случае ошибка составляет менее 45 градусов. Практическое значение заключается в том, что вы будете раньше входить в сделки, где период цикла данных больше, чем предполагаемый период цикла.

Корреляция как индикатор циклов. Рисунок 4.
РИСУНОК 4: СТРЕСС-ТЕСТ ИНДИКАТОРА 2. Ошибка настройки на 25 % больше – то есть установка периода входного цикла на 25 % меньше предполагаемого периода косинуса – приводит к тому, что фазовый сдвиг здесь также составляет менее 45 градусов. Это показывает, что даже если предполагаемый период цикла неверен, индикатор корреляции циклов не рассыпается.

Продолжая стресс-тест, я установил период входного цикла на 25 % короче предполагаемого периода косинуса. То есть период косинуса индикатора сохраняется на уровне 20 баров, а период входной синусоиды составляет 15 баров. Результаты этого стресс-теста показаны на рисунке 4. В этом случае ошибка отстающей фазы также составляет менее 45 градусов. К сведению, тестирование с периодом цикла на 50 % меньше не имеет смысла, поскольку 10-барный цикл является гармоникой 20-барного цикла, и при таком сочетании вы получите идеальный результат.

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

СКОРОСТЬ ИЗМЕНЕНИЯ

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

Корреляция как индикатор циклов. Рисунок 5.
РИСУНОК 5: ИНДИКАТОР СКОРОСТИ ИЗМЕНЕНИЯ. Нулевые пересечения индикатора скорости изменения точно определяют пики и долины цикла. Это очень полезно, поскольку наилучшая точка входа в длинную позицию находится именно в долине.

Учитывая, что производная косинусоидальной волны является отрицательной синусоидой, мы можем создать фактический индикатор скорости изменения, связав входные данные с отрицательной синусоидой, имеющей тот же период, что и исходная корреляция. На рисунке 5 показано, что этот индикатор скорости изменения (зеленый цвет) имеет точное опережение по фазе на 90 градусов по сравнению с выходом исходного индикатора. Опережение на 90 градусов означает, что зеленая линия пересекает ноль, когда исходный индикатор (красный) находится в долине цикла, и пересекает ноль, когда исходный индикатор находится в пике цикла. Таким образом, нулевые пересечения индикатора скорости изменения обеспечивают точное время для входа и выхода из циклических сделок.

РЕАЛЬНЫЙ ПРИМЕР

Корреляция как индикатор циклов. Рисунок 6.
РИСУНОК 6: РЕАЛЬНЫЕ ДАННЫЕ. В качестве реального примера здесь индикатор цикла применен к данным SPY за один год. Видно, что даже на шумном рынке, который далек от идеализированной модели, циклические поворотные точки могут быть правильно определены путем совмещения пиков и долин индикатора (красная линия) с краткосрочными пиками и долинами в цене.

Работа индикатора цикла и скорости его изменения показана на рисунке 6. Использование реальных входных данных облегчается установкой параметра периода входа индикатора в ноль. Я использовал период 14 баров для периода косинуса, поскольку предпочитаю иметь опережающую фазовую ошибку для компонентов цикла в реальных данных.

Картина не такая идиллическая, как в теоретических примерах. Отчасти это объясняется тем, что я специально не стал выбирать яркий пример. Однако даже на этом плохом примере циклов можно правильно определить точки циклического разворота, совместив пики и долины индикатора (красная линия) с краткосрочными пиками и долинами в цене.

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

Вместо того чтобы отбросить этот индикатор как неудачный в реальном мире, перед нами открывается новая уникальная возможность.

РЕЖИМ ЦИКЛА И РЕЖИМ ТРЕНДА

Трендовые индикаторы обычно имеют значительное запаздывание, поэтому трейдер не получает указания на тренд до тех пор, пока он не укрепится. Результатом такого запаздывания является потеря потенциальной прибыли при следовании за трендом. Циклические индикаторы реагируют быстро, но, как мы уже видели, они не справляются, когда рынок входит в тренд. Если мы построим идеализированную модель рынка, состоящую только из трендового и циклического режимов, то трендовый режим можно будет быстро идентифицировать как сбой циклического режима. Это и будет моей целью в следующих параграфах.

Одно из определений цикла использует скорость изменения его фазы. Например, 20-барный период цикла имеет 18-градусную скорость изменения за образец, так что за каждый период цикла он совершает 360 градусов фазового вращения. Удобно представить цикл в терминах фазовой диаграммы, показанной на рисунке 7. Стрелка фазовращателя закреплена в начале координат и отматывает цикл за один полный оборот против часовой стрелки, а следующий период цикла начинается со следующего оборота. Где начинается и заканчивается цикл – вопрос условности, но он может происходить при любом фазовом угле. Сигнал во временной области в левой половине рисунка 7 показан как проекция фазовращателя на вертикальную ось.

Корреляция как индикатор циклов. Рисунок 7.
РИСУНОК 7: ФАЗА ЦИКЛА. Удобно рассматривать цикл в терминах фазовой диаграммы, такой как эта. Фазограмма описывает фазу цикла через ортогональные компоненты. Представьте, что стрелка фазовращателя проходит цикл за один полный оборот против часовой стрелки, а следующий период цикла начинается со следующего оборота.

Фазовый сигнал также можно описать в терминах его ортогональных компонентов. Ортогональные могут означать либо некоррелированные, либо расположенные под прямым углом. При использовании фазоров применимы оба определения. Проекция фазовращателя, вращающегося с постоянной скоростью, на горизонтальную, или вещественную, ось представляет собой косинус. Проекция фазора на вертикальную, или мнимую, ось – синус. Из этого следует, что если мы имеем корреляцию данных с косинусом, а также с синусом, то можем вычислить фазовый угол фазовращателя. Фазовый угол вычисляется как арктангенс отношения действительной составляющей к мнимой. Поскольку арктангенс работает только на 180-градусном интервале, 360-градусное изображение фазовращателя должно быть завершено путем разрешения неоднозначности в двух из четырех квадрантов. Теоретический фазовый угол для синусоиды с напряжением 20 бар показан на рисунке 8. График находится в диапазоне от 180 градусов до +180 градусов, после чего происходит разворот фазы и строится следующий цикл. В действительности скорость изменения фазы непрерывна, но непрерывную скорость изменения трудно построить.

Корреляция как индикатор циклов. Рисунок 8.
РИСУНОК 8: ИЗМЕНЕНИЕ СКОРОСТИ ФАЗЫ. Фазовый угол изменяется от 180 до +180 градусов, после чего происходит обход фазы и строится следующий цикл. В реальности скорость изменения фазы непрерывна, но непрерывную скорость изменения трудно построить!

Когда фазовый угол больше нуля, теоретическая синусоида спускается от пика цикла к его долине. То есть при фазовом угле, равном нулю, синусоида достигает своего максимума. Когда фазовый угол равен +180 градусов, синусоида находится в минимуме. Соответственно, когда фазовый угол меньше нуля, теоретическая синусоида восходит от долины цикла к его пику. То есть при фазовом угле -180 градусов синусоида находится в минимуме, а когда фазовый угол равен нулю градусов, синусоида находится в максимуме. Из этого следует, что когда рынок находится в режиме цикла, вы хотите быть в длинной позиции, если угол меньше нуля, и в короткой позиции, если угол больше нуля.

Как время не может идти вспять, так и фазовый угол фа- зовращателя не может идти вспять. Поэтому в моем коде вычисленный фазовый угол не может регрессировать. В этом случае фазовый угол удерживается на постоянном значении для индикации сбоя циклического режима. Поэтому, когда фазовый индикатор “выравнивается” (то есть угол на текущей выборке данных совпадает с углом на предыдущей выборке данных), интерпретация заключается в том, что режим цикла не удался, и поэтому рынок сейчас находится в режиме тренда. Далее, поскольку индикатор ошибается в случае сбоя режима цикла, правильной позицией является установление короткой позиции в режиме тренда, когда фазовый угол опускается ниже нуля, и установление длинной позиции в режиме тренда, когда фазовый угол опускается выше нуля. Ранний признак окончания тренда появляется, когда фазовый угол перестает выравниваться.

Фазовый индикатор для реального примера SPY показан на рисунке 9. Это представление упрощает определение режимов тренда и цикла, а также правильной торговой позиции для данных рыночных условий.

Корреляция как индикатор циклов. Рисунок 9.
РИСУНОК 9: РЕАЛЬНЫЕ ДАННЫЕ. Здесь фазовый индикатор применен к SPY. Фазовый индикатор обеспечивает раннюю индикацию зарождения и завершения тренда.

ПЕРЕМЕННАЯ СОСТОЯНИЯ РЫНКА

Само определение трендового режима и режима цикла упрощает создание “переменной состояния”, которая определяет состояние рынка. Если состояние равно нулю, рынок находится в режиме цикла. Если состояние равно +1, рынок находится в восходящем тренде. Если состояние равно -1, рынок находится в нисходящем тренде. Переменная состояния для углового представления рисунка 9 приведена на рисунке 10.

Корреляция как индикатор циклов
РИСУНОК 10: РЫНОЧНЫЕ УСЛОВИЯ, ИЛИ СОСТОЯНИЕ РЫНКА. Находится ли рынок в режиме тренда или в режиме цикла? Здесь показана переменная состояния для примера SPY на рисунке 9. Переменная состояния показывает появление режима цикла, режима восходящего тренда и режима нисходящего тренда.

Тренд также может быть объявлен, если измеренный период цикла слишком велик, чтобы торговать в режиме цикла. Я произвольно решил, что циклы с периодом 40 баров и более должны рассматриваться как тренды. Период цикла в 40 баров имеет скорость изменения фазы в 9 градусов за бар, поэтому изменения скорости фазы меньше этой величины классифицируются как тренды.

КОД

В моем понимании компьютерный код описывает вычислительный процесс гораздо точнее, чем английский язык, и я стараюсь писать код в простом и понятном формате. Код для всех индикаторов, описанных в этой статье, приведен ниже:

КОД НА ЯЗЫКЕ EASYLANGUAGE ДЛЯ ИНДИКАТОРА УГЛА КОРРЕЛЯЦИИ И ПЕРЕМЕННОЙ СОСТОЯНИЯ РЫНКА:

{
Correlation Angle Indicator
(C) 2013-2020 John F. Ehlers
}
Inputs:
Period(20),
InputPeriod(20); //Uses price data if InputPeriod is set to 0
Vars:
Length(20), Price(0),
Sx(0), Sy(0), Sxx(0), Sxy(0), Syy(0), count(0), X(0), Y(0),
Real(0), Imag(0),
Angle(0),
State(0);
// Корреляция в течение одного полного цикла
Length = Period;
Price = Close;
//Создает теоретическую синусоиду с периодом, равным периоду входного
//сигнала, в качестве входных данных
If InputPeriod <> 0 Then Price = Sine(360*CurrentBar / InputPeriod);
//
Корреляция цены с косинусоидальной волной с фиксированным периодом
Sx = 0;
Sy = 0;
Sxx = 0;
Sxy = 0;
Syy = 0;
For count = 1 to Length Begin
X = Price[count - 1];
Y = Cosine(360*(count - 1) / Period);
Sx = Sx + X;
Sy = Sy + Y;
Sxx = Sxx + X*X;
Sxy = Sxy + X*Y;
Syy = Syy + Y*Y;
End;
If (Length*Sxx - Sx*Sx > 0) and (Length*Syy - Sy*Sy > 0)
Then Real = (Length*Sxy - Sx*Sy) / SquareRoot((Length*Sxx - Sx*Sx)*(Length*Syy - Sy*Sy));
//Корреляция с отрицательной синусоидой с фиксированным периодом
Sx = 0;
Sy = 0;
Sxx = 0;
Sxy = 0;
Syy = 0;
For count = 1 to Length Begin
X = Price[count - 1];
Y = -Sine(360*(count - 1) / Period);
Sx = Sx + X;
Sy = Sy + Y;
Sxx = Sxx + X*X;
Sxy = Sxy + X*Y;
Syy = Syy + Y*Y;
End;
If (Length*Sxx - Sx*Sx > 0) and (Length*Syy - Sy*Sy > 0) Then
Imag = (Length*Sxy - Sx*Sy) / SquareRoot((Length*Sxx -
Sx*Sx)*(Length*Syy - Sy*Sy));
//Вычислите угол как функцию арктангенса и решите неоднозначность
If Imag <> 0 Then Angle = 90 + Arctangent(Real / Imag);
If Imag > 0 Then Angle = Angle - 180;
//Не допускайте, чтобы скорость изменения угла стала отрицательной
If Angle[1] - Angle < 270 and Angle < Angle[1] Then Angle =
Angle[1];
//Plot1(Real);
Plot4(0);
//Plot3(Imag);
Plot2(Angle);
//If InputPeriod <> 0 Then Plot6(Price);
//Вычислите и постройте график состояния рынка
State = 0;
If AbsValue(Angle - Angle[1]) < 9 and Angle < 0 Then State = -1;
If AbsValue(Angle - Angle[1]) < 9 and Angle >= 0 Then State = 1;
//Plot10(State);

Если какой-либо индикатор не нужен, просто закомментируйте строку кода, в которой он отображается.

ВЫВОДЫ

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

Отображение фазового угла является отходом от традиционных индикаторов и требует от трейдеров ситуационной осведомленности на уровне концепции. Еще одним преимуществом фазового углового индикатора является то, что при его построении используются два ортогональных (то есть независимых) компонента. Поскольку в индикатор подается два независимых сигнала, его соотношение сигнал/шум на 6 дБ выше, чем у обычных индикаторов с “жирной линией”.

Об Авторе:

Джон Эйлерс, редактор журнала StockS & commoditieS Contributing Editor, является пионером в области использования циклов и DSP технического анализа. Он является президентом компании MESA Software. С ним можно связаться через его веб-сайт по адресу MESAsoftware. com.

ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА:

Эйлерс, Джон Ф. [2013]. Cycle Analytics For Traders, John Wiley & Sons.
[2020]. “Корреляция как индикатор тренда”, Технический анализ акций и товаров, том 38: Май.

———————————————————
Переведено специально для сайта Finware Technologies, www.finware.ru
Вы можете свободно распространять эту статью любыми способами целиком вместе с этим блоком и действующей гиперссылкой на сайт finware.ru.
———————————————————

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*