English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Технический анализ: Как мы анализируем?

Технический анализ: Как мы анализируем?

MetaTrader 5Трейдинг | 6 октября 2010, 11:48
4 851 11
Victor
Victor

Введение

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


Перерисовка

Если посмотреть комментарии к индикаторам, опубликованным на сайте https://www.mql5.com/ru/code, то нельзя не заметить, что подавляющее большинство пользователей крайне негативно относятся  к тем из них, у которых при формировании очередного бара рассчитанные ранее значения изменяются и перерисовываются.

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

На рис. 1 синим цветом показана импульсная характеристика фильтра нижних частот, который соответствует индикатору SMA(15). Для случая, показанного на рисунке, расчет SMA(15) производится суммированием 15-ти последних отсчетов входной последовательности, при этом каждый из входных отсчетов в соответствии с представленной импульсной характеристикой умножается на коэффициент 1/15. Теперь, имея рассчитанное на интервале 15-ти отсчетов значение SMA(15), мы должны решить, к какому моменту времени это значение отнести. 

Если SMA(15) рассматривать как среднее значение предыдущих 15-ти входных отсчетов, то это значение должно отобразиться, как показано на верхнем графике, то есть должно соответствовать нулевому бару. В случае если SMA(15) рассматривать как фильтр нижних частот с импульсной характеристикой конечной длины, то рассчитанное значение с учетом задержки в фильтре должно соответствовать бару номер семь, как показано на нижнем графике.

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

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

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

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

 

Рис. 1. Импульсная характеристика SMA(15)

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

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

Необходимо признать, что графики MA с недорисованной частью хотя и являются более корректным отображением результата фильтрации, но выглядят очень непривычно. Если с формальной точки зрения мы не можем рассчитать значение фильтра SMA(15), Shift=-7 для выходных отсчетов с индексом меньшим семи, то можно ли каким-либо другим образом сгладить отсчеты на границе входной последовательности?

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

 

Рис. 2. Модифицированная SMA
Рис. 2. Модифицированная SMA

На рис. 2 показано, как в таком случае будут формироваться выходные отсчеты с индексами от 0 до 6. Цветными точками в нижней части рисунка условно обозначены отсчеты, которые будут участвовать при вычислении среднего значения, а вертикальные линии показывают, какому выходному отсчету это среднее значение будет присвоено. На нулевом баре никакой обработки не происходит, значение входной последовательности присваивается значению выходной. Для выходной последовательности с индексами семь и более расчеты производятся обычным SMA(15) Shift=-7.

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

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

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

В рассмотренном нами случае был выбран нечетный период SMA, что позволило при данном подходе полностью скомпенсировать задержку во времени равную для SMA:


t = (N-1)/2,

где N – период сглаживания.

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


Multi-timeframe

На сайте MQL4, а теперь и на MQL5 можно встретить так называемые мультитаймфреймовые индикаторы. Давайте на примере индикатора “iUniMA MTF” попытаемся разобраться в том, что же нам дает мультитаймфреймовость?

Предположим, что мы находимся в окне самого младшего таймфрейма M1 и собираемся в этом же окно вывести сглаженное значение «Open» или «Close» таймфрейма M30, применив для сглаживания SMA(3). Известно, что последовательность таймфрейма M30 формируется из последовательности таймфрема M1 путем выборки каждого тридцатого значения и отбрасывания оставшихся 29 значений. Сразу же возникают сомнения в целесообразности использования последовательности таймфрейма M30. 

Если мы имеем доступ к определенному объему информации на таймфрейме M1, то какой смысл обращаться к таймфрейму M30, который содержит только одну тридцатую часть этой информации? Причем, в рассмотренном случае мы добровольно уничтожаем большую часть имеющейся у нас информации, обрабатываем то, что осталось SMA(3) и отображаем результат в окне исходного таймфрейма M1.

Согласитесь, что описанные действия выглядят достаточно странно. Разве не проще просто применить SMA(90) к полной последовательности таймфрейма M1? При этом частота среза фильтра SMA(90) на таймфреймеM1 оказывается равной частоте среза фильтра SMA(3) на таймфрейме M30.

На рис. 3 показан пример использования мультитаймфреймового индикатора “iUniMA MTF” на графике валютной пары EURUSD M1. Кривая синего цвета – это результат применения SMA(3) к последовательности таймфрейма M30. На том же рисунке красным цветом показан результат, полученный штатным индикатором “Moving Average”. Как видим, применение обычного индикатора SMA(90) дает значительно более естественный результат.

При этом никаких специальных приемов применять не потребовалось.

 

Рис. 3. Использование мультитаймфреймового индикатора

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

Проще перейти на младший таймфрейм и производить обработку данных обычными не мультитаймфреймовыми индикаторами.

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


Японские свечи

В публикациях посвященных техническому анализу часто можно встретиться с восторженным отношением ко всему, что связано с японскими свечами. Например, в статье “Исследование паттернов (моделей) японских свечей” говорится: “ Преимущество японских свечей в том, что они представляют данные таким образом, что появляется возможность увидеть динамику внутри данных. … Графики японских свечей позволяют проникнуть «внутрь» финансовых рынков, что очень трудно сделать с помощью других графических методов”.

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

Для представления котировок в форме японских свечей используются последовательности значений «Low», «High», «Open» и «Close». Вспомним, что это за величины. Величины «Low» и «High» равны минимальному и максимальному значению котировок на периоде выбранного таймфрейма. Величина «Open» равна первому известному значению котировок в анализируемом периоде. Величина «Close» равна последнему известному в анализируемом периоде значению котировок. Что это может значить?

Это в первую очередь означает,  что где то имеются рыночные котировки, из значения которых формируются последовательности «Low», «High», «Open» и «Close». Величины «Low», «High», «Open» и «Close» при таком способе их формирования не имеют строгой привязки ко времени. Кроме того, по этим последовательностям восстановить исходные котировки уже невозможно. Самое интересное то, что одна и та же комбинация значений «Low», «High», «Open» и «Close» на любом из баров любого таймфрейма может быть сформирована бесконечным количеством вариантов исходной последовательности котировок. Эти выводы элементарны и основаны на хорошо известных фактах.

Получается, что при представлении рыночных котировок в форме японских свечей исходная информация оказывается необратимо искажена. Если для оценки поведения котировок по любой из последовательностей «Low», «High», «Open» или «Close» использовать строгие математические методы анализа, то результаты этого анализа будут относиться не к рыночным котировкам, а к их искаженному представлению. Тем не менее, надо признать, что у свечного анализа имеется много сторонников.

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

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

На рис. 4, в соответствии с теорией распознавания образов, представлена упрощенная схема принятия решения. Решением в данном случае может быть определение момента начала или окончания тренда, обнаружение оптимальных для открытия позиции моментов времени и так далее.

 

Рис. 4. Схема принятия решения
Рис. 4. Схема принятия решения

Как показано на рис. 4 исходные данные (котировки) подвергаются предварительной обработке и из них в блоке 2 выделяются существенные признаки. В нашем случае это четыре величины «Low», «High», «Open» и «Close». На то, что происходит в блоках 1 и 2 мы повлиять не можем. На стороне терминала нам доступны только уже выделенные для нас признаки. Эти признаки поступают в блок 3, где на их основе производится принятие решений.

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

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

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

Обратившись к теории распознавания образов, мы приходим к выводу, что свечной анализ вполне укладывается в схему данной теории, но у нас нет оснований утверждать, что выбор в качестве существенных признаков величин «Low», «High», «Open» и «Close» является наилучшим. В свою очередь неоптимальный выбор признаков может резко снизить вероятность принятия верных решений в процессе анализа котировок.

Если вернуться к тому с чего начали, то можно с уверенностью сказать, что свечной анализ вряд-ли позволит “проникнуть «внутрь” финансовых рынков” или «увидеть динамику внутри данных”. Более того, его эффективность по сравнению с  другими методами технического анализа может вызывать серьезные сомнения.


Заключение

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

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

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

Последние комментарии | Перейти к обсуждению на форуме трейдеров (11)
Eugeni Neumoin
Eugeni Neumoin | 7 окт. 2010 в 21:15
Interesting:
А почему трилогию? Я лично рассчитываю на большее число статей посвященных ТА.
Тем более, что за это хорошо платят.
Denis Kirichenko
Denis Kirichenko | 7 окт. 2010 в 22:44
Interesting:
А почему трилогию? Я лично рассчитываю на большее число статей посвященных ТА.
Рассчитывайте... всё одно в будущем трендов нет... :-))
rsi
rsi | 8 окт. 2010 в 16:26

Я понял - это сериал. Он и должен быть ни о чём, тогда его можно продолжать бесконечно ... Вторая статья, как и первая - ни о чём.
Denis Kirichenko
Denis Kirichenko | 14 окт. 2010 в 12:31
rsi:

... Вторая статья, как и первая - ни о чём.
Как говорил классик, категоричность свойственна невежеству...
Алёша
Алёша | 20 янв. 2013 в 09:21

Очень верная статья, спасибо!  

 

Простой пример построения индикатора с использованием нечеткой логики (Fuzzy Logic) Простой пример построения индикатора с использованием нечеткой логики (Fuzzy Logic)
Статья посвящена вопросам практического применения концепции нечеткой логики (fuzzy logic) для анализа финансовых рынков. Предложен пример индикатора, выдающего сигналы на основе двух нечетких правил, основанных на индикаторе Envelopes. Разработанный индикатор использует несколько индикаторных буферов: 7 буферов для расчетов, 5 буферов для вывода графиков и 2 буфера цвета.
Обработчик события "новый бар" Обработчик события "новый бар"
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
Интервью с Берроном Паркером (ATC 2010) Интервью с Берроном Паркером (ATC 2010)
На протяжении почти всей первой недели Чемпионата эксперт Беррона Паркеразанимал лидирующую позицию, не подпуская к себе конкурентов. Привлекший внимание зрителей Чемпионата разработчик рассказывает о собственном опыте написания экспертов и сложностях перехода на MQL5. Беррон утверждает, что его советник настроен на трендовый рынок и в других условиях будет слаб. Тем не менее он верит, что эксперт покажет неплохой результат по итогам соревнования.
Повышаем качество кода при помощи Unit Test Повышаем качество кода при помощи Unit Test
Даже в простых программах зачастую находятся ошибки, которые кажутся невероятными. "Как я такое написал?" - первое, что приходит в голову, когда мы обнаруживаем такую ошибку. Второй вопрос - "Как этого избежать?" - приходит гораздо реже. Нельзя написать 100%-ный безошибочный код, особенно в больших проектах, но можно использовать технологии для их своевременного обнаружения. Статья рассказывает о том, как можно повысить качество MQL4 кода, применяя распространенную методику модульного тестирования (Unit Testing).