Создание торговой стратегии с использованием нечеткой логики

Автор: Колмахидзе Н.Г.

Журнал: Экономика и социум @ekonomika-socium

Рубрика: Информационные и коммуникативные технологии

Статья в выпуске: 5-3 (24), 2016 года.

Бесплатный доступ

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

Нечеткая логика, торговые системы

Короткий адрес: https://sciup.org/140120080

IDR: 140120080

Текст научной статьи Создание торговой стратегии с использованием нечеткой логики

В настоящей статье зададимся целью создать торговую стратегию из двух индикаторов технического анализа MACD («Схождение/Расхождение скользящих средних») и RSI («Индекс относительной силы»), поскольку они являются одними из самых популярных среди начинающих трейдеров. Для объединения индикаторов воспользуемся инструментарием нечеткой логики в пакете прикладных программ Matlab.

В первую очередь дадим трактовку индикаторам, а также определим стратегию использования каждого из них. MACD показывает соотношение между двумя скользящими средними цены актива. Первая называется «короткой», и представляет собой экспоненциальную скользящую среднюю цен закрытия последних 12 дней. Вторая именуется «длинной» и рассчитывается за период 26 торговых дней [1]. Соответственно, индикатор считается по формуле:

MACD = EMA, 2P P ) - EMA2 6( P )

где:

EMA 12( P) — экспоненциальная скользящая средняя последних 12

дневных цен закрытия;

EMA 2 б ( P )

экспоненциальная скользящая средняя последних 26

дневных цен закрытия;

P – цена закрытия торгового дня актива.

Помимо этого, при использовании MACD вводится третья линия, так называемая «сигнальная», представляющая собой 9-дневное скользящее среднее индикатора. Сигнальная линия рассчитывается по формуле:

Signal = EMAg ( MACD )

, гдеEMA9(MACD) — экспоненциальная скользящая средняя последних 9 значений индикатора MACD.

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

Перейдем к определению индекса RSI. Он представляет собой индикатор перекупленности или перепроданности актива, может принимать значения от 0 до 100 и рассчитывается по формуле:

RSI = 100 -

1+(U)’ D где:

U – среднее значение прироста цен закрытия за последние 14 дней;

D – среднее значение снижения цен закрытия за последние 14 дней.

Интерпретация значений RSI следующая – чем ближе RSI к 100 тем актив более перекуплен, чем ближе к 0 – перепродан. Наиболее часто используемыми являются значения 30 и 70 – нахождение индикатора ниже 30 свидетельствует о перепроданности, а выше 70 – о перекупленности [2].

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

Пусть индикатор MACD характеризуется следующими тремя возможными категориями:

  • ■     Низкий - первая категория, при которой MACD находится ниже

сигнальной линии

■ ■

Для находится находится

Нулевой – вторая категория, MACD около сигнальной линии Высокий – третья категория, MACD выше сигнальной линии описания заданных категорий, в предположении, что MACD в пределах [-1;1] (где -1 соответствует ситуации, когда MACD «сильно ниже» своей сигнальной линии, 0 – соответствует точке их пересечения, а 1 – MACD «сильно выше»), экспертным путем выберем функции принадлежности:

  • ■     Низкий – сигмоидная функция перегибом в точке -0,6

    и


    и


    и


    в


крутизной -10

  • ■     Нулевой - гауссовская функция, с максимумом в точке 0

коэффициентом концентрации 0,3

  • ■     Высокий - сигмоидная функция перегибом в точке 0,6

крутизной 10

График функций принадлежности категорий индикатора MACD пакете Matlab будет выглядеть так:

Рисунок 1. Функции принадлежности входной переменной MACD

Пусть RSI характеризуется такими тремя категориями: «перепродан», «средний», «перекуплен».

  • ■     Перепродан - первая категория, характеризующая

перепроданность, RSI е [0;30]

  • ■     Средний - вторая категория, перепроданность или

  • перекупленность отсутствует, RSI е (30;70)
  • ■     Перекуплен - третья категория, характеризующая

перекупленность, RSI е f70;100!

Для описания этих категорий, экспертным путем выберем функции принадлежности:

  • ■     Перепродан - сигмоидная функция перегибом в точке 18 и

  • крутизной -0,25
  • ■     Средний - гауссовская функция, с максимумом в точке 50 и

  • коэффициентом концентрации 10
  • ■     Перекуплен - сигмоидная функция перегибом в точке 82 и

  • крутизной 0,25

График функций принадлежности категорий индекса RSI будет выглядеть так:

Рисунок 2. Функции принадлежности входной переменной RSI

Итак, для того, чтобы определить, покупать или продавать актив в зависимости от показаний индикаторов MACD и RSI, воспользуемся алгоритмом нечеткого вывода Мамдани. Следуя алгоритму, создадим базу правил системы нечеткого вывода на основе обычной трактовки наших индикаторов [3].

Сначала для наглядности представим правила в виде таблицы, затем – пропишем в виде строк. Таблица правил принимает следующий вид, где столбцы и строки – входные переменные RSI и MACD соответственно, а их пересечение – выходная переменная «Действие с активом»:

Таблица 1. Табличное представление базы правил нечеткого вывода

RSI

MACD

Перепродан

Средний

Перекуплен

Низкий

Слабая покупка

Продажа

Сильная продажа

Нулевой

Покупка

Удержание позиции

Продажа

Высокий

Сильная покупка

Покупка

Слабая продажа

Теперь запишем правила в виде строк [4], для дальнейшего использования в пакете прикладных программ Matlab:

  • 1)    Если RSI перепродан и MACD низкий , то слабая покупка ;

  • 2)    Если RSI перепродан и MACD нулевой , то покупка

  • 3)    Если RSI перепродан и MACD высокий , то сильная покупка

  • 4)    Если RSI средний и MACD низкий , то продажа

  • 5)    Если RSI средний и MACD нулевой , то удержание позиции

  • 6)    Если RSI средний и MACD высокий , то покупка

  • 7)    Если RSI перекуплен и MACD низкий , то сильная продажа

  • 8)    Если RSI перекуплен и MACD нулевой , то продажа

  • 9)    Если RSI перекуплен и MACD высокий , то слабая продажа

Таким образом, сочетание входных переменных RSI и MACD дает выходную переменную «Действие с активом». Пусть выходная переменная изменяется в пределах [-1;1], где -1 – сильная продажа, 0 – удержание позиции, а 1 – сильная покупка).

Наконец, экспертным методом построим функции принадлежности выходной переменной (в нашем примере они будут треугольными):

Рисунок 3. Функции принадлежности выходной переменной «Действие с активом»

Итак, торговая модель на базе нечеткой логики построена [5]. К примеру, при входных переменных MACD высокий (допустим 0,65), а RSI перепродан (18), выходная переменная «Действие с активом» будет означать сильную покупку актива (0,819). Результат нечеткого вывода при данных параметрах отображен на рисунке:

Рисунок 4. Результат нечеткого вывода при параметрах RSI=18;

MACD=0,65.

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

Рисунок 5. Трехмерная поверхность вывода построенной модели.

Таким образом, мы описали построение простой торговой системы на базе нечеткой логики с использованием пакета Matlab. Для реализации торговой системы в реальных условиях остается загрузить исходные данные (цены закрытия предыдущих торговых сессий) и придать значениям выходной переменной «Действие с активом» соответствующие объемы торгуемого актива: например, 0.5 будет означать покупку 10 фьючерсов на индекс RTS, а -1 – продажу десяти фьючерсов.

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

Список литературы Создание торговой стратегии с использованием нечеткой логики

  • Steven B. Achelis. Technical Analysis from A to Z: Covers Every Trading Tool.. from the Absolute Breadth Index to the Zig Zag/Пер. с англ. М. Волкова, А. Лебедева. -М.: Диаграмма, 1999. -С. 30-34, 224-225. -376 с. -ISBN 978-5-902537-13-7
  • Тони Тернер. Краткосрочный трейдинг: Руководство для начинающих. -М.: Альпина Паблишер, 2013. -С. 365 -ISBN 978-5-9614-1711-1
  • Wee Mien Cheung, Uzay Kaymak. A Fuzzy Logic Based Trading System/сборник работ 3rd European Symposium on Nature-inspired Smart Information Systems, 2007, с. 3-7
  • Елена Фиронова. Применение нечеткой логики для анализа рисков инвестиционных проектов/«Федеральный образовательный портал» 2007, . URL: http://www.ecsocman.hse.ru/data/152/124/1231/Fuzzy_tekst_dlya_sajta.doc (дата обращения 10.02.2016)
  • Trading with Fuzzy Logic/Sanz Prophet, 2012 . URL: http://sanzprophet.blogspot.ru/2012/09/trading-with-fuzzy-logic.html (дата обращения 10.02.2016)
  • Fuzzy Logic Toolbox. Manual. 1994-2015 The MathWorks, Inc. . URL: http://www.mathworks.com/access/helpdesk/help/toolbox/fuzzy/index.html (дата обращения 10.02.2016)
Статья научная