Научная статья на тему 'СОЗДАНИЕ ТОРГОВОЙ СТРАТЕГИИ С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОЙ ЛОГИКИ'

СОЗДАНИЕ ТОРГОВОЙ СТРАТЕГИИ С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОЙ ЛОГИКИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
46
14
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЧЕТКАЯ ЛОГИКА / ТОРГОВЫЕ СИСТЕМЫ / MATLAB

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

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

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

Текст научной работы на тему «СОЗДАНИЕ ТОРГОВОЙ СТРАТЕГИИ С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОЙ ЛОГИКИ»

 Первы й старт Мощн ость Расшир яемость Эстетик а Скорост ь Кроссп латфор меннос ть Цен а ИТОГ

Vim 1 5 5 1 5 5 5 3,9

Emacs 2 5 5 1 4 5 5 3,9

Eclipse 3 5 5 3 2 5 5 4,0

Netbeans 3 4 5 3 1 5 5 3,7

Dreamweave r 5 2 2 4 4 2 2 3,0

Visual Studio 3 5 5 3 3 1 1 3,0

Xcode 3 5 4 5 3 1 5 3,7

Coda 2 5 5 5 5 3 1 2 3,7

Intellij Idea 5 5 5 5 4 5 3 4,6

TextMate 5 4 5 5 5 1 2 3,9

Sublime Text 5 5 5 5 5 5 2 4,6

Notepad++ 5 5 5 3 5 1 5 4,1

TextWrangle r 5 4 1 4 4 1 5 3,4

С полученным рейтингом 4.6 «пальму первенства» данного сравнения разделяют Sublime Text и JetBrains Intellij IDEA.

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

Использованные источники: 1. Интегрированная среда разработки [Электронный ресурс]: https://ru.wikipedia.org/wiki/Интегрированная_среда_разработки //

«Википедия» - свободная энциклопедия.

Колмахидзе Н.Г. студент 2го курса магистратуры Финансовый университет при Правительстве РФ

Россия, г. Москва СОЗДАНИЕ ТОРГОВОЙ СТРАТЕГИИ С ИСПОЛЬЗОВАНИЕМ

НЕЧЕТКОЙ ЛОГИКИ Аннотация: В статье подробно представлен процесс создания простейшей торговой стратегии на базе нечеткой логики с помощью пакета Fuzzy Logic Toolbox в Matlab. Описаны лингвистические переменные и их термы, функции принадлежности, база правил и результат нечеткого вывода стратегии.

Ключевые слова: нечеткая логика, торговые системы, Matlab

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

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

MACD = EMAl2 (P) - EMA26 (P)

где:

EMAi2(P) - экспоненциальная скользящая средняя последних 12 дневных цен закрытия;

ema:l6(p) - экспоненциальная скользящая средняя последних 26 дневных цен закрытия;

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

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

Signal = EM A (MACD)

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

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

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

лет = 100

i + (U) D

где:

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

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

Интерпретация значений RSI следующая - чем ближе RSI к 100 тем актив более перекуплен, чем ближе к 0 - перепродан. Наиболее часто

используемыми являются значения 30 и 70 - нахождение индикатора ниже 30 свидетельствует о перепроданности, а выше 70 - о перекупленности [2].

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

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

■ Низкий - первая категория, при которой МЛСЭ находится ниже сигнальной линии

■ Нулевой - вторая категория, МЛСЭ около сигнальной линии

■ Высокий - третья категория, МЛСЭ выше сигнальной линии

Для описания заданных категорий, в предположении, что МЛСЭ

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

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

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

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

График функций принадлежности категорий индикатора МЛСЭ в пакете МаНаЬ будет выглядеть так:

Рисунок 1. Функции принадлежности входной переменной МА С'/)

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

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

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

■ Средний - вторая категория, перепроданность или перекупленность отсутствует, е (30;70)

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

перекупленность, RSI [70;100]

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

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

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

■ Перекуплен - сигмоидная функция перегибом в точке 82 и крутизной 0,25

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

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

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

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

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

RSI

Перепродан Средний Перекуплен

Низкий Слабая покупка Продажа Сильная продажа

MACD Нулевой Покупка Удержание позиции Продажа

Высокий Сильная покупка Покупка Слабая продажа

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

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. Функции принадлежности выходной переменной «Действие с активом»

Membership function plots plot points: 181

1 1 С ильная Продажа Продажа 1 Слабая П родажа 1 1 1 УдержаниеПозиции 1 1 Слабая Покупка Покупка I С ильная Покупка

1 1 1 1 1 1 1

output variable 'ДействиеСактивом*

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

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

MACD=0,65.

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

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

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

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

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

Использованные источники:

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

2. Тони Тернер. Краткосрочный трейдинг: Руководство для начинающих. — М.: Альпина Паблишер, 2013. — С. 365 — ISBN 978-5-9614-1711-1

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

3. Wee Mien Cheung, Uzay Kaymak. A Fuzzy Logic Based Trading System / сборник работ 3rd European Symposium on Nature-inspired Smart Information Systems, 2007, с. 3—7

4. Елена Фиронова. Применение нечеткой логики для анализа рисков инвестиционных проектов / «Федеральный образовательный портал» 2007, [Электронный ресурс]. URL: http://www. ecsocman. hse.ru/data/152/124/1231/Fuzzy_tekst_dlya_sajta. doc (дата обращения 10.02.2016)

5. Trading with Fuzzy Logic / Sanz Prophet, 2012 [Электронный ресурс]. URL: http://sanzprophet.blogspot.ru/2012/09/trading-with-fuzzy-logic.html (дата обращения 10.02.2016)

6. Fuzzy Logic Toolbox. Manual. 1994-2015 The MathWorks, Inc. [Электронный ресурс]. URL: http://www.mathworks.com/access/helpdesk/help/toolbox/fuzzy/index.html (дата обращения 10.02.2016)

Куку В.А. студент 2-й курса факультет «Информационных систем и технологий»

Карнаухов К.В. студент 2-й курса факультет «Информационных систем и технологий» ФГБОУ ВО «Поволжский государственный университет

телекоммуникаций и информатики»

Россия, г. Самара ОБЗОР И ИСПОЛЬЗОВАНИЕ WEB NOTIFICATIONS API Аннотация: Произведен обзор интерфейса прикладного программирования для веб-оповещений (Web Notifications API). Представлен пример его использования.

Ключевые слова: программирование, разработка, оповещения, web notifications.

Современное общество немыслимо без развития и внедрения новых

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