Распознавание фигур технического анализа с помощью нейронных сетей

Анализ вопросов использования нейронной сети для распознавания фигур технического анализа. Сравнение способов формирования входных образов. Конгломерат нейронных сетей для распознавания фигур технического анализа. Трактовка выходов нейронной сети.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 27.04.2017
Размер файла 126,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

РАСПОЗНАВАНИЕ ФИГУР ТЕХНИЧЕСКОГО АНАЛИЗА С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ

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

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

Карлов Дмитрий Николаевич

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

Ключевые слова: МНОГОСЛОЙНЫЙ ПЕРСЕПТРОН, ФОРЕКС, РАСПОЗНАВАНИЕ, ТЕХНИЧЕСКИЙ АНАЛИЗ, ОБУЧЕНИЯ БЕЗ УЧИТЕЛЯ

Одним из наиболее популярных методов анализа финансовых временных рядов, как фондового, так и валютного рынков, является технический анализ, который можно разделить на две составляющие - технические индикаторы и фигуры технического анализа. В данной статье рассмотрим только фигуры технического анализа (далее ТА). Базовыми и наиболее распространенными фигурами ТА являются: нисходящий и восходящий треугольник, треугольник, нисходящий и восходящий каналы, нисходящий и восходящий клин, прямоугольник, голова и плечи, перевернутые голова и плечи, тройная вершина, тройное дно, флаг, вымпел, двойная вершина, двойное дно. Некоторые из данных фигур представлены на Рисунке 1. Также существуют и другие, менее распространенные фигуры ТА, например, «бриллиант» и другие [1]. Важность определения фигуры ТА состоит в том, что при окончании формирования фигуры обычно происходит либо прорыв уровня, либо цена остается в определенном канале, в зависимости от сформировавшейся фигуры. При построении механической торговой системы важными являются те фигуры, которые совершают прорыв уровня, например фигуры «флаг» или «вымпел». Основная трудность при использовании методики фигур ТА является собственно их интерпретация на графике котировок. Один специалист может увидеть формирующийся нисходящий канал, другой в этот же момент времени интерпретирует нисходящий треугольник. Также отметим, что финансовые временные ряды имеют фрактальную природу [1] и на одном таймфрейме может формироваться фигура «флаг», а на другом, например следующем по старшинству таймфреме, может в этот же момент формироваться фигура «голова - плечи» и т.д. По сути, в каждый момент времени на рынке существует множество фигур с различными горизонтами. Существует большое количество специальной литературы и ресурсов в сети Интернет, которые излагают принципы определения фигур, при этом методы в них могут сильно отличаться, внося серьезную путаницу. Также существует большое количество программного обеспечения для помощи игрокам и в сети Интернет можно найти много отдельных скриптов для торговых терминалов, определяющих фигуры. Из отдельного программного обеспечения выделим: «Autochartist», «Wave 59» и «Elwave».

При этом отдельно укажем на следующий момент - важно определять фигуру ТА в процессе ее формирования, а не после того, как она сформировалась и временной ряд начал «рисовать» новую фигуру. То есть, по сути, прогнозировать, какая фигура формируется или какая фигура будет после.

Рисунок 1 Фигуры технического анализа

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

Для удаления субъективизма при определении фигур ТА в данной работе предлагается использовать нейронные сети. Нейронные сети в рассматриваемой задаче могут дать преимущество в связи с тем, что они:

· имеют аффинную инвариантность к представляемым данным, в частности к масштабу, углам, смещениям фигур ТА. Эти «некоторые» искажения будем считать «шумом», а нейронные сети изначально предназначались для работы с зашумленными изображениями;

· для любого курса котировок существует огромное количество входных примеров, например для курса EURUSD доступная история свыше 10 лет, то есть на минутном графике это около 4 миллионов баров Единицей измерения таймфреймов служит «бар» - одна японская свеча. Например, на 15-ти минутном интервале измерения, один бар равен 15 минутам.! По сути, с таким объемом информации в приемлемое время могут справиться только нейронные сети;

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

Одним из вариантов формирования входных образов является подача на вход «свечек», то есть цен OLHC бара: Open - цена открытия бара, Low - наименьшая цена, High - наивысшая цена, Close - цена закрытия. При этом необходимо подавать «скользящее окно», то есть значения OLHC некоторого количества баров, обычно подается от 30 до 100 баров [4].

В качестве входной информации для нейронной сети также можно использовать значения распространенного технического индикатора ZigZag [2]. То есть параметры: координаты начала отрезка, окончания отрезка и угол наклона отрезка Здесь возникает небольшая проблема с масштабированием по оси абсцисс, то есть шкалы времени. (показано на Рисунке 2). Можно использовать только высоту отрезка и угол наклона. ZigZag с одной стороны убирает небольшие выбросы на ряде котировок, который можно трактовать как «шум», с другой стороны, возможно, этот «шум» есть элемент фигуры ТА.

Рисунок 2 Технический индикатор ZigZag

Сравнивая два вышеприведенных способа формирования входных образов видно, что в первом случае формируется входной вектор огромной размерности, во втором случае размерность значительно меньше. К плюсам первого метода можно отнести то, что подается полная информация о рассматриваемом участке графика, к минусам - получается нейронная сеть большой размерности, что приводит к серьезным вычислительным затратам. К плюсам второго способа можно отнести то, что убирается незначительный «шум» во входных данных и относительно малую размерность сети, к минусам - технический индикатор ZigZag кроме «шума» убирает также некоторые значимые именно для определения фигур ТА вершины и впадины на графике. Таким образом, перед применением к поставленной задаче необходимо немного модифицировать ZigZag. Общая схема работы показана на Рисунке 3.

Рисунок 3 Последовательность действий при обработке временного ряда

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

Покажем распределения отрезков (для GBPUSD, минутный интервал) - то есть {угол; высота}, найденных с помощью модифицированного ТА ZigZag (Рисунок 4).

Рисунок 4 Распределение уникальных отрезков

Всего за годичный интервал найдено 43758 отрезков. Каждый отрезок характеризуется двумя параметрами - высота и угол. При этом высота в экспериментах округлялась до 4 знаков после запятой, а угол - до целого значения. В данном распределении учитывались, как отрезки направленные вверх, так и вниз. Найдено 2463 уникальных отрезка, то есть не совпадающих и по высоте и по углу. Таким образом, видно, что есть большое количество отрезков, в том числе и совпадающих, но для какой - либо классификации их слишком много. Распределения для распространенных пар валют EURUSD, EURGBP, AUDUSD и USDJPY суть те же.

В рассматриваемой задаче можно выделить два пути решения. Первый - определение, какая фигура ТА в данный момент формируется или сформировалась. Назовем этот путь «Задача 1». Второй - прогнозирование дальнейшего поведения ряда («Задача 2»). Рассмотрим задачи раздельно.

Задача 1.

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

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

Рисунок 5 Конгломерат нейронных сетей для распознавания фигур ТА

Как видно из Рисунка 5, система распознавания состоит из блоков нейронных сетей обучающихся без учителя и интерпретатора, который выбирает фигур с наибольшей вероятностью. Блоки принципиально различаются тем, что у них разное количество входов. При обучении без учителя есть вариативный параметр - количество выходов, то есть на сколько классов разбивать входные примеры. Так как в данном случае мы не можем априори определить, на сколько классов разбивать входные примеры, то был применен принцип конкуренции нейронных сетей. Данный принцип заключается в том, что запускается несколько нейронных сетей для каждого блока, с разным количеством выходов. Количество выходов варьировалось от 4 до 10 штук. При этом возник вопрос - как трактовать выходы нейронной сети, в случае использования тангенсоиды Для однозначной трактовки выходов в качестве функции активации можно было бы использовать «жесткую ступеньку», но такая функция активации сильно ограничивает емкость сети и приводит к задаче модификации метода обучения. в нейронах выходного слоя, который был решен, как показано в Таблице 1.

нейронный сеть распознавание фигура

Таблица 1

Трактовка выходов нейронной сети (для 2 выходных нейронов Для большего количества выходов аналогично.)

Знак выхода 1-го нейрона

Знак выхода 2-го нейрона

Класс объекта

> 0

> 0

1 - я

> 0

? 0

2 - я

? 0

> 0

3 - я

? 0

? 0

4 - я

После обучения каждой нейронной сети выбиралась наиболее адекватная. Адекватность оценивалась по количеству распознанных валидационных примеров с точностью выше 80% относительно среднего в данной классификации. Наилучшие результаты показали нейронные сети с 8 и 10 входами с 5 и 6 выходами, то есть на 4 и 5 входных отрезков, разбивавших входные примеры на 5 и 6 классов.

Задача 2.

Для второй задачи разумно в качестве нейросетевого ядра выбрать многослойный персептрон с обучением по методу обратного распространения ошибки [5]. Данный тип нейронной сети хорошо зарекомендовал себя в задачах прогнозирования. На входы нейронной сети подаются параметры нескольких последовательно идущих отрезков. На выходе параметры следующего отрезка (то есть 2 выхода). Результаты работы сети представлены в Таблице 2.

Таблица 2

Результаты прогнозирования следующего отрезка

Количество отрезков подаваемых на вход

Правильно угаданных направлений углов (%)

Ср. точность прогнозирования углов (%)

Ср. точность прогнозирования высоты (%)

4

78

72

86

5

81

69

79

6

79

71

81

7

78

71

70

8

64

62

64

9

65

63

61

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

Результаты работ систем для обеих задач можно объединить, то есть система для Задачи 1 выдает какая фигура, а система для Задачи 2 выдает направление и параметры прорыва, если он прогнозируется.

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

Литература

1. Акелис С. Технический анализ от А до Я. Финанс - Инвест. Электронный учебник. 1999.

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

3. Леонов Е. А. Принятие решений на основе нечеткозначных моделей и алгоритмов обработки графических данных в технологии машинного обучения. Автореферат канд. техн. наук. МИСИС (ТУ). 2008. 26 с.

4. Плеханов Л., Плеханов С. Нейронные сети как инструмент распознавания фигур. Рынок ценных бумаг. №3. 2005. с. 68-72.

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

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.