Разработка торговых роботов для валютного рынка с использованием фундаментального и технического анализа
Тема алгоритмического трейдинга очень актуальна на сегодняшний день в области торговли, т.к. в ней очень редко используют торговых роботов, которые по заложенному алгоритму выставляют и снимают заявки в соответствии с торговой стратегией трейдера, тем самым понижая риск и увеличивая скорость торговли. Торговый робот может совершать операции с двумя и более бумагами, повышая эффективность торговли за счет ускорения исполнения заявок.
В основе алгоритмов торговых роботов лежат технический и фундаментальный анализ. С помощью гипотезы существования тенденции и алгоритма “Полос Боллинджера”, а так же, воспользовавшись #S.API был реализован торговый робот на основе технического анализа (Рисунок 1).
«Рисунок 1 - Модель работы алгоритма на основе технического анализа»
Ниже приведена таблица результатов торгов трейдера и торгового робота с интервалом в 5 минут. Общие денежные средства, доступные для торговли составили 300000 RUB. Трейдер заработал в конечном итоге 1035,6 RUB, а торговый робот принес 2030,76 RUB прибыли.
| Время, мин. | Торговый робот, RUB | Трейдер, RUB |
| 5 | 52,56 | 25,78 |
| 10 | 547,16 | 279,03 |
| 15 | 1041,76 | 531,26 |
| 20 | 1289,06 | 657,37 |
| 25 | 1536,36 | 783,48 |
| 30 | 1783,66 | 909,59 |
| 35 | 2030,76 | 1035,6 |
С помощью морфологического анализа и библиотеки phpMorphy был разработан торговый алгоритм на основе фундаментального анализа, что включает в себя построение графа зависимостей слов в простом предложении, а так же оценке тональности предложения (Рисунок 2).
«Рисунок 2 - Модель работы алгоритма на основе фундаментального анализа»
Для тестирования алгоритма, был создан интерфейс для ручного ввода простых предложений (Рисунок 3).
«Рисунок 3 - Интерфейс для тестирования алгоритма»
На выходе программа строит граф связей и отображает массив субъектов и степенных слов, как показано на рисунке (Рисунок 4).
«Рисунок 4 - Массив субъектов и степенных слов»
Тональность предложения определяется следующими формулами:
\(w_{s} = \begin{cases} n(1+\frac{m}{10} ) \\ n \in [-5,5] \\ m \in [0,5] \end{cases}\),
\(w_{s} = \begin{cases} \frac{m}{10} \\ m \in [0,5] \end{cases}\),
\(w_{n. w.} = \frac{ \sum_{k=1}^{l} w_{w k}}{n}\),
где ws - вес предложения, ww - вес слова, n - вес оценочного слова, m - степенное слово, l - количество синонимов, найденных в базе данных, wn.w. - вес нового слова. К оценочным словам относятся глаголы, к степенным - все наречия, инфинитивы, краткие прилагательные и деепричастия.
Дальнейшей целью является сравнение результатов двух торговых роботов и их объединение.
Научный руководитель - ст. пр. Куренков В.В.