тел.: 8 800 200 86 47|+7 (812) 336 61 11Заказать звонок
Admiral Markets UK Admiral Markets UK Choose your country

MQLabs: История повторяется?

Индикатор RepeatOfHistory

 

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

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

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

 

Эксплуатация повторяемости истории

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

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

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

 

Техника поиска соответствий

Поставив задачу в общих чертах, переходим к разработке нюансов, составляющих систему анализа. Главной проблемой в этом деле является нахождение критерия, по которому будет устанавливаться соответствие текущего и исторического участков. Глупо было бы искать абсолютно точное соответствие цен двух участков, находящихся на расстоянии друг от друга в несколько месяцев. Более того, найти точное соответствие между видами и высотами свечей, составляющих два разных участка, также не представляется возможным. Поэтому каждый из участков, во-первых, должен быть представлен некоторой аппроксимирующей линией. В простом случае это могла бы быть прямая, но такое упрощение чрезмерно. В качестве линии аппроксимации будем использовать обычную среднюю скользящую линию. Во-вторых, продолжительность сравниваемых участков должна быть одинаковой. Это первый параметр, который мы будем указывать самостоятельно. Без него анализ станет попросту невозможен. Задав продолжительность участков, можно увидеть сходство и различие в поведениях цены (см. рис. 1).

Рис. 1. Текущая ситуация и историческая ситуация идентичны.

На рис. 1 в нижней части показана более поздняя рыночная ситуация, которую будем считать текущей. В верхней части рис. 1 показана похожая историческая ситуация. Степень сходства абсолютно точно мы пока оценить не можем, но "на глазок" видим, что ситуации во многом идентичны. По крайней мере, вид средней скользящей линии повторяется в обоих из исследуемых случаев. На основании сходства обоих исходных участков принимаем, что вероятность одинакового разрешения ситуаций должна быть велика (более 50%). В качестве участка развития ситуации берем 10 баров, следующих за исходным участком (верхняя часть рис. 1). Вслед за окончанием исходного участка нижней части рис. 1 откладываем те же 10 баров. Как видим, результаты уже не настолько похожи, как изначально сравниваемые участки, но достигнут главный результат - одинаковое направление развития цены: сначала падение, а затем небольшая коррекция вверх. Одного лишь точного определения направления уже достаточно для ведения успешной торговли. Поэтому пока не будем вести речь о совпадении численных значений в относительных падениях и ростах цены.

 

От "глазка" к формализации

Технику определения чего-либо "на глазок" запрограммировать невозможно. Необходимы точные математические критерии. В данном случае нам нужен математический аппарат, позволяющий определить сходство двух кривых в процентах или в величинах от 0 до 1. При этом нулю будет соответствовать абсолютное отличие двух участков друг от друга, а единице - полное сходство. И такой математический аппарат существует - коэффициент корреляции. Его мы уже использовали в одном из исследований, когда устанавливали "Зависимость в движении валютных пар". В указанной статье приведены все необходимые формулы для расчета коэффициента корреляции. Поэтому не будем подробно на них останавливаться.

Исходными данными при расчете корреляции выступают такие сущности:

1. Длина сравниваемых участков в барах. Каждый трейдер волен задавать свою продолжительность участков.

2. Величины, составляющие кривую линию текущего участка истории.

3. Величины, составляющие кривую линию исторический участок.

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

Чтобы представить себе результаты работы алгоритма сравнения двух участков путем подсчета коэффициента корреляции, приведем простой пример двух участков, состоящих из 30 баров (см. рис. 2).

Рис. 2. Высокий коэффициент корреляции.

Коэффициент корреляции средних скользящих линий участков, ограниченных синими вертикальными пунктирными линиями, близок к единице - 0.9888.

Имея математический аппарат сравнения двух участков, описанный выше, можем переходить к разработке алгоритма, который даст нам искомый ответ - каков наиболее вероятный сценарий развития цены в том или ином случае? Для этого нам достаточно определиться с тремя начальными параметрами, без которых точный ответ на поставленный вопрос невозможен:

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

2. Продолжительность сравниваемых участков.

3. Продолжительность участка прогноза.

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

Рис. 3. Получение прогноза средней линии.

На рис. 3 показано, как средняя скользящая линия исторического участка была перенесена правее образцового участка, сформировав прогноз движения цены.

 

Индикатор RepeatOfHistory

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

Рис. 4. Результат работы индикатора RepeatOfHistory.

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

На основании такого прогноза у трейдера появляется, как минимум, три рода сведений:

1. Направление будущего движения цены (в данном случае - падение).

2. Максимум будущего движения цены (показано синей горизонтальной линией - 1.3236).

3. Минимум будущего движения цены (показано красной горизонтальной линией - 1.3165).

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

Теперь посмотрим, что получилось на выходе, т. е. насколько точно прогноз был исполнен к моменту окончания участка прогноза. Эта информация показана в нижней части рис. 4. Реальная максимальная цена составила 1.3230 (против 1.3236 прогноза). Реальная минимальная цена - 1.3173 (против 1.3165 прогноза). Общее направление движения цены - падение (полное соответствие). Таким образом, полученный прогноз можно считать выполненным практически на 100%.

 

Настроечные параметры индикатора

Для управления отображением индикатора RepeatOfHistory используется семь настроечных параметров:

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

2. i_maPrice - цена расчета средней скользящей линии. Значение от 0 (цена Close) до 6 включительно (цена Weighted Close).

3. i_maMethod - метод расчета средней скользящей линии. Значение от 0 (метод Simple) до 3 включительно (метод Linear Weighted)

4. i_patternPeriod - продолжительность образцового участка. Любое натуральное число больше 2. Параметр влияет на производительность индикатора. Чем больше значение, тем ниже быстродействие, но точнее прогноз.

5. i_forecastPeriod - продолжительность участка прогноза. Любое натуральное число, меньшее, чем значение i_patternPeriod.

6. i_minCorrelation - минимальное значение коэффициента корреляции, допустимое при поиске подобного исторического участка. Чем ближе значение к 1, тем выше вероятность точного прогноза. Любое значение от 0 до 1 включительно.

7. i_indBarsCount - количество обрабатываемых баров истории. Чем больше значение, тем ниже быстродействие индикатора. Любое неотрицательное число. 0 - вся доступная история.

 

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

 

 

Игорь Герасько

Апрель 2013

Специально для компании Admiral Markets

3.22222
 
 
X
Loading