Введение 4
1. Постановка задачи 6
2. Обзор существующих решений 7
2.1. Системы на базе деревьев решений 7
2.2. Классификация исторических данных 8
2.3. Системы на базе генетического алгоритма 9
3. Реализация 10
3.1. Структура дерева 10
3.2. Уровень индикатора 11
3.3. Генетический алгоритм 12
3.4. Удаление лишних узлов 13
3.5. Программная реализация системы 17
3.6. Архитектура системы 21
4. Руководство пользователя 24
5. Тестирование 25
5.1. Используемые индикаторы 25
5.2. Метрики 26
5.3. Исходные данные 27
5.4. Аппаратные параметры системы 27
5.5. Производительность и подбор параметров 28
5.6. Результаты тестирования 29
Заключение 32
Приложение A: Пример отчёта системы 33
Список литературы 36
Одна из центральных задач любого трейдера - подбор прибыльных стратегий для торговли финансовым инструментом. Торговая стратегия трейдера - это формализованные правила для входа и выхода из позиции. Существует множество подходов для создания подобного рода правил, в финансовой индустрии их принято разделять на два больших класса: фундаментальный и технический анализ.
В первом случае, основой для прогнозирования рыночной стоимости инструмента служит обработка производственных показателей компании. Как правило, эти значения демонстрируют состояние дел держателя котировки той или иной акции. Данный подход требует информации, на составление которой необходимы данные за несколько месяцев, а иногда и кварталов. При этом не всегда возможно нахождение взаимосвязей между фундаментальными показателями и рыночной стоимостью, что в свою очередь требует применения исследований, затрагивающих внутренние и глубинные причины изменения валютных курсов. Но даже в этом случае можно придти к причинно-следственным связям, которые будут противоречить друг другу. По различным оценкам лишь 10-20% трейдеров используют фундаментальный анализ, и большинство из них владеет им поверхностно.
В основном торговые правила строятся на методах технического анализа и обработке таких данных, как: текущая цена инструмента, объём торгов, максимальная/минимальная цена за определенный период, цена в момент открытия/закрытия торговой сессии (пример подобного рода данных представлен на рис. 1). На основе серий этих данных строятся так называемые технические индикаторы. В соответствии с постулатами технического анализа технические индикаторы позволяют предсказывать вероятное направление тренда в той или иной бумаге. Таким образом комбинация из индикатора и его значения может служить базисом для торговой стратегии.
Рис. 1: Пример торговых исторических данных, взято с портала Yahoo Finance.
Date
Open
High
Low
Close
Adj Close*
Volume
Apr 28, 2017
144.09
144.30
143.27
143.65
143.65
20,763,500
Apr 27, 2017
143.92
144.16
143.31
143.79
143.79
14,246,300
Apr 26, 2017
144.47
144.60
143.38
143.68
143.68
20,041,200
Apr 25, 2017
143.91
144.90
143.87
144.53
144.53
18,871,500
Apr 24, 2017
143.50
143.95
143.18
143.64
143.64
17,134,300
Apr 21,2017
142.44
142.68
141.85
142.27
142.27
17,320,900
Apr 20, 2017
141.22
142.92
141.16
142.44
142.44
23,319,600
Apr 19, 2017
141.88
142.00
140.45
140.68
140.68
17,328,400
Apr 18, 2017
141.41
142.04
141.11
141.20
141.20
14,697,500
Apr 17, 2017
141.48
141.88
140.87
141.83
141.83
16,582,100
Apr 13, 2017
141.91
142.38
141.05
141.05
141.05
17,822,900
Apr 12, 2017
141.60
142.15
141.01
141.80
141.80
20,350,000
April, 2017
142.94
143.35
140.06
141.63
141.63
30,379,400
Конец рисунка 1.
Обнаружение прибыльных паттернов является нетривиальной задачей. В данной работе описан метод автоматического построения правил торговой системы без участия человека. Очевидно, что его применение позволит обнаружить большее число эффективных закономерностей поведения цены.
Таким образом, в ходе данной работы была создана автоматическая система генерации торговых рекомендаций. На основе исторических данных генетический алгоритм находит паттерны для сигналов покупки и продажи. Преимуществом данной системы является динамичный расчёт уровня исходных индикаторов. Архитектура системы позволяет работать практически с любым набором технических индикаторов.
По окончанию программной реализации был разработан комплекс, который помимо оптимального биржевого дерева решений также производил статистику и формировал полноценные отчёты об итоговой стратегии.
Данная система была представлена в статусе курсовой работы на конференциях:
1. СПИСОК-2016 [17]
2. Региональная информатика (РИ-2016) [18]
Обновлённая версия системы в 2017 году была показана на:
1. The 20th conference of the Open Innovations Association FRUCT [19]
2. Second Conference on Software Engineering and Information Management SEIM’17 [20].
[1] Giacomel F., Galante R., Pereira A. An Algorithmic Trading Agent based on a Neural Network Ensemble: a Case of Study in North American and Brazilian Stock Markets //Web Intelligence and Intelligent Agent Technology (WI-IAT), 2015 IEEE/WIC/ACM International Conference on. - IEEE, 2015. - Т. 2. - С. 230-233.
[2] Schoreels C., Logan B., Garibaldi J. M. Agent based genetic algorithm employing financial technical analysis for making trading decisions using historical equity market data //Intelligent Agent Technology, 2004.(IAT 2004). Proceedings. IEEE/WIC/ACM International Conference on. - IEEE, 2004. - С. 421-424.
[3] Potvin, Jean-Yves, Patrick Soriano, and Maxime Vallee. ’’Generating trading rules on the stock markets with genetic programming.” Computers & Operations Research 31.7 (2004): 1033-1047.
[4] Laurent H., RIVEST R. L. Construction optimal binary decision trees is NP-complete //Information Processing Letters. - 1976.
[5] Ochotorena C. N. et al. Robust stock trading using fuzzy decision trees //Computational Intelligence for Financial Engineering & Economics (CIFEr), 2012 IEEE Conference on. - IEEE, 2012. - С. 1-8.
[6] Iba H., Aranha C. C. Practical Applications of Evolutionary Computation to Financial Engineering. - Springer, 2012.
[7] Rakhmawati N. A., Suryani E., ITS J. R. Decision for Buying and Selling Stock with Decision Tree Algorithm. - 2006.
[8] Al-Radaideh Q. A., Assaf A., Alnagi E. Predicting stock prices using data mining techniques //The International Arab Conference on Information Technology (ACIT’2013), 2013.
[9] Carvalho D. R., Freitas A. A. A hybrid decision tree/genetic algorithm method for data mining //Information Sciences. - 2004. - Т. 163. - №. 1. - С. 13-35.
[10] Tsang E. P. K., Li J., Butler J. M. EDDIE beats the bookies //Softw., Pract. Exper. - 1998. - Т. 28. - №. 10. - С. 1033-1043.
[11] Ghandar A. et al. Computational intelligence for evolving trading rules //IEEE Transactions on Evolutionary Computation. - 2009. - Т. 13. - №. 1. - С. 71-86.
[12] Sharpe W. F. The sharpe ratio //The journal of portfolio management. • 1994. - Т. 21. - №. 1. - С. 49-58.
[13] Nugroho F. X. S. D., Adji T. B., Fauziati S. Decision support system for stock trading using multiple indicators decision tree //Information Technology, Computer and Electrical Engineering (ICITACEE), 2014 1st International Conference on. - IEEE, 2014. - С. 291-296.
[14] Python Data Analysis Library [Электронный ресурс]. - http://pandas.pydata.org/
[15] TA-Lib : Technical Analysis Library [Электронный ресурс]. - http://www.ta-lib.org/function.html
...