Научная статья на тему 'Исследование технического индикатора MACD'

Исследование технического индикатора MACD Текст научной статьи по специальности «Математика»

CC BY
414
126
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВАЛЮТНЫЙ РЫНОК / ТЕХНИЧЕСКИЙ ИНДИКАТОР / ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ / MACD / FOREX / TECHNICAL INDICATOR / GENETIC ALGORITHMS

Аннотация научной статьи по математике, автор научной работы — Шумков Евгений Александрович, Ботин Валерий Александрович

В статье рассмотрен популярный технический индикатор MACD. Исследованы различные параметры индикатора на предмет выявления статистического преимущества. Показан вариант использования генетических алгоритмов для задачи перебора параметров индикатора

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

RESEARCH OF TECHNICAL INDICATOR MACD

In the article popular technical MACD indicator is considered. Various parameters of the indicator about revealing of statistical advantage are investigated. The variant of use of genetic algorithms for a problem of search of parameters of the indicator is shown

Текст научной работы на тему «Исследование технического индикатора MACD»

УДК 336.76.066

UDC 336.76.066

ИССЛЕДОВАНИЕ ТЕХНИЧЕСКОГО ИНДИКАТОРА MACD

Шумков Евгений Александрович к.т.н., доцент

Ботин Валерий Александрович аспирант

Кубанский Государственный Технологический Университет, Краснодар, Россия

В статье рассмотрен популярный технический индикатор MACD. Исследованы различные параметры индикатора на предмет выявления статистического преимущества. Показан вариант использования генетических алгоритмов для задачи перебора параметров индикатора

Ключевые слова: ВАЛЮТНЫЙ РЫНОК, ТЕХНИЧЕСКИЙ ИНДИКАТОР, MACD, ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ

RESEARCH OF TECHNICAL INDICATOR MACD

Shumkov Eugene Alexandrovich Cand.Tech.Sci., assistant professor

Botin Valeryi Alexandrovich postgraduate student

Kuban State Technological University, Krasnodar, Russia

In the article popular technical MACD indicator is considered. Various parameters of the indicator about revealing of statistical advantage are investigated. The variant of use of genetic algorithms for a problem of search of parameters of the indicator is shown

Keywords: FOREX, TECHNICAL INDICATOR, MACD, GENETIC ALGORITHMS

Технический индикатор «Схождение / расхождение скользящих средних» («Moving Average Convergence / Divergence», далее MACD) - это следующий за тенденцией цены динамический индикатор. Он показывает соотношение между двумя скользящими средними цены. Данный индикатор строится, как разность между двумя экспоненциальными скользящими средними с периодами 12 и 26. Чтобы четко обозначить благоприятные моменты для покупки или продажи, на график индикатора наносится так называемая сигнальная линия - 9-ти периодное скользящее среднее. Отметим, что цифры периодов 9, 12 и 26 являются

рекомендуемыми специальной литературой [2]1. На Рисунке 1 показан вид индикатора MACD и соответствующий ему график пары валют EURUSD на 5-ти минутном таймфрейме . Все данные рассчитывались для истории курса котировок с июня 2009 по май 2010.

Можно отметить следующее определение «MACD - это классический трендовый индикатор и он хорошо работает трендовых

1 Также эти параметры указаны в Справке к терминалу Metatrader.

2 Таймфрейм (англ. time - frame) - интервал времени, используемый для группировки котировок при построении элементов ценового графика (бары, японские свечи). Взято с http ://ru.wikipedia. org

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

:0 May 2010 20 May 21:00 20 May 22:20 20 May 23:40 21 May 01:00 21 May 02:20 21 May 03:40 21 May 05:00 21 May 06:20 21 May 07:40 21 May 09:00 21 May 10:20 21 May

Рисунок 1. Ряд котировок и вид индикатора MACD При недолгом визуальном наблюдении за поведением индикатора, можно заметить, что на нем часто возникают ошибочные сигналы, а так же большое количество непродолжительных периодов сигналов покупки или продажи. Но при этом данный индикатор один из наиболее используемых призерами Чемпионатов среди Механических торговых систем4.

Цель наших экспериментов - выявить «прибыльные» параметры MACD на различных таймфреймах. Для экспериментов выбран терминал Metatrader 4.0 и язык программирования MQL4. Введем понятия:

3 http://www.jurikres.com/

4 См. например информацию на сайте http://www.alpari.ru

• «отрицательный MACD - интервал» - когда сигнальная линия выше основной;

• «положительный MACD - интервал» - когда сигнальная линия ниже основной.

Для расчетов индикатора использовалась стандартная функция iMacd(). Рассчитываемые параметры: общее количество положительных и отрицательных MACD - интервалов индикатора; количество прибыльных интервалов в каждом из направлений (покупка и продажа); среднее значение точки с минимальной (для отрицательных MACD - интервалов) и максимальной (для положительных) разницей в цене в каждом виде интервалов. Прибыль считалась как разница между ценой открытия интервала и ценой закрытия, а также отнималась, в случае положительного интервала, разница между ценой спроса и предложения5 (в случае отрицательного интервала - прибавлялась). Также рассчитывался средний центр тяжести интервалов и центр тяжести по позициям максимума и минимума интервалов. Под центром тяжести понимается номер бара от начала интервала, который соответствует центру тяжести образованной геометрической фигуры или центру распределения максимальных (минимальных) позиций в интервалах.

В эксперименте программно перебирались следующие параметры:

• период быстрой экспоненциальной средней;

• период медленной экспоненциальной средней;

• период сигнальной линии;

• таймфреймы.

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

5 Так называемый «спред» - разность между лучшими ценами покупки (bid) и продажи (ask) в один и тот же момент времени.

достаточное время среагировать на сигнал. Максимальный средний центр тяжести оказался у MACD с параметрами (15, 12, 9), он равен 8,762 бара (для положительных MACD - интервалов). На Рисунке 2 показано распределение для положительных MACD - интервалов по количеству интервалов различной длины в процентах к общему количеству интервалов (шкалу по оси ординат, здесь и далее, умножать на 100).

Время моделирования для 5-ти минутного таймфрейма при прямом переборе составило 4 минуты 48 секунд. Медленная экспоненциальная средняя перебиралась от 20 до 40.

Распределение по длинам MACD интервалов

0,06 -|

S 0,05 о

* 0,04

0

1 0,03 ю

° 0,02 5 0,01 0

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

количество баров

Рисунок 2. Распределение по длинам MACD - интервалов

В расчет брались длины MACD - интервалов до 50 включительно, те которые больше 50, прибавлялись к последнему. Отметим, что количество интервалов длиной меньше 5 составляет 20% от общего числа; длиной от 6 до 10 также 20%; от 11 до 15 равно 21%; от 16 до 20 равно 14%; от 21 до 25 равно 9% и т. д.

На Рисунке 3 показано распределение выигрышных интервалов по длинам интервалов.

Процент выигрышных интервалов для MACD интервалов разной длины

х 1,2 .о

а о,8

і 0,6 m

н 0,4 х ф

о

CL

0,2

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

Длина интервалов в барах

1

0

Рисунок 3. Процент выигрышных положительных MACD - интервалов Красная горизонтальная линия показывает вероятность выигрыша в 50%. У трейдеров считается, что «можно играть» если вероятность выигрыша выше 60%. Данному условию удовлетворяет интервал справа от красной горизонтальной линии. «Уверенная зона» с вероятностью

выигрыша выше 80% начинается от интервалов длиной 16 и выше.

Рисунок 4. "Центры тяжести" положительных MACD - интервалов Из гистограммы видно, что на коротких MACD - интервалах центр тяжести расположен близко к началу интервала, тем самым у игрока мало времени, чтобы вовремя среагировать на сигнал. В качестве алгоритма

позволяющего сократить временные затраты, можно использовать принцип High - Frequency Trading [1].

Теперь покажем распределение для 15-ти минутного таймфрейма. Время прямого перебора 1 минута 52 секунды. Распределение по длинам положительных MACD - интервалов показано на Рисунке 5.

Рисунок 5. Распределение по длинам положительных MACD - интервалов

для 15-ти минутного таймфрейма

Процент выигрышных положительных MACD - интервалов показан на Рисунке 6.

Рисунок 6. Процент выигрышных положительных MACD-интервалов для

15-ти минутного таймфрейма

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

Теперь покажем, как для поиска «прибыльных» параметров индикатора МЛСЭ можно применить генетический алгоритм. Останавливаться, как работают генетические алгоритмы, не будем - это подробно показано, например в [3,4,5]. Сразу опишем алгоритм работы, написанного авторами скрипта.

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

Далее запоминается поступивший в терминал тик. Если количество тиков соответствует месячной норме, то вызывается функция '^'ІЇеІпЕІІеО для записи тиков в бинарный файл. Если количество тиков не достигло определенного значения, то алгоритм продолжается по следующему сценарию. Запоминаются параметры открытой позиции, если она существует. В данной торговой системе может существовать только одна открытая позиция. Сигнал к открытию новой позиции является сигналом закрытия предыдущей. Считываются значения линий МЛСЭ для данного тика. Если открытая позиция есть и она является длинной позицией6, то проверяются условия на закрытие позиции, ее модификации или оставления без изменений. Аналогично проверяется короткая позиция, если на данный момент она открыта. Если открытых позиций нет, но есть сигнал на покупку, то открываем длинную позицию. Если открытых позиций нет, но есть сигнал на продажу, то открываем короткую позицию.

6 Длинная позиция - покупка актива, короткая позиция - продажа.

Проверка наличия открытой позиции, а также открытия короткой и длинной позиций производится отдельными процедурами ОпеОМег1ш1:(), ОрепБеЩ) и ОрепБиу() соответственно.

Как упоминалось выше, при завершении очередного месяца торговли в массиве программы накапливается определенное количество свечек. При наступлении этого события происходит запись данного массива в файл в процедуре '^'йе1пР11е(). В этой же процедуре происходит вызов процедуры Оепейс(), задачей которой является поиск оптимальных параметров генетическим алгоритмом.

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

Создание потомков происходит следующим образом - массив стартовой популяции разбивается условно на 4 равные группы. Генерируется случайное число. Определяется, какую группу (с определенной вероятностью) оно выбрало. Чем прибыльность группы больше, тем вероятность выше. Из этой группы берется 1-й родитель. Генерируется случайное число. Определяется, какая группу (с определенной вероятностью) выбралась. Из этой группы берется 2-й родитель. Случайным образом выбирается две точки разрыва. По этим точкам разрыва хромосомы родителей делятся на 3 части и создаются 8 хромосом потомков из вариаций этих частей предков. Два случайных гена каждого потомка мутируют. Все восемь потомков записываются в массив потомков. Так повторяется 1024 раза. 8 лучших хромосом попадают без

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

В конце процедуры Оепейс() вызывается процедура ЬеБ1:(), в которой происходит присваивание внешним переменным значения хромосомы лучшей (прибыльной) особи.

В упомянутой процедуре Н1Б1:огу() происходит проверка особи на «живучесть», определяя ее прибыль за прошедший месяц. Для этого виртуальным внешним переменным присваиваются значения параметров этой особи и для каждого тика предыдущего месяца вызывается функция у1г1иа1_Б1аг1(). Функция у1г1иа1_Б1аг1() аналогична функции в1аг1(), но ее отличие заключается в том, что она имитирует открытие позиций с целью подсчета прибыльности параметров. Для открытия и закрытия виртуальных ордеров используются процедуры у^ОМегБе^, у1гЮМегС1оБе.

В конце процедуры Н1Б1огу() вызывается процедура Бог1(), осуществляющая сортировку потомков по убыванию прибыли. Сортировка необходима для того, чтобы в процедуре Оепейс() можно было разделить популяцию на группы по прибыльности и методом рулетки определять родителей. Скорость поиска на коротких таймфреймах с помощью генетических алгоритмов быстрее прямого перебора примерно в два раза. Например, для 5-ти минутного таймфрема по паре ЕЦКиБВ время поиска 2 минуты 24 секунды.

Таким образом, применение МЛСЭ в чистом виде, даже с лучшими найденными параметрами, очень рискованно для игрока. Как видно из гистограмм вероятность выигрыша выше, чем 60% начинается примерно с интервалов длиной 9, но при этом у половины от общего числа смоделированных примеров длина интервала меньше 9. Также данный

индикатор запаздывающий. Рекомендация авторов - использовать данный индикатор вместе с подтверждающим сигналом (или несколькими) от другого индикатора. С исходным кодом разработанных скриптов можно ознакомиться по адресу в сети Шегпе!: http://apsheronsk.bozo.ru//Forex/forex.htm1 .

Литература:

1. Dacorogna M.,Gencay R., Muller U. An Introduction to high - frequency finance. New York: Academic Press, 2001. 407 p.

2. Колби Р. Энциклопедия технических индикаторов рынка. Пер. с англ. - 2-е изд. М.: «Альпина Бизнес Букс», 2004. 837 с.

3. Вороновский Г.К. Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности. Х.: ОСНОВА, 1997. 112 с.

4. Рутковская Д., Пилиньский М.. Рутковский Л. «Нейронные сети, генетические алгоритмы и нечеткие системы». Пер. с польск., И. Д. Рудинского. М.: Горячая линия - Телеком, 2006. 452 с.

5. Ярушкина Н.Г. Основы теории нечетких и гибридных систем: Учеб. пособие. М.: Финансы и статистика, 2004. 320 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.