Заметка

Мувинги: факты, сенсации, домыслы

  • yurikon
  • Без рубрики
  • 10 апреля 2013 г.
  1  

Скользящее среднее (мувинги, МА) – один из самых известных индикаторов. В 80-х годах в Merrill Lynch был целый отдел, который разрабатывал и исследовал мувинги. И сейчас именно с него обычно начинается знакомство начинающего трейдера с различными инструментами технического анализа. Попробуем разобраться, что же это такое и работает ли данная методика на современном рынке.

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

Математически можно доказать, что МА запаздывает на половину периода усреднения. Если в колебаниях цены присутствует цикл длинной T баров и мы будем торговать по скользящим средним с периодом T/2, то все покупки будут на пиках, а продажи на впадинах.

Основные виды скользящих средних:

  1. Простая скользящая средняя (MA) – среднее арифметическое цены за выбранный период N. Сильно зависима от входных данных, и, при появлении резкого выброса цены или гэпа, дважды сильно меняет свое значение (когда эта цена входит в диапазон усреднения, и когда выходит из него).
  2. Экспоненциальная средняя (EMA) – адаптированное среднее арифметическое. В отличие от простого MA, в этом индикаторе с большим весом представлены последние данные, он быстрее отвечает на изменения.
  3. Взвешенная средняя (WMA) – большим весом представлены последние данные из диапазона усреднения.
  4. Триангулярная средняя (TMA) – большим весом представлены данные из середины диапазона усреднения.
  5. Адаптивная средняя Кауфмана(AMA) – автоматически подстраивается под рынок с учетов «фрактальной эффективности» Кауфмана (отношение шума к сигналу). Становится более чувствительной в тренде и сглаживается в боковике.
  6. Среднее с нулевым запаздыванием (ZeroLag) – скользящее среднее с нулевой задержкой по времени.

Классическая стратегия игры по мувингу:

  • Покупай, если цена пересекла скользящее среднее вниз вверх;
  • Продавай, если цена пересекала скользящее среднее сверху вниз.

В таблице ниже представлены тесты на истории 2012г, RI (фьючерс на индекс РТС) 5 минутный интервал, результаты оптимизации без комиссии и реинвестирования:

Length

№Trds

NetProfit/MaxDD

AvgTrade

ProfitFactor

%Prft

EMA

182

1037

3 / 1

45

1.29

15

EMA

245

1012

1,5 / 1

40

1.27

14

WMA

241

1219

1,2 / 1

23

1.15

15

TMA

196

991

3 / 1

47

1.27

16

AMA

246

747

4 / 1

86

1.49

23

ZeroLag

83

83

1 / 5

2

1.02

15

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

Если нет выхода, ищите вход

Вместо бесчисленных модификаций скользящих средних мы предлагаем взглянуть на предмет с другой стороны и поменять не инструмент анализа, а представление данных. Давайте заменим значение цены на относительные изменения в процентах. Обозначим среднюю скользящую от изменений цены MA_chg = Average(P/P[1]-1),Period). MA_chg и построим для нее доверительный интервал с заданной точностью (плюс/минус стандартное отклонение*X). Будем считать, что если MA_chg вышла за границу доверительного интервала сверху, то с заданной вероятностью надо покупать. Аналогично, пробой вниз – продажа. Выходить из лонга и шорта будем по пересечению графика цены с AMA. Получим довольно неплохие результаты.

RI, 5min, за 2012г без комиссии и реинвестирования.

 

 

SBER, 5min, за 2012г без комиссии и реинвестирования.

 

 

 

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

Скачать стратегии в формате Easy Language можно здесь.

Комментарии

Чеширский — 10 апреля 2013 г.

мало данных, во-первых хотя бы 300 сделок должо быть, а у ж на 5 минутках, лучше около 1000. Во-вторых а где walk forward?

0 +

Чеширский — 11 апреля 2013 г.

Да и грубо говоря, средние тут вообще не причем, это называется торговля пробоев.

0 +

spitfire — 11 апреля 2013 г.

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

0 +

Николай Камынин — 11 апреля 2013 г.

Поздравляю автора с открытием фильтров.
Еще в 60-х годах они цифровые фильтры уже широко использовались в фильтрации сигналов в том числе и рыночных.
Лишь гуру популярных книг о рынках забывают об этом и приписываю их открытие себе.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Теперь по существу.
Все приведенные в статье фильтры - это БИХ фильтры второго порядка (самые примитивные по избирательным свойствам)
Да и время запаздывания не равно половине интервала а зависит от весовых коэффициентов фильтра( ну это не существенно).
Поэтому прежде, чем как бы изобретать что-то неизвестное автору,
Может быть сначала изучить существующие наработки?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для тех, кто предпочитает научную литературу пупури, рекомендую ознакомится для начала
с книгой Р Отнес Л Эноксон Прикладной анализ временных рядов. Основные методы из-во МИР 1982 г.
для практического применения МАТЛАБ рекомендую ознакомится с книгой
П И Рудаков В И Сафонов Обработка сигналов и изображений М Диалог-МИФИ 2000 г
пакет МАТЛАБ можно успешно вставлять в свои программы роботов
Успехов

1 +

Николай Камынин — 11 апреля 2013 г.

yurikon,
А Вы знаете что системы реального времени с нулевой задержкой - это повторители сигналов, которые не могут ничего фильтровать?
Поэтому утверждение "Среднее с нулевым запаздыванием (ZeroLag) – скользящее среднее с нулевой задержкой по времени" , мягко говоря, ошибочно.

1 +

yurikon — 12 апреля 2013 г.

Приветствую!

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

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

2 Николай:
Спасибо, Николай, за список литературы. Про цифровые фильтры в курсе. В свое время в Альфа-банке работал В.Кравчук и популизировал эти методы, но потом куда-то пропал. У Эхлера много статей по этой тематике, в том числе по вычислению доминантных циклов.

Среднее с нулевой задержкой надо было написать в кавычках. Значение мувинга просто сдвинуто на пол периода назад. Что такое системы реального времени с нулевой задержкой? Приведите пример.

С уважением.

0 +

Николай Камынин — 14 апреля 2013 г.

Добрый день,yurikon,
1) Если мы торгуем не на истории, то это реальное время.
2) Иначе сказать реальное время - это принятие решения на основе поступившей информации, до появления новой. Т е вся информация должна быть обработана до прихода новой - это и есть реальное время.
3) Любой индикатор - это фильтр.
Фильтр -это некоторое преобразование исходной информации, в результате которого информации становится меньше. Т е фильтр всегда уменьшает объем информации.
4) Мувинги, свечи - это фильтры, которые заменяют блоки данных некоторым значением.
В результате всегда есть запаздывание,
т к по своей сути фильтр должен накопить то, что позже заменит одним значением.
Накопление - это и есть запаздывание.
Как говорил поэт - И опыт -сын ошибок трудных.
Опыт - это фильтр, приходит с опозданием.
5) Но кроме запаздывания реакции,
есть еще и искажение исходных данных по амплитуде,
что и есть результат работы фильтров.
6) Решать о необходимости фильтра надо не по его способу вычисления, а по характеру интересующей нас информации. Т е если знаете, что является полезным в поступающих данных, то подбираете фильтр для усиления этой информации.
7) Но Увы большинство роботоделателей идут от обратного.
Я называю это - "Метод ползучего эмпиризма" - слепой перебор всех известных и придуманных начинающим гением-незнайкой индикаторов к неизвестным данных, естественно, с ожиданием чуда.
Но результат будет тот же самый.
Чудеса лишь в далекой стране...

0 +

yurikon — 15 апреля 2013 г.

Метод математического тыка - сильная вещь! )))
Хорошо, Николай, это все правильно, что вы написали. В тоже время, как вы будете принимать решение (бай, сел, аут), не фильтруя информацию?
По сути, любой система принятия решения сворачивает N-мерный вектор входной информации до числа, чтобы его сравнить с другим числом.
Усиление информации - это интересно. Нетривиальный пример в студию, плиз!

0 +

cir — 15 апреля 2013 г.

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

0 +

cir — 15 апреля 2013 г.

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

0 +

Николай Камынин — 17 апреля 2013 г.

Добрый день,Всем,
yurikon, Вы правильно говорите - принятие решение - это фильтрация информации до одного значения
"Да" или "Нет".
~~~~~~~~~~~~~`
cir,
Выбор фильтра определяется однозначно, как выбор инструмента для забивания гвоздя или для наблюдения за микробом.
Все определяется Вашим представлением о рынке.
Вообще-то, технологию создания конкретным методов решения задач человечество знает не одну тысячу лет. Это - технология научного познания мира.
Кратко это:
гипотеза -> модель->эксперимент->теория->метод( фильтры,стратегии) прогнозирования динамики цен.
Изучаем опыт предшественников, потом выявляем тенденции в рынке, потом создаем модель, потом строим фильтры, которые выделяют параметры модели на фоне мешающих факторов.
Характеристики фильтров априори известны, поэтому зная модель, можно однозначно выбрать фильтры.
Примерно так, ничего нового, все банально скучно.
Но хочу заметить, что строя простейшие торговые системы Вы фактически пытаетесь превзойти человеческий мозг - а этого не могут сделать даже все супер компьютеры в мире.
Поэтому не стоит расстраиваться, если созданный Вами робот всего лишь игрушка.
Игрушки для того и существуют, что бы в них играть.
Успешной игры.

0 +

cir — 18 апреля 2013 г.

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

0 +

cir — 18 апреля 2013 г.

Для затравки, так сказать. Попробуйте синтезировать фильтр улучшающий свойства предиктора, построенного как линейная регрессия:
независимые переменные - набор индикаторов MACD с периодами по ряду фибоначчи - простейшие полосовые фильтры, взять 5-7 фильтров; зависимая переменная - 1-я разность выхода некаузального фильтра нижних частот , например Баттерворта. Точность такой регрессии (r ^2 = 0.5 - 0.55). Предсказываем наклон тренда. Удастся ли повысить точность ? Итак "инcтрумент" в студию !

0 +

Николай Камынин — 19 апреля 2013 г.

Добрый вечер,cir
Так нет никакого пафоса.
У меня просто такая манера общаться. Ничего личного. У каждого свои недостатки.
Я не навязываю свое мнение, я лишь его излагаю.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Пример, про Оккама не к месту.
Напомнил мне анекдот: Мужик что под фонарем ищешь? Сто долларов у забора потерял
Почему же ищешь у столба с фонарем? Так здесь светло.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Мне известны два способа синтеза фильтров:
1 Изучение явления, выявление свойств и построение модели на основе понимания физической сущности явления
2) Явление - "четный ящик" - методом Имитационного моделирования создаем модель выход которой адекватен явлению. Модель вообще может не иметь никакого физического объяснения.
Оба метода применимы. Второй - это нейронные сети в классическом виде.
Но можно совмести оба метода.
В любом случае исходим из модели явления
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Про улучшение предсказывающих свойств линейной регрессии.
Рекомендую обратится к МГУА. (Метод группового учета аргументов)
Ваша задача там решена.

0 +

cir — 21 апреля 2013 г.

Николай, приветствую.
Повышение порядка модели практически не улучшает выше озвученную регрессию. Проблема в ограниченной статистической связи регрессоров с зависимой переменной ( ограничение прогностических свойств спектрального представления изменения цен ). Я честно говоря ожидал более изысканных предложений, типа динамической адаптации или использование свойств ортогональности ошибки регресорам.
А рекомендации использования МГУА действительно напоминают Ваш анекдот : поискать там где светло, даже если там ничего и быть не может.
Но вернемся к теме фильтрации, или скорее определения классов операторов , потенциально обладающими предсказывающими свойствами.
На вход всех фильтров поступает один и тот же временной ряд цен ( OHLC + V ), выходные же переменные обладают интересующими нас свойствами в различной степени.
Линейная фильтрация обладает ограниченными возможностями, хотя безусловно интересно увидеть ее новое практическое использование.
Сети прямого распространения как универсальные аппроксиматоры, при подаче на вход непосредственно цен или их разностей, оказываются тяжелыми для обучения и не могут рассматриваться как панацея. У меня вообще нет опыта построения сети - предиктора с удовлетворительными свойствами. Хотя довольно легко строятся сети для задач кластеризации.
Можно выделить как классы:
1) линейные фильтры, большая часть индикаторов тех анализа, возможно с точность до множителя, зависящего от волатильности, относится к этому классу;
2) нелинейные (стохастик, пожалуй и все ), очень бедный класс;
3) фильтры, построенные с использованием отношений порядка и/или логики (фракталы, свечные комбинации, уровни), обширный интересный класс, но методы формального синтеза не известны, возможно перебор что де факто NP - полная задача, даже использование жадных алгоритмов поиска приводит к весьма значительному времени вычислений.
Наибольший интерес, с моей точки зрения, представляет синтез нелинейных фильтров с четкой ориентацией на прогностические задачи, возможно с использованием теоретико-информационные подходов.
Есть ли у Вас мысли, куда стоить направить свои усилия?

0 +

Николай Камынин — 22 апреля 2013 г.

Добрый день,cir,
1) Про метод МГУА Вы заблуждаетесь.
Если сказать упрощенно, то речь идет не о повышении порядка , а о выборе алгоритма наилучшей предсказателя путем селекции и применения внешних критериев.
В регрессионном фильтре используется лишь внутренний (метод наименьших квадратов )
Поэтому возможно получить модель(фильтр ) меньшего порядка но с лучшими свойствами.
2) Не в обиду будет сказано, но Ваше перечисления различных методов напоминает коллекцию фантиков.
Я уже раньше говорил, что любой метод основан на предполагаемой модели явления.
Поэтому , если модель процесса(явления ) не определена то весь этот набор слов не имеет никакого практического значения.
Но вступать в более подробное обсуждение различных методов и их применение для прогноза фондового рынка для меня не имеет практического смысла.
Пример, демонстрирующий возможность эффективного предсказания, можно посмотреть на моем сайте ( здесь эти примеры почему-то вызывают раздражение и их убирают).
Так на истории в 3000 (история с сервера QUIK) в реальном времени 5 минутных свечей акции сбербанка можно получить просадку не более 1%, 83% успешных сделок, 100% прибыль без плеч и реинвестирования.
Успехов

0 +

cir — 22 апреля 2013 г.

Николай, что касается МГУА, возможно довольно глубокий смысл ( посмотрел по Вашему совету ). Но применительно к озвученному примеру, если изначально кросс-энтропия регрессоров и зависимой переменной ограничена , введение нелинейностей приводит к изменению плотностей вероятностей, что не увеличивает взаимную информацию и, по-моему, не улучшит модель, а лишь лучше подстроиться под обучающую выборку, что не представляет интерес.

0 +

cir — 22 апреля 2013 г.

Николай, предоставьте ссылку на Ваш сайт. Очень интересно посмотреть 75 % успеха я видел, 83% пока нет .

0 +

Николай Камынин — 23 апреля 2013 г.

Добрый вечер,cir
Мой сайт найти очень просто
надо либо набрать в поисковике Николай Камынин,
либо www.Kamynin.ru

0 +

Написать комментарий

Чтобы написать комментарий, необходимо авторизоваться.

Написать администратору