Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

AUTOMATIC TRADING SYSTEM IN THE METATRADER 5 CLIENT TERMINAL

Kondrateva T.N. 1 Razveeva I.F. 1
1 Don State Technical University
1154 KB
The subject of the study are the quotations of the EUR / USD currency pair for the period 01.01.2018 to 08.01.2018. The purpose of the article is to consider the features of technical analysis of the financial market, as well as build an automated trading system on the multi-market platform Metatrader 5 in the specialized language of object-oriented high-level programming MetaQuotes Language. To achieve this goal, theoretical features, tools and methods of technical analysis were used, the main approaches to the construction of an automatic trading system were considered: mathematical, algorithmic analysis, forecasting using neural networks, programming. Recently, automated trading advisors or, as they are also called, trading robots are becoming more popular, especially among novice traders who, due to their limited experience in the field of technical analysis, prefer to shift decision-making to a trading algorithm. Trading robots allow you to make decisions about financial transactions, carry out transactions and monitor the relevance of the portfolio. The process is fully automated and can occur without human intervention. The results obtained in the process of testing the trading advisor online allow us to draw conclusions about the possibility of using an automatic trading system for trading in financial markets.
technical analysis
neural networks
forecasting
programming
graph
trend
indicator
automatic trading system
transaction

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

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

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

Цель исследования: создание автоматической торговой системы (АТС) на платформе Metatrader 5, руководствуясь методами технического анализа.

Материалы и методы исследования

Выделим ряд основных подходов к созданию торгового советника.

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

Второй подход основан на изучении тенденций изменения рынка. При этом не делается никаких попыток понять, почему цена растет или падает при появлении тех или иных фигур технического анализа на графике цены. К преимуществам данного подхода относят: не делает предположений о движущей силе рынка; не требует знаний законов математики. В большинстве случаев данный подход продвигают трейдеры, имеющие успех в торговле. Недостатком подхода является постоянная необходимость нахождения трейдера у монитора.

Третий подход – создание «черного ящика». В качестве базы для такой системы выступает нейросеть, построенная с использованием готовых инструментов, широко представленных на рынке ПО и в математических пакетах. Реализация подобной сети не требует глубокой математической подготовки и навыков программирования. Готовые инструменты с помощью визуальных средств позволяют создать требуемую АТС. От трейдера в этом случае требуются базовое знание индикаторов технического анализа, умение подготовить необходимые ценовые данные и навыки работы с конкретным пакетом по работе с нейронными сетями.

Четвертый подход основан на программировании торгового робота (без потери времени на ручную торговлю).

В статье сочетаются преимущества 1, 2 и 4 подхода к созданию АТС.

В основе ТС лежат торговые правила или алгоритмы. На рис. 1 приведен алгоритм создания ТС.

kondr1.tif

Рис. 1. Алгоритм создания торговой системы

1. Первый этап:

1.1. ИА – исследование и анализ ценовых данных.

1.2. ТА – написание торговых алгоритмов.

1.3. Тест – тестирование торговых алгоритмов.

1.4. АР – анализ результатов (тестирования, торговли).

1.5. ОПТ – оптимизация торговых алгоритмов.

2. Второй этап

1.6. ТС! – торговая система (рабочая версия).

1.7. Торговля – реальная торговля с использованием торговой системы (ТС!).

Результатом первого этапа должно стать появление рабочей версии торговой системы (ТС!), в которую входят торговые алгоритмы.

На втором этапе происходит реальная торговля с использованием алгоритмов торговой системы (ТС!). Если результаты торговли не устраивают или появляются идеи по совершенствованию торговой системы, тогда снова проводят тестирование, оптимизацию и анализ результатов, и если результаты приемлемы, то вносят коррекции в алгоритмы торговой системы.

Для создания торгового робота была выбрана торговая платформа MetaTrader 5 (MT5), имеющая огромное количество преимуществ по сравнению с аналогичными торговыми платформами. Для разработки торговых роботов и технических индикаторов в MetaTrader 5 используется собственный специализированный редактор MetaEditor. Он является составной частью среды разработки MQL5 IDE и тесно связан с торговой платформой MetaTrader 5. MetaEditor предназначен для работы с исходным кодом MQL5-программ и их дальнейшей компиляцией в исполняемые файлы. Благодаря тесной интеграции редактора и торговой платформы, готовые программы автоматически появляются в MetaTrader 5 и могут быть немедленно запущены в торговлю.

MetaQuotes Language 5 (MQL5) – это специализированный язык объектно-ориентированного программирования высокого уровня, позволяющий создавать торговых роботов и технические индикаторы. Он основан на концепции широко распространенного языка С++. MQL5 располагает большим разнообразием функций, необходимых для анализа котировок. В библиотеки языка встроены основные технические индикаторы, а также средства управления и контроля за торговыми позициями. Благодаря таким широким возможностям на MQL5-приложения можно переложить всю торговлю и аналитику на финансовых рынках.

Советник строится на основе сигналов, полученных от двух индикаторов – Stochastic Oscillator и Bollinger Bands.

Осциллятор стохастик состоит из двух линий: SOH – быстрой, ( %К), и SOL – медленной ( %D). Полоса SOH вычисляется по формуле

kond01.wmf (1)

где kond02.wmf – цены за предыдущий период, максимальная и минимальная; Fi – цены закрытия [4].

Полоса SOL вычисляется по формуле

kond03.wmf, (2)

где MFi – скользящее среднее по ценам закрытия, k – число периодов.

Индикатор берёт информацию о ценах закрытия с графика и по этим данным строит 2 линии – kond04.wmf ( %K) и kond05.wmf ( %D). На рис. 2 отражено графическое представление Stochastic Oscillator, красным пунктиром показана – SOH ( %D), синяя сплошная – SOL ( %К).

kondr2.tif

Рис. 2. Stochastic Oscillator

kondr3.tif

Рис. 3. График котировок валютной пары EUR/USD от 02.01.2018 г.

Следующий рассматриваемый индикатор – Bollinger Bands.

Bollinger Bands представляет собой две линии, ограничивающие динамику цены сверху и снизу соответственно. Полосы сами регулируют свою ширину: она увеличивается (расширяется), когда рынок неустойчив, и уменьшается (сужается) в более стабильные периоды. Формулы для построения полос Боллинджера:

kond06.wmf (3)

где MFi – скользящее среднее, а α – коэффициент сдвига, Fi – цена закрытия, k – число периодов.

kond07.wmf (4)

Параметр ? – коэффициент сдвига в формуле (3), будет принимать значение равное 2. Выбор такого значения обусловлен ранними тестированиями системы.

Получая сигналы от этих индикаторов, советник будет вести торговлю, следуя критериям поведения финансовых активов.

На рынке существуют три варианта поведения финансового актива: 1) рост; 2) падение; 3) сохранение. В первом случае выполняется условие kond08.wmf; во втором – подразумевает выполнение условия kond09.wmf; и в случае три – выполнение условия kond10.wmf Советник будет открывать позиции сам и закрывать их, если цены достигнут уровня Take Profit или Stop Loss [5–7].

Результаты исследования и их обсуждение

Исследование проводилось на основе данных котировок валютной пары EUR/USD в течение недели с 01.01.2018 по 08.01.2018, скачанных с сайта Международный финансовый холдинг FIBO Group.

2 января в 22:25 (рис. 3) цена опустилась ниже нижней линии Bollindger Bands, при этом главная полоса Stochastic была в зоне перепроданности и вышла за неё. Советник получил сигнал и совершил сделку на покупку размером 0,2 лота по самой выгодной цене на тот момент – 1,20542. Когда цена достигла значения Take Profit = 1,20582, советник закрывает сделку с прибылью.

Советник работал с разными таймфреймами (1m, 2m, 5m, 30m, 1h, 2h) и с разными параметрами «Take Profit» и «Stop Loss». Исследования показали, что наиболее эффективно советник работает на таймфрейме в 1 минуту (1m) и с параметрами Take Profit = 67 и Stop Loss = 10.

С этими параметрами за указанный период с изначальным депозитом D = 1000$ советник совершил 206 сделок, из которых: 49 прибыльных (24 % от всех); 157 убыточных (76 % от всех). Несмотря на большее количество убыточных трейдов, по окончании торгов депозит стал равен 1059$, то есть увеличился на 59$ (+ 5,89 %). Общая прибыль составила 1585$, общий убыток 1526$.

Средняя убыточная сделка была равна –9,6$, когда средний прибыльный трейд равен 32$, при этом самая прибыльная сделка составила 82$, а самая убыточная всего –13$. Это означает, что убыточные сделки быстро закрывались, незначительно влияя на депозит.

Советник реагирует на каждое движение графика, анализирует его, получает сигнал на вход в сделку и открывает позицию, затем в зависимости от ситуации закрывает её, если цена достигла отметки «Take Profit», то закрывает с прибылью, если отметки «Stop Loss», то закрывает с убытком.

Всего за указанный период советник обработал 3 736 433 движения (тика) графика.

Выводы

Было установлено, что цены акций или других инструментов фондового рынка движутся, как бы придерживаясь определенных тенденций. Умение определять эти тенденции является основой технического анализа. Исследование динамики рынка при техническом анализе происходит чаще всего посредством графиков с целью прогнозирования будущего направления движения цен. Данный анализ не может служить гарантией изменения цен в будущем именно в соответствии с выявленными закономерностями в прошлом или настоящем, но позволяет сделать вывод о направлении изменения цены и возможной его продолжительности [8]. Использование инструментов технического анализа в сочетании с АТС позволяет трейдеру минимизировать риск возникновения типичных ошибок, которые возникают при работе с валютными биржами.

Стоит отметить, что были получены достоверные значения от АТС, свидетельствующие об увеличении депозита на 59$ (+ 5,89 %) при тестировании советника в режиме онлайн, это свидетельствует о том, что при условии правильного подбора входных параметров можно вести прибыльную торговлю.

Исследование поддержано РФФИ, научный проект № 17-01-00888 а.