Сохрани и опубликуйсвоё исследование
О проекте | Cоглашение | Партнёры
Выпускная квалификационная работа 09.03.03 Прикладная информатика
Источник: Белгородский государственный университет - национальный исследовательский университет (НИУ «БелГУ»)
Комментировать 0
Рецензировать 0
Скачать - 1,8 МБ
Enter the password to open this PDF file:
-
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ» ( Н И У « Б е л Г У» ) ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК Кафедра прикладной информатики и информационных технологий РАЗРАБОТКА АВТОМАТИЗИРОВАННОЙ ТОРГОВОЙ СИСТЕМЫ НА РЫНКЕ FOREX НА ОСНОВЕ ПРИМЕНЕНИЯ СКОЛЬЗЯЩИХ СРЕДНИХ Выпускная квалификационная работа бакалавра очной формы обучения направления подготовки 09.03.03. Прикладная информатика 4 курса группы 07001205 Евстратовой Надежды Юрьевны Научный руководитель к.т.н., доцент Черноморец А.А. БЕЛГОРОД 2016
СОДЕРЖАНИЕ Введение ................................................................................................................... 3 1 Аналитическая часть ............................................................................................ 6 1.1 Понятие рынка Forex ....................................................................................................6 1.2 Методы совершения сделок .......................................................................................7 1.3 Экономическая сущность задачи ...........................................................................12 1.4 Анализ деятельности трейдера ...............................................................................14 1.5 Постановка задачи.......................................................................................................19 1.6 Анализ основных технологий .................................................................................20 1.7 Торговая стратегия Moving Average ......................................................................23 1.8 Выводы по главе...........................................................................................................26 2 Обоснование проектных решений .................................................................... 27 2.1 Обоснование проектных решений по техническому обеспечению ..........27 2.2 Обоснование проектных решений по информационному обеспечению 28 2.3 Обоснование проектных решений по программному обеспечению ........29 2.4 Обоснование проектных решений по функциональному обеспечению .31 2.5 Обоснование выбора программных средств .....................................................31 2.6 Выводы по главе...........................................................................................................33 3 Проектная часть.................................................................................................. 34 3.1 Функциональная модель системы .........................................................................34 3.2 Информационная модель системы ........................................................................38 3.3 Определение функций торгового робота ............................................................39 3.4 Инструменты МТ4 для создания и использования торговых роботов .....40 3.5 Разработка советника .................................................................................................41 3.6 Подготовка к работе торгового советника ..........................................................43 3.7 Тестирование торгового советника .......................................................................45 3.8 Оптимизация параметров советника ....................................................................50 3.9 Проверка работоспособности разработанной торговой системы ..............53 3.10 Оценка экономической эффективности ............................................................56 3.11 Выводы по главе ........................................................................................................61 Заключение............................................................................................................. 62 Список использованных источников ................................................................... 64 Приложение ........................................................................................................... 69 2
Введение В современном мире одним из путей инвестирования финансовых средств является биржевая торговля. Необходимо отметить, что при существующем многообразии объектов совершения операций данного типа наиболее популярный способ торговли представляет собой игру на разнице курсов валют, а самым развитым рынком в этой сфере является Forex. История рынка началась с создания Ямайской валютной системы, основы которой были заложены в марте 1971 года при участии двадцати наиболее развитых стран некоммунистического блока. 15 августа 1971 года США отказались от золотовалютного стандарта – это разрушило систему стабильных курсов и привело к возникновению понятия «плавающий курс». Окончательное становление новой системы произошло 8 января 1976 года на заседании министров стран-членов МВФ. Тогда же начал производиться обмен валют стран-участниц на свободном валютном рынке [1]. За 35 лет рынок существенно вырос, стал общедоступным не только на государственном уровне, но и для частных лиц, что стало возможным за счет открытия брокерских кампаний. В 2011 г. ежедневный оборот составил 4,5 трлн. USD, и опытные трейдеры могли получить за день до 5-7% прибыли, что при достаточно большой стоимости лота представляло существенный доход. Такая торговля требует непрерывного анализа ситуации на рынке, контроля динамики котировок и постоянного открытия/закрытия позиций, т.е. отрыва трейдера от основной деятельности. В связи с этим актуальным становится вопрос об автоматизации торговых операций, что стало возможным в 2005 году после возникновения торговых платформ. Темой данной выпускной квалификационной работы является «Разработка автоматизированной торговой системы на рынке Forex на основе применения скользящих средних». Или, другими словами, разработка торгового советника. 3
Торговые советники – это системы, которые можно использовать в качестве подсказки и экономить время или же торговать в полностью автоматизированном режиме [2]. Часто вспомогательным инструментом при торговле является скользящая средняя. Поэтому именно он будет использован в разработке. Скользящая средняя – общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний и выделения основных тенденций или циклов [3]. Советники Форекс актуально использовать, поскольку лучшие стратегии выбираются без негативного воздействия эмоций и нервов, как и возможно единственные правильные решения, сохраняющие и преумножающие депозит. Объектом исследования данной работы является рынок Forex. Предмет исследования – процесс совершения торговых операций с валютными парами и прогнозирование изменения курса котировок. Целью работы является проектирование осуществления торговли на рынке Forex и разработка эффективного торгового советника на основе скользящих средних путем объединения методик прогнозирования и торговли. Основные задачи исследования: 1) Анализ существующих методов осуществления торговых операций на рынке валют, прогнозирования котировок валютной пары и построения торговой стратегии. 2) Оценка способов снижения ошибок прогноза и числа убыточных сделок. 3) Поиск и выявление характеристик существующих методов прогнозирования, оценки курса котировок и оценка возможностей их применения в автоматической торговле. 4
4) Компаративный анализ существующих торговых советников и выбор программной реализации аппарата торговли. 5) Определение структуры создаваемой системы, выделение элементов, подсистем и механизмов их взаимодействия. Практическое значение создаваемой системы заключается в высвобождении человеческих ресурсов и увеличении экономического эффекта производимых торговых операций. Выпускная квалификационная работа состоит из 3 разделов: аналитическая часть – в данном разделе будет рассмотрена структуру процесса совершения сделки и анализ индикатора Moving Average; обоснование проектных решений – в данном разделе будет представлено обоснование выбора необходимого для разработки программного обеспечения; проектная часть – в данном разделе будет представлен процесс разработки и анализа торговой системы, а также оценка эффективности данной разработки. Выпускная квалификационная работа написана на 74 страницах, 6 из которых – приложение. Она включает в себя 44 рисунка, 11 таблиц и 4 формулы. По окончании исследования планируется получение настраиваемой и функциональной системы автоматизированной торговли со следующими свойствами: 1) Торговля на различных временных промежутках и при различной степени риска. 2) Автоматическое принятие решений об открытии и закрытии позиций. 3) Минимальное число входных параметров. 5
1 Аналитическая часть 1.1 Понятие рынка Forex Forex расшифровывается как Foreign Exchange, это международный рынок, на котором осуществляется торговля валютами между покупателями и продавцами, от центральных банков до частных лиц. Иногда употребляется термин биржа Forex (по аналогии с фондовыми биржами) – он является некорректным: рынок Форекс является внебиржевым. Основные участники торговли на Forex – это банки, которые используют валютный рынок непосредственно для обмена валют. Другие участники – это трейдеры, главная цель которых – заработать на разнице валютных курсов. Трейдеры отслеживают динамику рынка и осуществляют операции купли-продажи валют, получая прибыль от сделок. На упрощённом, бытовом уровне торговля на рынке Форекс – это спекулятивные сделки вида «купить дешевле, продать дороже», однако их успешность требует наличия базовых экономических знаний, логического мышления и аналитических навыков [4]. Трейдинг на Форекс осуществляется при помощи специализированных Forex-компаний, которые предоставляют физическим лицам доступ к операциям на рынке валют. Компания, оказывающая услуги доступа к Форекс, также называется дилинговый центр – от английского слова «deal», что переводится «сделка». Трейдер – лицо, торгующее финансовыми инструментами для извлечения прибыли [3]. В мире финансовых рынков именно трейдеры являются ключевыми фигурами, двигающими спрос и предложение. Для заключения удачной сделки трейдеру необходимо замечать факторы, влияющие на ситуацию на рынке, понимать, как их интерпретировать, а также уметь читать графики движения цен на активы. 6
1.2 Методы совершения сделок Ключевым элементом торговли, определяющим поведение трейдера на рынке, является торговая стратегия (ТС). ТС – это совокупность инструментов анализа и правил, которых придерживается трейдер в собственной работе на валютном рынке. Одновременное достижение заданных значений изменения котировок дает сигнал на покупку или продажу торгового инструмента. Другими словами, это модель принятия решений [5]. Структуру торговой стратегии составляют следующие компоненты [6]: 1) Временные срезы валютных котировок, которые используются для технического анализа и прогнозирования. 2) Набор индивидуальных индикаторов для каждого временного среза с установленными сигнальными уровнями. 3) Базовые условия восприятия торговых сигналов на продажу и покупку выбранной валюты. 4) Защитные ордера фиксирования убытка или прибыли – лимитпрофит или стоп-лосс ордера. 5) Правила оценки эффективности разработанной торговой стратегии и внесения в неё необходимых корректив. Опытные трейдеры, которые находятся в торговой среде более двух лет, как правило, имеют набор из 3-4 стратегий, которые они применяют в тех или иных ситуациях, в зависимости от картины рынка. Разрабатываемый торговый робот должен содержать в себе не только компонент анализа котировок, но и инструмент глобального анализа рынка и выбора модели поведения. В простейшем случае торговый советник должен уметь применять ряд стратегий, а решение о выборе ТС остается за трейдером-оператором. В более общем случае робот выбирает модель поведения самостоятельно. Вне зависимости от того, кто принимает решение о выборе ТС, важно включить в портфель наиболее разноплановые стратегии, что подводит к 7
необходимости дать им классификацию. Чаще всего, торговые стратегии классифицируют в зависимости от времени торговли, степени риска, по виду применяемых индикаторов, по торговым объемам и по способам торговли [7]. По времени торговли ТС подразделяются на: краткосрочные стратегии – в этом случае позиции закрываются на протяжении торговых суток, а иногда за несколько секунд (скальпинг); среднесрочные стратегии – позиция в этом случае способна удерживаться до нескольких суток/недель; долгосрочные стратегии – позиция «живет» от недели до нескольких месяцев. В зависимости от степени риска выделяют стратегии: консервативные (ТС с минимальными рисками); умеренные; агрессивные. По виду индикаторов или графическим моделям стратегии делятся на: простые или безиндикаторные; ТС по графическим моделям или паттернам; ТС, основывающиеся на скользящих средних; ТС на основе японских свечей; на основе полос Боллинджера; стратегия Фибоначчи; ТС на основе прочих индикаторов. По торговым объемам, применяемым в стратегии, выделяют: ТС, использующие методику Мартингейла; ТС, не использующие методы увеличения лота. Наконец, исходя из применяемого подразделяются на: ручные ТС; 8 способа торговли, ТС
полуавтоматические (трейдер пользуется скриптами, совмещая возможности автоматической торговли с ручным трейдингом); автоматические (всю торговлю берет на себя торговый советник). Базисом любой ТС, отвечающим за решение о вхождении в торговлю, является используемый в ней индикатор. При ручной торговле индикаторы являются некоторым дополнением к уже имеющемуся графику, расширяя предоставляемую пользователю информацию. При автоматической торговле те же цифры и коэффициенты анализируются непосредственно программой. В любом случае, математический аппарат каждого из индикаторов содержит результаты анализа, который традиционно разделяют на фундаментальный и технический [8]. Под фундаментальным анализом понимают совокупность мер, направленных на выявление закономерностей в поведении цены валют, динамики их спроса и предложения на рынке Forex на основе комплексного анализа ряда факторов. фундаментального контролировать анализа 40-50 Эксперты – считают, это показателей, его каждый что основной сложность [9]. из которых минус Поскольку определен конкретными причинно-следственными связями, имеющими противоречивый или же рефлексивный характер, физически невозможно, практическое применение получаемого прогноза даже с 50% долей уверенности становится сомнительным. Преимуществом метода является возможность не брать в расчет колебания рынка [8]. С точки зрения компьютерной реализации автоматической торговли, больший интерес представляет технический анализ рынка и котировок. Все многообразие методов прогнозирования технического анализа укладывается в определенную схему. Так в рамках трудов зарубежных исследователей разработана следующая классификация [5]: 1) Графические методы, помогающие прогнозировать рынок с помощью наглядного изображения его движений, различаются в зависимости от того, на каком типе графика строятся [10]. 9
2) Методы, использующие фильтрацию или математическую аппроксимацию, например методы, в основу которых положены скользящие средние и осцилляторы. С точки зрения реализации автоматического торгового советника данная группа показателей наиболее привлекательна, поскольку результаты анализа удобно интерпретировать алгоритмическими процедурами [11]. 3) Теория циклов более развита на теоретическом, чем на практическом уровне. Она занимается циклическими колебаниями не только цен, но и природных явлений в целом. Существуют также смешанные методы, несущие в себе черты нескольких групп. Например, волновая теория Эллиотта – метод в основном графический, но имеет черты фильтрации и цикличности. Таким образом, большинство методов технического анализа укладываются в изложенную классификацию (см. рисунок 1.1). Данная же классификация дает возможность увидеть перспективы построения торгового советника. Помимо этого, последнее время при построении автоматических торговых советников начали использоваться элементы систем искусственного интеллекта [12]. Рисунок 1.1 – Основные методы технического анализа Emam [13] показал, что искусственные нейронные сети могут быть использованы для прогнозирования рынка Forex. Тем не менее, он отметил, 10
что построить успешную модель нейронной сети для прогнозирования рынка Forex не просто из-за влияния различных факторов, таких как политические события, которые имеют место в течение определенного периода времени; такие политические кризисы случаются внезапно и цены падают быстро, а иногда скачок спрэда между ценой покупки и продажи составляет от 5 до 100 пунктов. При обмене иностранной валюты поток данных, количество транзакций в реальном времени, как правило, очень большой и имеет высокую плотность распределения [14]. Кроме того, ИНС не будет давать хороший результат без качественной предварительной подготовки данных, выбора входов, выбора переменных, алгоритмов обучения и предопределенной модели для проверки. Slany предложил прогнозирования рынка программирования для самоадаптирующуюся Forex с представления архитектуру использованием для генетического предсказаний. Целью системы является разработка и адаптация простых предсказаний, которые могут быть использованы либо самой системой, либо быть «вручную» использованы трейдером-человеком. Тем не менее, эта система имеет существенный недостаток – высокое соотношение ошибочно предсказанных изменений пунктов [15]. Wedding и CIO предложили гибридную модель сетей, основанных на радиальных функциях и модели авторегрессии скользящего среднего [16]. Эта технология применяет комбинацию моделей. Kablan расширил адаптивную нейро-нечеткую систему, чтобы создать экспертную систему, которая способна использовать нечеткие рассуждения в сочетании с возможностями распознавания нейронных сетей, которые будут использоваться в финансовом прогнозировании и торговле. Однако это еще один пример гибридной системы [17]. Проект Penn-Lehman Automated Trading является обширным исследованием генетических алгоритмов и стратегий для автоматической торговли на финансовых рынках. Subramanian и др. представили результаты 11
экспериментов, проведенных в рамках этого проекта, и показали, что автономные агенты могут достичь последовательной прибыльности в различных рыночных конкурентоспособнее условиях, человека. Они способами, также которые выявили являются качественные характеристики стохастической динамики, которые можно использовать, чтобы улучшить производительность этих агентов [18]. Конечно, данные эксперименты были ограничены фондовым рынком [19]. Проведенный анализ позволяет выделить основные направления формирования торгового советника. Предполагается, что советник реализует торговлю на различных временных промежутках и при различных степенях риска. Решение об открытии/закрытии позиций полностью предоставляется роботу. Единственным рычагом влияния на советника со стороны пользователя остается уровень риска – в простейшем случае задается процент средств на счету, которые можно задействовать в торговле. 1.3 Экономическая сущность задачи Принцип получения прибыли на Forex формируется за счет разницы курсов валют. Так, например, на росте курса доллара относительно евро заработали миллионы трейдеров по всему миру с осени 2014 по весну 2015 года (см. рисунок 1.2). 12
Рисунок 1.2 – График 2014-2015 годов В целом, принцип «вложил 1 рубль – через год снял 1,2» знаком каждому на примере банковских вкладов. Несмотря на сходство в описании, рынок Форекс для частного лица не имеет ничего общего с банковскими вкладами и устроен гораздо сложнее. Но и возможностей заработать дает несравнимо больше, как видно на примере выше. Международный валютный рынок Forex работает круглосуточно и доступен в любой точке мира, а стоимость валют, которая там формируется, и есть реальная и справедливая цена той или иной валюты на данный момент. Работа Forex-рынка не прекращается ни на минуту – ведь валюта для различных международных операций нужна постоянно: сначала, например, американским дельцам, а когда те уже ложатся спать – азиатским. Поэтому выделяют 4 основные торговые сессии на рынке Forex в течение суток (см. таблица 1.1), в каждую из которых более активен тот или иной регион и в которую, соответственно, совершается больше сделок с определенными валютами: в европейскую сессию – в евро, в азиатскую – с иеной [20]. 13
Таблица 1.1 – Торговые сессии Сессия Регион Зимнее время, время МСК Летнее МСК время, время Азиатская (ASIA) Токио Гонконг Сингапур открытие 03:00 04:00 04:00 закрытие 11:00 12:00 12:00 открытие 04:00 05:00 04:00 закрытие 12:00 13:00 12:00 Европейская (EUROPE) Франкфурт Цюрих Париж Лондон 9:00 9:00 9:00 10:00 17:00 17:00 17:00 18:00 09:00 09:00 09:00 10:00 17:00 17:00 17:00 18:00 Американская (AMERICA) Нью-Йорк Чикаго 16:00 17:00 24:00 01:00 16:00 17:00 24:00 01:00 Тихоокеанская (PACIFIC) Веллингтон Сидней 00:00 01:00 08:00 09:00 00:00 01:00 08:00 09:00 Сегодня рынок Forex – это структура с ежедневным оборотом более 3 трлн. долл. И для того, чтобы научиться зарабатывать на нем, необходимо учитывать ряд условий. Таким образом, экономическая сущность заключается в разработке советника, который сможет реагировать на меняющиеся условия финансового рынка и совершать торговые операции с наименьшими затратами и умением входить в рынок при различных торговых сессиях. 1.4 Анализ деятельности трейдера Методология IDEF0 используется для создания функциональной модели, отображающей структуру и функции системы, а также потоки информации и материальных объектов, преобразуемые этими функциями [21]. Модель деятельности «КАК ЕСТЬ», описанная в данной методологии, представлена на рисунок 1.3. 14
USED AT: AUTHOR: Евст р ат о ва PROJECT: Fo rex DATE: 21 .02 .2 016 REV: 27 .05 .2 016 WORKING DRAFT RECOMMENDED PUBL ICATION NOTES: 1 2 3 4 5 6 7 8 9 10 READER DATE CONTEXT: TOP За ко н "О Фор екс" Да нн ые о бро кер ах Прибыл ь Сове рш ен ие сдел ки на рынке Fore x Де по з и т Убыт ок Инфо рм ация о кот иро вках 0р . 0 Ко мп ан ия-бр оке р NODE: Meta Tra der Совершение сделки на рынке Forex TITLE: NUMBER: Рисунок 1.3 – Контекстная диаграмма A-0 Работа трейдера заключается в том, чтобы анализировать изменение цены на активы, которыми он торгует, на основе этого делать прогнозы дальнейшего изменения и открывать сделки в направлении этих прогнозов. Сам процесс совершения (см. рисунок 1.4) сделки является многоэтапным и включает в себя множество предварительных действий. USED AT: AUTHOR: Евст р ат о ва PROJECT: Fo rex DATE: 21 .02 .2 016 REV: 27 .05 .2 016 NOTES: 1 2 3 4 5 6 7 8 9 10 WORKING DRAFT RECOMMENDED PUBL ICATION READER DATE CONTEXT: A-0 За ко н "О Фор екс" Да нн ые о бро кер ах Ссыл ка дл я скачи ва ни я От кр ыт ие сч ет а Де по з и т 0р . 1 Ра з р еш ен ие до ст упа к рынку Ра бо т а с т ерм ин ал ом 0р . 2 Процесс от кр ыт ия сдел ки До ст уп к сч ет у Инфо рм ация о кот иро вках 0р . Инфо рм ация о сде л ке 3 Процесс з а кр ыт ия сдел ки 0р . Прибыл ь 4 Убыт ок Ко мп ан ия-бр оке р Meta Tra der NODE: TITLE: Совершение сделки на рынке Forex NUMBER: Рисунок A0 1.4 – Декомпозиция «Совершение сделки на рынке Forex» 15
Перед тем как начать торговлю на рынке Forex трейдеру необходимо выбрать брокера, через которого он будет выходить на рынок, и открыть у него счет (см. рисунок 1.5). USED AT: AUTHOR: Евст р ат о ва PROJECT: Fo rex DATE: 21 .02 .2 016 REV: 27 .05 .2 016 NOTES: 1 2 3 4 5 6 7 8 9 10 WORKING DRAFT RECOMMENDED PUBL ICATION READER DATE CONTEXT: A0 За ко н "О Фор екс" Инфо рм ация о бро ке ре Выбо р бр окера Да нн ые о бро кер ах 0р . 1 Ре гист р аци я л ичн ого ка би нет а 0р . Ссыл ка дл я скач ив ан ия Ли чн ый ка бин ет 2 От кр ыт ие ре ал ьн ого сч ет а 0р . Новый сче т 3 Вн есени е де по з и т а Де по з и т 0р . До ст уп к сч ет у 4 Ко мп ан ия-бр оке р NODE: Открытие счета Рисунок 1.5 – Декомпозиция «Открытие счета» TITLE: A1 NUMBER: Следующим этапом эвляется установка торгового терминала на компьютер. Прежде чем это сделать нужно скачать установочный файл программы MetaTrader 4. Любой брокер позволяет скачать его бесплатно, поскольку он не зарабатывает на продаже программного обеспечения, а свободно предоставляет его для совершения операций трейдерам, имеющим торговые счета в их компании. Не важно, какой брокер был выбран для торговли, принцип установки торгового терминала одинаков (см. рисунок 1.6). 16
USED AT: AUTHOR: Евст р ат о ва PROJECT: Fo rex DATE: 21 .02 .2 016 REV: 27 .05 .2 016 NOTES: 1 2 3 4 5 6 7 8 9 10 WORKING DRAFT RECOMMENDED PUBL ICATION READER DATE CONTEXT: A0 За ко н "О Фор екс" Скач ив ани е т о рго во го т е рм ин ал а Ссыл ка дл я скач ив ан ия Файл дл я уст ан овки 0р . 1 То рго вый т е рм ин ал Уст а нов ка т о рго во го т е рм ин ал а 0р . 2 Ра з р еш ен ие до ст упа к р ын ку Из уч ен ие ист р укции 0р . 3 Meta Tra der NODE: Работа с терминалом TITLE: A2 NUMBER: Рисунок 1.6 – Декомпозиция «Работа с терминалом» Торговля на Форекс начинается именно с открытия сделки (см. рисунок 1.7). Этот этап проходит в просмотре графиков, чтении финансовой прессы и прочих делах, цель которых – найти набор условий, необходимых для совершения определенного типа сделок. В первую очередь здесь, конечно, требуются умственные усилия. USED AT: AUTHOR: Евст р ат о ва DATE: 21 .02 .2 016 REV: 27 .05 .2 016 PROJECT: Fo rex NOTES: 1 2 3 4 5 6 7 8 9 10 WORKING DRAFT RECOMMENDED PUBL ICATION READER DATE CONTEXT: A0 За ко н "О Фор екс" Ра з р еш ен ие до ст упа к р ын ку Выбо р ва л ют н ой па ры До ст уп к сч ет у 0р . Ва л ют н ая па ра 1 0р . Уст а нов ка ра з м ер а л от а Ра з м ер л о т а 2 Ан ал ит ика рынка Инфо рм ация о кот иро вках 0р . Моме нт от кр ыт и я 3 От кр ыт ие сдел ки 0р . Сведен ия о 4 сдел ке Уст а нов ка Инфо рм ация о сде л ке Stop-Lo ss и Ta ke -Pro fit 0р . 5 Meta Tra der NODE: NUMBER: Процесс открытия сделки РисунокTITLE: 1.7 – Декомпозиция «Процесс открытия сделки» A3 17
Последний этап для большинства является наиболее сложной частью всей торговли. В «Воспоминаниях биржевого спекулянта» Эдвина Лефевра пример для сравнения поведения профессионала и любителя на этом этапе торговли. Он пишет, что любители, когда цена движется против них, надеются на ее возвращение на прежний уровень, а когда они получают по сделке прибыль, они боятся, что рынок отберет ее. В итоге получается, что они урезают прибыль и позволяют расти потерям. Профессионалы действуют прямо противоположным образом. Когда они несут потери, они боятся, что рынок отберет у них еще больше, а когда они зарабатывают прибыль, они надеются на ее дальнейшее увеличение [22]. Проанализировав ситуацию рынка и взвесив возможности увеличения прибыли и минимизации убытков, необходимо закрыть текущую сделку (см. рисунок 1.8). USED AT: AUTHOR: Евст р ат о ва DATE: 21 .02 .2 016 REV: 27 .05 .2 016 PROJECT: Fo rex NOTES: 1 2 3 4 5 6 7 8 9 10 WORKING DRAFT RECOMMENDED PUBL ICATION READER DATE CONTEXT: A0 За ко н "О Фор екс" Ан ал из рынка Инфо рм ация о сде л ке 0р . Инфо рм ация о со ст о ян ии рынка 1 Опре де л е ние вр ем ен и з а кр ыт ия сдел ки 0р . Моме нт з а кр ыт и я 2 Прибыл ь За кр ыт ие сдел ки 0р . Убыт ок 3 Meta Tra der NODE: TITLE: NUMBER: Процесс закрытия сделки Рисунок 1.8 – Декомпозиция «Процесс закрытия сделки» A4 Валютный рынок охватывает большой объем информации. Поэтому необходимо использовать средства вычислительной техники для автоматизации процесса совершения сделки и минимизации убытков, возможных при ручной торговле. 18
1.5 Постановка задачи Советник – это программа или целая система, которая делает торговлю на Forex более прибыльной. Торговые советники предназначены для более комфортного процесса работы [4]. Именно фактор прибыльности советника ставится на первое место. Ведь все остальное – удобство торговли, отсутствие стрессов при проведении торговых операций и другие будут бесполезны без увеличения финансовой отдачи от прибыльного советника. Несмотря на это, каждая автоматизированная система должна выполнять дополнительные требования. Для торгового советника это [23]: скорость реакции на изменение цены должна быть максимально быстрой; отсутствие зависаний, то есть при работе торгового робота не должно возникать ситуаций, при которых происходит зацикливание или равноправное раздвоение алгоритма, не позволяющее программе продолжить работу; отсутствие разночтений, то есть все параметры программы и реакция на них торгового алгоритма, должны оставаться однозначными; торговый робот должен базироваться на определенной психологической манере поведения людей или машин, потому что в торговле участвуют наряду с людьми и мощнейшие торговые системы крупных банков и инвестиционных фондов; явно или косвенно в торговой стратегии должны читаться числа Фибоначчи, линии поддержки и сопротивления. В рамках проводимого исследования необходимо разработать биржевого робота для торговли на рынке валют Forex. Торговый советник должен реализовывать как кратко-, так и долгосрочные торговые сделки, автоматически определять точки входа на рынок и моменты закрытия позиций, принимать решения относительно увеличения торгового лота в 19
процессе торговли и использовать такой индикатор технического анализа, как скользящая средняя. За пользователем должна оставаться возможность регулирования степени риска. В связи с этим необходимо решить следующие задачи: разработать структуру торгового советника, выделить основные компоненты и описать механизм их взаимодействия; адаптировать либо разработать математический аппарат для принятия решений в различных компонентах советника; реализовать разработанные алгоритмы функционирования на встроенном в торговую платформу языке программирования MQL4; произвести численное исследование полученной торговой модели и сравнить результаты с работой существующих роботов. 1.6 Анализ основных технологий Для формирования представления об эффективности и прибыльности существующих торговых советников были отобраны шесть наиболее популярных из них: Moving Average, Intraday, MACD, MACFibo, PSAR, X Traider. Тестирование проводилось на семи рыночных промежутках (1 минута, 5 минут, 15 минут, 30 минут, 1 час, 4 часа, 1 день), на пяти отрезках времени (01-10.02.16, 10-20.02.16, 20.02.13-01.03.16, 01.03.13-12.03.16, 12.03.1614.03.16). Для оценки эффективности торговли анализировались показатели чистой прибыли, прибыльности, числа проведенных сделок, процента прибыльных сделок, процента выигрышных коротких позиций и математическое ожидание выигрыша. Сбор статистики производился при помощи тестера стратегий платформы MetaTraider 4. Усредненные показатели для пяти серий тестов на различном таймфрейме представлены в таблице 1.2. 20
Таблица 1.2 – Сводные результаты тестирования торговых советников Название советника ПеЧистая Прибы- Число Макси% риод прибыль льность сделок мальная прибытеста просадка льных сделок Moving M1 -2026,4 0,132 246,4 2043 9,898 Average M5 -610,99 0,384 72,8 743,38 16,338 M15 -234,29 0,456 25,4 342,32 18,66 M30 -162,81 0,48 14 297,62 14,692 H1 -198,98 0,32 6,8 249,34 23 H4 -131,83 1,74 2,2 359,08 36,666 D 8,8 N/A 0,2 18,8 20 Intraday M1 -8740 N/A 126,2 8748 0 M5 -8737,8 0,036 127 8755,8 6,932 M15 -8047,1 0,132 114 8083,1 16,19 M30 -6792,2 0,26 96,4 6852,4 20,512 H1 -2927,7 0,508 61,4 3291,9 31,792 H4 -1404,3 0,726 21,8 2216,66 38,43 D -609,9 0,482 4,4 991,9 21,524 MACD M1 -40,72 0,07 2,2 68,48 28,572 M5 12,28 0,572 5,4 85,33 73,334 M15 61,28 2,032 4,6 78,72 77 M30 69,09 1,358 3,8 94,95 73 H1 62,11 N/A 2 77,68 100 H4 -8,04 0,14 1 50,56 53,334 D 2,41 N/A 0,2 11,39 20 MACFibo M1 -1178,4 0,08 159 1180,4 5,908 M5 -402 0,222 57 410 15,672 M15 -150,6 1,63 20 198,4 33,932 M30 -11 1,176 11,2 78,888 50,96 H1 -56,48 0,514 7,2 111,88 40,238 H4 -19,79 0,072 1,2 42,79 30 D 3,6 N/A 0,2 2,8 20 PSAR M1 -3154,7 0,598 464 4924,56 37,284 M5 -2373,8 0,784 457,8 9819,53 28,584 M15 -2113 0,856 244,8 9296,21 45,552 M30 -4636,3 0,194 118 9626,95 21,386 H1 -5753,1 0,11 86,8 9587,76 10,196 H4 759,51 N/A 14,2 808,69 20 D -1629,8 N/A 15,2 2079,36 0 X Traider M1 -13,19 N/A 1 174,78 40 M5 73,7 N/A 1 163,52 80 M15 61,18 N/A 1 158,76 80 M30 6,84 10,6 1 190,04 60 H1 10,11 N/A 1 190,04 40 H4 -27,9 N/A 0,8 141,56 20 D -6,78 N/A 0,2 17,78 0 21 % Мат. коротких ожидание позиций выигрыша 22,908 18,44 16,666 18,018 16,666 46,666 20 0 6,932 16,19 20,512 31,792 38,43 21,524 12 70 71,666 60 100 40 20 7,716 19,822 41,486 40,666 33,334 40 20 54,596 44,82 60,368 60 20 20 0 40 60 60 40 40 20 0 -8,138 -7,402 -8,93 -11,58 -27,8 -56,766 8,8 -69,262 -68,934 -70,614 -68,154 -44,184 -61,71 -169,47 -15,432 6,526 16,222 18,194 33,656 -2,014 2,41 -7,33 -6,932 -5,476 3,51 -9,834 -19,69 3,6 -10,072 -6,658 -6,932 -31,522 -67,71 10,67 -21,444 -13,13 73,7 61,09 6,84 10,11 -27,94 -6,78
По итогам тестирования большинство советников зарекомендовали себя как убыточные (прибыль не получена, инвестированные средства не возвращены в полном объеме). Исключение составляет торговый робот «X Traider», но он осуществлял всего одну сделку за весь период в 85% случаев, в оставшееся время не торговал вообще, поэтому, несмотря на высокие показатели прибыльности, данный советник не подходит для долгосрочной автоматической торговли. Похожая ситуация наблюдается при анализе работы торгового советника MACD, установленного в системе MetaTraider 4 по умолчанию. Несмотря на то, что более половины его сделок являются прибыльными (см. рисунок 1.9), математическое ожидание выигрыша составляет довольно небольшую сумму, а сами показатели торговли советника свидетельствуют о его убыточности. В такой ситуации более выгодным является депозитный вклад, чем инвестиции в торговлю на курсе валют. Рисунок 1.9 – Проценты успешных сделок и коротких позиций Тем не менее, некоторые торговые советники показали хорошие показатели прибыльности для определенных рыночных интервалов. Например, наиболее популярный торговый советник, основанный на методе скользящих средних, осуществляет эффективную четырехчасовом интервале (см. рисунок 1.10). 22 торговлю на
Рисунок 1.10 – График прибыльности Moving Average и MACFibo По результатам анализа было принято решение использовать торговый советник Moving Average в качестве основы создаваемого робота. Данный советник успешно осуществляет торговлю на популярном временном интервале H4, который чаще всего используется наименее опытными трейдерами, а также в нем успешно реализован аппарат открытия/закрытия ордеров. 1.7 Торговая стратегия Moving Average Простая и многократно проверенная стратегия Форекс Exponential Moving Average (см. рисунок 1.11) дает возможность получать прибыль, если научиться читать и терпеливо следовать ее сигналам. Не следует выбирать такую стратегию на временных интервалах, когда цена меняется скачкообразно, так как индикатор Moving Average рассчитан больше на длинные позиции и долгосрочную торговлю. 23
Рисунок 1.11 – Пример работы индикатора Для того чтобы воспользоваться данной стратегией, первоначально следует установить на графике следующие скользящие средние [24]: EMA (50) – экспоненциальная скользящая средняя с экспоненциальная скользящая средняя с экспоненциальная скользящая средняя с фиксированным периодом 50; EMA (100) – фиксированным периодом 100; EMA (200) – фиксированным периодом 200. Все эти EMA имеет в своем стандартном наборе торговый терминал Metatrader 4 и носят название (Moving Average). Если рыночный график отражает восходящий тренд, то цена будет двигаться поступательно, проходя через EMA (50), EMA (100) и EMA (200). Если рыночный график отражает нисходящий тренд, то и цена соответственно будет двигаться поступательно проходя через EMA (200), EMA (100), EMA (50). Очень важной особенностью рынка Форекс является тот факт, что цена всегда стремится к своему среднему значению. В рассматриваемом нами случае – к EMA, а после приближения к ней – отталкивается. В том случае, если цена все же пробила одну EMA, она, как правило, направляется к следующей EMA, отстоящей на 40-60 пунктов. В случае, если скользящая 24
средняя EMA пришлась на каком-либо важный уровень Фибоначчи, то следует дождаться подтверждения индикатора MACD [24]. При торговле по этой простой стратегии (Exponential Moving Average) Форекс, следует [2]: наблюдать за графиком движения цены и ждать момента, когда рынок четко прорисует низшую и высшую точки цены; на следующем этапе этого строятся уровни Фибоначчи от одной сформировавшейся вершины – до другой; если уровни Фибоначчи и скользящая средняя EMA совпадают, то при формировании разворотной свечи на продажу и откате заключается сделка на продажу. Как вариант – установка заранее лимитных ордеров на ключевые уровни, которые совпадают со скользящими средними; для собственного спокойствия трейдеру лучше всего пользоваться стандартным трейлинг-стопом или трейлинг-стопом от 1 пункта (шаг зависит от рассматриваемой валютной пары); стоп-лосс следует выставлять либо выше либо ниже следующего мувинга (уровня Фибоначчи). Зарекомендовала себя данная стратегия на таких валютных парах, как GBPUSD, USDJPY, GBPJPY, но работает при соблюдении всех условий и на других валютных парах. Относительно уровней Фибоначчи следует добавить, что абсолютно не важно, какое количество времени прошло с момента формирования локального минимума и локального максимума – несколько минут, часов или дней. Если цена, к примеру, прошла путь от максимума до минимума в течение 3 часов, то потребуется нанести уровни Фибоначчи от этих точек, и цена на графике будет отталкиваться от ключевых уровней Фибоначчи, совмещенных со скользящей средней EMA [25]. Если цена закрытия свечи выше или ниже скользящей средней EMA, то следует быть осторожным. Цена может пробить скользящую среднюю EMA и направиться к очередной скользящей средней, а может и отскочить от нее. 25
Для получения более объективного представления о возможном поведении графика цены и скользящей средней ЕМА рекомендуется внимательно изучить историю. Поскольку индикатор MACD – является важнейшим индикатором данной форекс-стратегии, следует учесть и его сигналы. При пересечении скользящей средней ЕМА (50) двух других скользящих средних имеет место комбинация «смертельный крест». Это значит, что цена устремиться в направлении пересечения и пройдет достаточно большое количество времени пока все три скользящие средние ЕМА не пересекутся снова в обратном направлении [24]. 1.8 Выводы по главе Глава «Аналитическая часть» является теоретическим обоснованием необходимости создания разработки автоматизированной торговой системы. В данной главе было изучено понятие рынка Forex, его основные понятия, участки данного рынка. Также был проведен анализ деятельности трейдера и составлена модель деятельности «КАК ЕСТЬ». После тестирования основных технологий торговли, было выявлено, что скользящая средняя является самой популярной и часто используемой как начинающими трейдерами, так и профессионалами. В дальнейшем стратегия, основанная на скользящих средних будет использована для разработки торгового советника. 26
2 Обоснование проектных решений 2.1 Обоснование проектных решений по техническому обеспечению Техническое обеспечение – это комплекс технических средств, с помощью которого осуществляют сбор, обработку, хранение, преобразование и передачу данных, связанных с объектом проектирования [26]. Основу технического обеспечения составляют средства вычислительной техники и, в первую очередь, это – персональный компьютер. В ходе данной работы будет использовано техническое обеспечение, представленное в таблице 2.1. Таблица 2.1 – Техническое обеспечение № 1. 6. 7. Характеристика ASUS P4P800 Se i865PE DualDDR400 U100 S-ATA AC’97 6-ch LAN AGP8x USB2.0 HT FSB800MHz ATX Процессор Intel Pentium 4 2.8E 1024Kb Bus800MHz Socket 478 BOX(+cooler) Жесткие диски HDD IDE WD 80Gb 7200(8Mb) WD800JB Модули памяти. Flash- DDR-память:DIMM DDR 256Mb pc3200 (400MHz) накопители Samsung; Flash-карты: SD Card 256Mb Kingmax Видеокарты ASUS V9520/TD GeForceFX 5200 128 Mb DDR TV-out DVI(retail) Звуковые карты C-Media 8738 4-channel PCI(oem) Дисководы Fdd 3.5”1.44 Mb NEC black 8. 9. 10. 11. 12. Модемы Клавиатура Коврик Мышь оптическая. Сканер 2. 3. 4. 5. Наименование Материнская плата 13. Принтер лазерный 14. Сетевой фильтр 15. Монитор 16. Кабели 17. Расходные материалы Внешний acorp 56K EMSF-2 voice (COM-port) SVEN-7000 (OfficeMedia Deluxe Black) ps/2 Коврик для мыши гелевый (клякса с подушкой) Оптическая A4 Tech SWOP-3 RainBow optical ps/2 (retail) EPSON Perfection 1670 CCD 216*297 мм 1600*1600dpi(быстр. кнопки) USB 2.0 Hewlett Packard LaserJet 1300 A4 1200 dpi 19 стр/мин (PCL5e)(2500pg5%)USB 2.0,LPT Сетевой фильтр (5 розеток) Pilot GL 2м 17”Samsung syncMaster 797DF h0.20/1024*768 116 Hz/1280*1024 89 Hz/Dynaflat/TCO’03 Кабель FireWire IEEE 1394 4p4p 1.9 м Аксессуары, дискеты, бумага для печати, диски, картриджи лазерные, тонеры, чернила 27
2.2 Обоснование проектных решений по информационному обеспечению Информационное обеспечение – это совокупность единой системы классификации и кодирования информации, унифицированных систем документации, схем информационных потоков, циркулирующих на предприятии, методология построения баз данных [26]. К информационному обеспечению предъявляются следующие общие требования [27]: 1) информационное обеспечение должно быть достаточным для поддержания всех автоматизируемых функций объекта; 2) для кодирования информации должны использоваться принятые у заказчика классификаторы; 3) для кодирования входной и выходной информации, которая используется на высшем уровне управления, должны быть использованы классификаторы этого уровня; 4) должна быть обеспечена совместимость с информационным обеспечением систем, взаимодействующих с разрабатываемой системой; 5) формы документов должны отвечать требованиям корпоративных стандартов заказчика (или унифицированной системы документации); 6) структура документов и экранных форм должна соответствовать характеристиками терминалов на рабочих местах конечных пользователей; 7) графики формирования и содержание информационных сообщений, а также используемые аббревиатуры должны быть общеприняты в этой предметной области и согласованы с заказчиком; 8) в ИС должны быть предусмотрены средства контроля входной и результатной информации, обновления данных в информационных массивах, контроля целостности информационной несанкционированного доступа. 28 базы, защиты от
В данной работе использовалось техническое обеспечение, представленное в таблице 2.2. Таблица 2.2 – Информационное обеспечение № 1. 2. 3. 4. Наименование Характеристика Язык MQL4 (MetaQuotes Language) – это язык программирования для программирования, который используется для Meta Trader автоматизации своих действий на валютном рынке и реализации торговых стратегий в рамках торгового терминала MetaTrader4. Forex EA Generator Программа для создания советников и конструктор для индикаторов Meta Trader 4 Tradecision Pro Универсальная программа технического анализа, не имеющая аналогов по доступному набору функций. Включает в себя практически весь функционал самых известных программ технического анализа Forex Strategy Builder Программа для создания и тестирования стратегий торговли на онлайн бирже Forex 2.3 Обоснование проектных решений по программному обеспечению Программное обеспечение – это все или часть программ, процедур, правил и соответствующей документации системы обработки информации [27]. Программное обеспечение является одним из видов обеспечения вычислительной системы, наряду с техническим, математическим, информационным, лингвистическим, организационным и методическим обеспечением. Программное обеспечение – это то, что делает компьютеры универсальными, позволяя использовать типовую вычислительную машину для решения самых разнообразных задач/ К обеспечению качества программных средств предъявляются обеспечиваться выполнением следующие требования [27]: 1) функциональность должна подсистемами всех их функций. 29
2) надежность должна обеспечиваться за счет предупреждения ошибок – не допущения ошибок в готовых ПС; 3) легкость применения должна обеспечиваться за счет применения покупных программных средств; 4) эффективность должна обеспечиваться за счет принятия подходящих, верных решений на разных этапах разработки ПС и системы в целом; 5) сопровождаемость должна обеспечиваться за счет высокого качества документации по сопровождению, а также за счет использования в программном тексте описания объектов и комментариев; использованием осмысленных (мнемонических) и устойчиво различимых имен объектов; размещением не больше одного оператора в строке текста программы; избеганием создания фрагментов текстов программ с неочевидным или скрытым смыслом. В ходе выполнения данной работы использовалось программное обеспечение, представленное в таблице 2.3. Таблица 2.3 – Программное обеспечение № Наименование 1. Операционная система 2. Инструментальное ПО (языки программирования) 3. 4. 5. 6. Пакет прикладных программ Антивирусные пакеты Системный переводчик Информационно-поисковые системы Характеристика Microsoft Windows 7 Professional: Стандартные программы. Служебные программы. Связь и развлечения. Администрирование и дополнительные средства. Специальные возможности MetaEditor MetaTrader4, MetaTrader5 AVP Dr. WEB. Norton Antivirus Lingvo Yandex, Google 30
2.4 Обоснование проектных решений по функциональному обеспечению Функциональные требования – это перечень сервисов, которые должна выполнять система, причем должно быть указано, как система реагирует на те или иные входные данные, как она ведет себя в определенных ситуациях и т.д. В некоторых случаях указывается, что система не должна делать. Функциональные требования определяют поведение программной системы, которая должна быть создана разработчиками для предоставления возможности выполнения пользователями своих обязанностей в рамках бизнес-требований и в контексте пользовательских требований [26]. Требования к функциональному обеспечению, предъявляемому к разрабатываемой системе, представлены в таблице 2.4. Таблица 2.4 – Функциональное обеспечение № 1. 2. 3. 4. Наименование Торговля Характеристика Открытие сделок Закрытие сделок Разработка приложений Разработка торговых советников и роботов Анализ рынка Фундаментальный анализ Компьютерный анализ Технический анализ Свечной анализ Поиск инвесторов Поиск потенциальных клиентов и инвесторов 2.5 Обоснование выбора программных средств Торговые советники Форекс дают возможность автоматизировать процессы торговли и анализа. Советники, которые разработаны с помощью языка программирования Meta Quotes Language 4, могут очень быстро осуществлять технический анализ актуальных цен. Также, учитывая сигналы Форекс и прогнозы, с помощью советников можно построить собственную 31
тактику при управлении своей деятельности на международном валютном рынке [28]. Торговые советники можно создать различными способами в соответствии с конкретной торговой стратегией. Существует множество программных средст, помогающих в создании советников и роботов. В таблице 2.5 приведена сравнительная характеристика наиболее популярных: Forex EA Generator – программа для создания советников и конструктор для индикаторов Metatrader 4. отличие Safir XP – нейропрограмма с уникальной функциональностью. В от других нейропрограмм Safir XP сам создаёт готовую механическую торговую систему с использованием нейросетей и нечёткой логики – пользователю нужно лишь указать список из нескольких индикаторов, на основе которых будет создаваться система – либо использоваться для улучшения и оптимизации любой уже имеющейся механической торговой системы. MetaEditor является удобной, многофункциональной средой разработки, интегрированной с торговым терминалом. Он предназначен для разработки программ на языке MetaQuotes Language 4 и 5 (MQL4 и MQL5). С его помощью можно создавать советники (эксперты), пользовательские индикаторы и скрипты, которые в дальнейшем будут применяться в клиентском терминале для аналитических и торговых целей. Tradecision Pro – универсальная программа технического анализа, не имеющая аналогов по доступному набору функций. Включает в себя практически весь функционал самых известных программ технического анализа. Forex Strategy Builder – программа для создания и тестирования стратегий торговли на онлайн бирже Forex. Forex Strategy Builder создает реальные условия для проведения тестовой торговли, оперируя настоящими рыночными данными. 32
Таблица 2.5 – Сравнительная характеристика ПО Forex EA Safir FX MetaEditor Generator Не требует навыков программирования Поддерживает MetaTraider4 Является интегрированной с MetaTraider4 Создает экспертов Устанавливает свойства ордеров Устанавливает время исполнения ордеров Производит тестирование Поддерживает MQL 4 + - - Tradercision Pro - Forex Strategy Builder - + - + + - - - + - - + + + - + + - - + - + - - + - + + - + - Итак, по данным таблицы получаем, что наиболее удобным для создания торговых советников является MetaEditor. Единственным минус этой программы стало то, что для работы в ней необходимы навыки программирования, но благодаря этому можно расширить функционал советника и совершать сделки с большей точностью. 2.6 Выводы по главе Во второй главе были рассмотрены требования, предъявляемые к техническому, информационному, программному и функциональному обеспечению и определены виды обеспечения, которые в дальнейшем будут использоваться при разработке. Также было рассмотрено программное обеспечение, которое используется для создания торговых советников, и приведено обоснование выбора программного средства MetaEditor. 33
3 Проектная часть 3.1 Функциональная модель системы Функциональная модель системы предназначена для изучения особенностей работы системы и её назначения во взаимосвязи с внутренними и внешними элементами Функциональная [29]. модель системы, разработанная в среде AllFusion Process Modeler, приведена на рисунке 3.1. Входными параметрами системы «КАК ДОЛЖНО БЫТЬ» являются: котировки валютной пары, состояние счета и данные по открытым сделкам; выходными: отчет о состоянии счета, открытие ордера, закрытие ордера, обновление ордера. Разрабатываемый советник включает в себя несколько компонент, а именно: компонент анализа и прогноза, компонент управления, компонент построения стратегии и компонент торговли, которые в дальнейшее используются при работе различных блоков советника. А управляющими стрелками являются: правила торговли Форекс, желаемая стратегия и метауправление на закрытие позиции. USED AT: AUTHOR: Евстратова PROJECT: Советник DATE: 22.05.2016 REV: 27.05.2016 NOTES: 1 2 3 4 5 6 7 8 9 10 Правила торговли Форекс WORKING DRAFT RECOMMENDED PUBLICATION Желаемая стратегия READER DATE CONTEXT: TOP Метауправление на закрытие позиций Котировки валютной пары Отчет о состоянии счета Открытие ордера Функциональная модель советника Состояние счета Закрытие ордера Данные по открытым ордерам Обновление ордера 0р. 0 Компонент анализа и прогноза NODE: TITLE: A-0 Компонент управления Компонент построения стратегии Функциональная модель советника Компонент торговли NUMBER: Рисунок 3.1 – Контекстная диаграмма 34
На рисунке 3.2 представлена декомпозиция диаграмма, показывающая детальную работу торгового советника, состоящую из трех этапов: проведение анализа котировок и осуществление анализа; выбор торговой стратегии и определение переменных; USED AT: торговля. AUTHOR: Евстратова DATE: 22.05.2016 REV: 02.06.2016 PROJECT: Советник NOTES: 1 2 3 4 5 6 7 8 9 10 Правила торговли Форекс Котировки валютной пары Проведение анализа котировок и осуществление прогноза 0р. 1 WORKING DRAFT RECOMMENDED PUBLICATION DATE CONTEXT: A-0 Желаемая стратегия Метауправление на закрытие позиций Прогноз котировок Выбор торговой стратегии и определение переменных Состояние счета READER 0р. Торговые переменные 2 Отчет о состоянии счета Открытие ордера Торговля Данные по открытым ордерам 0р. Компонент анализа и прогноза NODE: TITLE: A0 Компонент управления Компонент построения стратегии Функциональная модель советника Закрытие ордера 3 Обновление ордера Компонент торговли NUMBER: Рисунок 3.2 – Функциональная модель советника Процесс «Проведение анализа котировок и осуществление прогноза» также декомпозируется на 4 блока (см. рисунок 3.3): получение истории котировок; анализ колебаний; вычисление статистических коэффициентов; построение прогноза. 35
USED AT: AUTHOR: Евстратова PROJECT: Советник DATE: 22.05.2016 REV: 27.05.2016 WORKING DRAFT RECOMMENDED PUBLICATION NOTES: 1 2 3 4 5 6 7 8 9 10 READER DATE CONTEXT: A0 Правила торговли Форекс Котировки валютной пары 0р. Получение истории котировок 1 Анализ колебаний 0р. 2 Вычисление статистических коэффициентов 0р. 3 История котировок Статистические коэффициенты Построение прогнозов Результаты анализа 0р. Прогноз котировок 4 Компонент анализа и прогноза TITLE: Проведение NODE: анализа котировок и осу ществление прогноза NUMBER: Рисунок 3.3 – Декомпозиция «Проведение анализа котировок и A1 осуществление прогноза» Выбор торговой стратегии и определение переменных включает в себя (см. рисунок 3.4): определение торговой стратегии; применение теории игр; ситуационные колебания; определение торговых переменных. USED AT: AUTHOR: Евстратова PROJECT: Советник DATE: 22.05.2016 REV: 27.05.2016 NOTES: 1 2 3 4 5 6 7 8 9 10 WORKING DRAFT RECOMMENDED PUBLICATION READER Желаемая стратегия Определение торговой стратегии 0р. 1 Размер целевой прибыли 0р. Диапазон колебаний 2 Ситуационные колебания 0р. 3 Прогноз котировок Скорость изменения курса Состояние счета NODE: TITLE: A0 Правила торговли Форекс Применение теории игр Компонент управления DATE CONTEXT: Определение торговых переменных 0р. 4 Торговые переменные Компонент построения стратегии Выбор торговой стратегии и определение переменных NUMBER: Рисунок 3.4 A2 – Декомпозиция «Выбор торговой стратегии и определение переменные» 36
Далее представлен процесс определения торговых переменных (см. рисунок 3.5). USED AT: AUTHOR: Евстратова DATE: 22.05.2016 REV: 27.05.2016 PROJECT: Советник NOTES: 1 2 3 4 5 6 7 8 9 10 Диапазон колебаний Состояние счета Установление размера лота, Stop-loss, Take-profit 0р. 1 WORKING DRAFT RECOMMENDED PUBLICATION READER DATE CONTEXT: A2 Лот, профит Правила торговли Форекс Установление границ RSI Скорость изменения курса 0р. 2 Диапазон Торговые переменные Определение числа сделок 0р. 3 Компонент построения стратегии Определение торговых переменных Рисунок A24 3.5 – Декомпозиция «Определение торговых переменных» NODE: TITLE: NUMBER: В структуре советника были выделены 4 основных компонента, которые выполняют различные функции: компонент анализа и прогноза – анализируя архив котировок за предшествующий период робот осуществляет прогноз изменения курса валют; компонент управления – учитывая размер целевой прибыли, заданной пользователем, а также ожидаемое изменение курса валют и элементы нечеткой логики данный компонент определяет, какая из возможных торговых стратегий будет использоваться в дальнейшем; компонент построения стратегии – применяя полученный прогноз котировок и результаты решения типовых задач теории игр со средой, данный компонент будет задавать торговые переменные для выбранной ранее стратегии. Рассчитанные переменные передаются компоненту торговли и служат основным инструментов регулирования осуществления рыночных операций; 37
компонент торговли – осуществляет торговые операции на простейшем уровне по заранее определенным переменным. 3.2 Информационная модель системы Информационная модель – модель объекта, представленная в виде информации, описывающей существенные для данного рассмотрения параметры и переменные величины объекта, связи между ними, входы и выходы объекта и позволяющая путём подачи на модель информации об изменениях входных величин моделировать возможные состояния объекта. Основная методика построения информационных моделей – DFD. Целью методики DFD является построение модели рассматриваемой системы в виде диаграммы потоков данных, обеспечивающей правильное описание выходов (отклика системы в виде данных) при заданном воздействии на вход системы (подаче сигналов через внешние интерфейсы). Диаграммы потоков данных являются основным средством моделирования функциональных требований к проектируемой системе [29]. На рисунке 3.6 приведена декомпозиция диаграмма, на которой представлен процесс совершения торговли и потоки данных, показывающие входы и выходы системы. USED AT: AUTHOR: Евстратова PROJECT: Советник DATE: 22.05.2016 REV: 16.06.2016 WORKING DRAFT RECOMMENDED PUBLICATION NOTES: 1 2 3 4 5 6 7 8 9 10 Информация о состоянии 0р. счета История и текущие котировки 1 Получить историю котировок 1 DATE CONTEXT: A0 Суточная история История котировок 0р. 3 Вычисление статист. коэффициенты Недельная истрия 0р. READER Коэффициенты 0р. 2 Провести анализ колебаний 4 Построить прогноз Фаза колебаний Прогнозные значения котировок Торговые переменные 0р. 5 Определение стратегии Информация о целевой прибыли Скорость изменения 0р. 6 Использовать ситуационные колебания Торговые переменные 0р. 7 Определить торговые переменные 0р. Управление Открытие ордера Закрытие ордера ордерами Обновление ордера Данные по открытым ордерам Рисунок 3.6 – Декомпозиция «Торговля» TITLE: NUMBER: Торговля NODE: A3 38 Отчет о 8 состоянии счета
Наличие в диаграммах DFD элементов для обозначения источников, приемников и хранилищ данных позволяет более эффективно и наглядно описать процесс документооборота. 3.3 Определение функций торгового робота К основным функциям торговых роботов относится [30]: открытие позиции; установка ордера take profit; установка ордера stop loss. При наличии указанных функций советник может торговать самостоятельно, открывая и закрывая позиции. А также контролировать открытые позиция, обновляя их. Кроме того, функционал робота может включать в себя как функции, которые служат для повышения удобства работы пользователем (вывод информации о текущем состоянии работы программы, отсылки уведомлений пользователю о совершении операций по счету), так и функции, повышающие эффективность и прибыльность торговли (автоматическое определение размера лота, трейлинг и т.д.). Среди распространенных дополнительных функций, которые используются в советнике, можно привести следующие [31]: контроль над суммарной позицией; перенос stop loss на уровень безубыточности; трейлинг stop loss; закрытие позиций по обратным сигналам индикаторов; автоматическое определение размера лота; уведомление об открытии-закрытии позиций и т.д. 39
3.4 Инструменты МТ4 для создания и использования торговых роботов Платформа MetaTrader4 обладает развитыми возможностями для создания и использования автоматических торговых систем. На языке платформы MetaTrader программа, написанная на языке MQL4 и откомпилированная средствами MetaEditor, называется советником. Для создания, настройки, и использования в торговле советников MetaTrader4 обладает следующими модулями: модуль, содержащий средства по созданию торговых советников (роботов) – MetaEditor (Рисунок 3.7); модуль, содержащий средства для тестирования торговых советников – Тестер Стратегий (см. рисунок 3.8). Рисунок 3.7 – Включение MetaEditor MetaQuotes Language 4 (MQL4) – язык программирования торговых советников. Этот язык позволяет писать собственные программы-эксперты, автоматизирующие управление торговыми процессами. Кроме того, на MQL4 можно создавать собственные технические индикаторы, скрипты и библиотеки функций [32]. Язык программирования похож на С++, а в последних версиях платформы сходство усилилось после появления возможности объектно- 40
ориентированного программирования, что позволяет создавать достаточно сложные системы с возможностями адаптации и обучаемости. Тестер стратегий (см. рисунок 3.8) – это инструмент торговой платформы MetaTrader4, предназначенный для осуществления тестирования торговых советников, а также для настройки и оптимизации их параметров [32]. Этот модуль позволяет существенно ускорить работу при проверке работоспособности торговой системы. Тестер стратегий, используя исторические данные, позволяет посмотреть в течение нескольких минут результаты работы советника за несколько лет. Рисунок 3.8 – Тестер Стратегий Благодаря встроенным средствам MetaTrader 4 значительно упрощается разработка торгового советника, а также его применение на реальном и демосчете. 3.5 Разработка советника Редактор MetaEditor является составной частью клиентского терминала Metatrader 4, он предназначен для создания, редактирования и компиляции исходного текста программ, написанных на языке MQL4. С его помощью можно разрабатывать советники, индикаторы, скрипты и библиотеки 41
функций. В редактор MetaEditor встроен мастер создания советников, который помогает быстро создавать новые MQL-программы [33]. Для вызова редактора MetaEditor необходимо в окне терминала нажать соответствующую клавишу. Откроется окно вызываемого редактора (см. рисунок 3.9). Рисунок 3.9 – Окно редактора Далее запустим мастер создания советника (см. рисунок 3.10). Рисунок 3.10 – Окно мастера Мастер «создания Скрипта» (см. рисунок 3.11) предлагает задать bмя новому скрипту, для дальнейшего его сохранения и работы с ним. Введем в соответствующее поле EMA и нажмем кнопку «Готово». 42
Рисунок 3.11 – Общие параметры скрипта Следующим этапом создания советника является его написание (см. рисунок 3.12). Он является основным и требует знания языка MQL4. Рисунок 3.12 – Код советника 3.6 Подготовка к работе торгового советника Следующим этапом является подготовка к работе торгового советника. Можно встретить два формата, в которых представлен советник: в виде файла с расширением .ex4; 43
в виде файла с расширением .mq4. Готовый к запуску торговый советник – это файл с расширением .ex4. Он уже готов к работе, но не имеет возможности вносить в этот советник никаких изменений. Файл с расширением .mq4 – файл, содержащий исходный код торгового советника. Именно в этом формате сохраняется советник до его окончательного рабочего варианта [23]. Для того чтобы этот вариант советника можно было использовать в торговле, нужно откомпилировать файл mq4. Для того, чтобы использовать в терминале новый советник необходимо совершить следующие действия: 1) Файлы с расширением. ex4 и .mq4 разместить в папку Experts каталога данных MetaTrader4. По умолчанию это – Terminal\MQL4\Experts\. 2) Перезапустить платформу MT4. 3) Включить навигатор (см. рисунок 3.13). Рисунок 3.13 – Включение Навигатора 4) Убедиться, что в списке советников есть добавленный (см. рисунок 3.14). 44
Рисунок 3.14 – Окно Навигатора 5) Цветными значками в списке отмечены советники с доступным исходным кодом. Исходный код советника необходимо откомпилировать. 6) Для компиляции необходимо выделить такой советник, нажать Enter и в открывшемся окне MetaEditor произвести его компиляцию (см. рисунок 3.15). Рисунок 3.15 – Результат компиляции советника 3.7 Тестирование торгового советника Прежде чем запустить советник в работу на демонстрационном или реальном счете, необходимо убедиться в его работоспособности. Для этого используется тестер стратегий и исторические данные, закачанные в терминал (см. рисунок 3.16). 45
Рисунок 3.16 – Исторические данные После того, как в торговой платформе есть достаточное количество исторических данных, при помощи тестера стратегий необходимо запустить созданный советник в работу на этих исторических данных. Если в течение длительного периода времени советник будет показывать хороший результат, значит, есть большая вероятность, что он сможет показать такой же результат и в будущем. Тестирование торгового советника – процедура, позволяющая проверить его работоспособность с использованием исторических данных [34]. Тестирование может производиться с различной степенью точности, на различных таймфреймах, и охватывать заданный пользователем период времени. После открытия окна тестера стратегий, необходимо произвести следующие действия (см. рисунок 3.17): 1) необходимо выбрать нужный советник из списка; 2) выбрать инструмент; 3) установить таймфрейм на котором будет тестироваться советник; 4) определить метод тестирования. Далее необходимо настроить соответствующую кнопку. 46 свойства эксперта, нажав
Рисунок 3.17 – Окно тестера стратегий Перед началом тестирования и оптимизации советника рекомендуется установить значение параметров по умолчанию (см. рисунок 3.18). Для этого нажмем кнопку «Сброс». Рисунок 3.18 – Настройка параметров Далее указываем период для тестирования, устанавливая даты ОТ и ДО, выбираем модель оптимизации, включаем/выключаем режим визуализации (данная возможность поможет наглядно увидеть, каким образом работает торговый советник) и запускаем тестирование кнопкой «Старт» (см. рисунок 3.19). 47
Рисунок 3.19 – Запуск тестирования советника Результат тестирования можно оценить, используя появившиеся закладки: «Результаты», «График», «Отчет» и «Журнал» [35]. Закладка «Результаты» (см. рисунок 3.20) – это сделки, проведенные советником на исторических данных. Возможна сортировка по возрастанию/убыванию каждой из колонок. Рисунок 3.20 – Результаты Закладка «График» (см. рисунок 3.21) – изменение баланса счета при проведении сделок в графическом виде. Горизонтальная шкала – количество сделок. Вертикальная шкала – изменение баланса. 48
Рисунок 3.21 – График Закладка «Отчет» (см. рисунок 3.22) – это основная закладка, содержащая отчет о работе советника. На основании данных отчета, можно провести анализ результатов работы советника, принять решение о его работоспособности и обозначить возможные направления его оптимизации. Рисунок 3.22 – Отчет Закладка «Журнал» (см. рисунок 3.23) – служебная закладка, в которой можно оценить работу советника с точки зрения наличия/отсутствия ошибок, а также удобство и полноту записей лог-файла советника. Чем больше понятной информации будет в отчете работы, тем качественнее написан советник. Рисунок 3.23 – Журнал 49
3.8 Оптимизация параметров советника После тестирования советника целесообразно провести оптимизацию его параметров. Рынки достаточно сильно отличаются между собой, поэтому маловероятно, что советник будет одинаково хорошо работать на всех типах рынков. Поэтому необходимо изменить входные параметры так, чтобы он подходили именно тому рынку, где планируется использовать советник. Оптимизация торгового советника – процедура, позволяющая установить его параметры таким образом, чтобы с учетом волатильности рынка, характера движений рынка и особенностей торговли, заданных пользователем, советник выдавал максимальный положительный результат [36]. Оптимизация производится на исторических данных, поэтому не может давать 100% гарантии прибыльной работы советника в будущем. В режиме оптимизации советник многократно проходит по указанному временному промежутку, меняя внешние параметры по заданной схеме. Для подготовки процесса оптимизации в реестре стратегий (см. рисунок 3.23) отметим флажок «Оптимизация», выберем временной промежуток, на котором будет проводится оптимизация, определим модель проведения оптимизации и нажми кнопку «Свойства эксперта». Рисунок 3.23 – Окно Тестер Стратегий 50
В окне «Свойства эксперта» (см. рисунок 3.24) необходимо: выбрать свойства советника, которые будут оптимизироваться; выбрать диапазон значений каждого параметра; выбрать шаг изменения каждого параметра. Рисунок 3.24 – Свойства Эксперта Кроме того, необходимо выбрать величину и валюту начального депозита (см. рисунок 3.25), а при необходимости указать возможность открытия позиций советником только long или только short. Рисунок 3.25 – Свойства Эксперта. Параметры тестирования 51
Для запуска процесса оптимизации необходимо нажмем кнопку «Старт» в Тестере стратегий. После окончания процесса в Тестере стратегий станут доступны еще две закладки: «Результаты оптимизации» (рисунок 3.26) и «График оптимизации» (см. рисунок 3.27). Результаты оптимизации представляются в табличном виде. Рисунок 3.26 – Результаты оптимизации На основе полученных данных оптимизации выводится график, который служит для удобства представления имеющейся информации. Рисунок 3.27 – График оптимизации Ключевыми значениями в таблице являются «Прибыль» и «Просадка» [32]: Прибыль – чистая прибыль (валовая прибыль за вычетом валовых убытков). Просадка – максимальная просадка относительно начального депозита, в валюте депозита. Другие данные: 52
Просадка % – максимальная просадка относительно начального депозита, в процентах. Прибыльность – отношение общей прибыли к общему убытку в процентах. Оптимальным будет сочетание параметров, с балансом максимальной прибыли и минимальной просадки. После выбора параметров, можно установить их в советник двойным кликом или при помощи выпадающего меню. Можно использовать 2 основных метода оптимизации: простая оптимизация с использованием исторических данных; оптимизация советника со сдвигом выборки и последующей проверкой. Недостатком простой оптимизации может быть попадание в «ловушку» переоптимизации. При оптимизации можно выбрать максимальный результат, который будет являться не оптимизированными параметрами, а подгонкой под исторические данные. Во избежание этого целесообразно использовать оптимизацию советника со сдвигом выборки и последующей проверкой. Проведение оптимизации производится на периоде, смещенном от текущей даты [31]. 3.9 Проверка работоспособности разработанной торговой системы Подключение советника для осуществления торговли на демо-счете производится следующим образом: 1) Включаем инструмент и таймфрейм, для которого проводили оптимизацию советника. 2) В навигаторе находим нужный советник, после чего «перетягиваем» его на график. 3) В открывшемся окне выбираем закладку «Входные параметры» (см. рисунок 3.28) и устанавливаем необходимые значения параметров. 53
Рисунок 3.28 – Параметры советника. Входные параметры 4) В закладке «Общие» (см. рисунок 3.29) разрешаем советнику торговать, разрешаем использовать функции из внешних библиотек, при необходимости включаем опцию «Ручное подтверждение» и запрещаем проводить сделки Long или Short. Рисунок 3.29 – Параметры советника. Общие Необходимо также включить работу советников в платформе MetaTrader, нажав кнопку «Авто-торговля» (см. рисунок 3.30). Данная кнопка включает и отключает работу советников во всей системе. Рисунок 3.30 – Включение советников 54
Работоспособность советника определяется значком на экране MetaTrader (см. рисунок 3.31). Рисунок 3.31 – Работа советника В процессе торговли можно изменить параметры советника, удалить его, запретить ему торговать, запретить совершение операций на покупку или на продажу. Для этого необходимо кликнуть правой кнопкой мыши на значке советника и в выпадающем меню выбрать необходимый пункт. В процессе работы советника также можно отслеживать его текущее состояние в закладках терминала «Эксперты» и «Журнал» (см. рисунок 3.32). Рисунок 3.32 – Результаты работы. Журнал Кроме того, работу торгового советника можно отследить в лог-файле, расположенном в папке Terminal\MQL4\logs (см. рисунок 3.33). 55
Рисунок 3.33 – Результаты работы. Лог файл 3.10 Оценка экономической эффективности Экономическая эффективность – результативность экономической системы, выражающаяся в отношении полезных конечных результатов ее функционирования к затраченным ресурсам [37]. Эффективность – относительный показатель результативности и может быть только положительной величиной. Экономическая эффективность – результативность экономической системы, выражающаяся в отношении полезных конечных результатов ее функционирования к затраченным ресурсам [37]. Определение экономической эффективности проекта является главным при принятии решений о рациональности инвестирования в него средств. Наряду с этим, определение эффективности инвестирования в информационные технологии часто происходит на уровне интуиции или вообще не выполняется – это вызвано нежеланием поставщиков прикладных решений использовать большие усилия на подобный анализ. C другой стороны, возможно, есть большая доля недоверия заказчиков к получаемым результатам таких исследований. Следует отметить что, обе эти проблемы происходят из одного источника, а именно – отсутствия надежных и понятных методик оценки экономической эффективности информационнотехнологических проектов. 56
Для определения экономической эффективности необходимо осуществить калькуляция себестоимости. Она производится, согласно всем типовым методическим рекомендациям, утвержденным Миннауки от 15.06.1994 РФ №ОР-22-2-46 по планированию учета и калькуляции себестоимости научно-технической продукции. Единовременныe затраты на разработку – это совокупность затрат на теоретический анализ, постановку задачи, проектирование, разработку методов, алгоритмов и программ, отладку и тестирование , эксплуатацию [38]. В таблице 3.1 представлена фактическая трудоёмкость, распределённая по стадиям программного продукта. Таблица 3.1 – Фактическая трудоёмкость Стадия Содержание работ Трудоемкость, дни 1. Техническое Изучение литературы, анализ существующих 30 задание разработок и методов создания программного продукта, постановка вопросов и задач 2. Проектирование Проектирование разработки в целом. Изучение 30 входных и выходных данных. Обоснование выбора платформ проектируемой системы. 3. Разработка Разработка. Написание и отладка программ. 60 4. Внедрение Написание, оформление и защита дипломного 30 проекта. Итого 150 Общая трудoёмкость разработки ПО рассчитывается по формуле: n Т об Ti 150 , (3.1) i 1 Tоб – общая трудоемкость разработки, дни; Тi – трудоемкость (по стадиям разработки), дни; n – количество стадий. 57
Разработка программы включает следующие затраты: материальные затраты; основная и дополнительная заработная плата; отчисления на социальные нужды; стоимость машинного времени на разработку программы; затраты на инструментальные средства; накладные расходы. От себестоимости машинного часа работы ЭВМ, а так же времени работы на ЭВМ непосредственно зависит стоимость машинного времени (Зомв), а так же затраты на амортизацию оборудования, в том числе ЭВМ и на электроэнергию. Время использования оборудования рассчитывается по формуле: Tм = 0,35*Tэкс+0,6*Tтех пр+0,8*Tреб пр+0,6*Tвн (3.2) Для данной разработки время работы на ЭВМ (Tм ) составило 120 дней. Расход электроэнергии вычисляются по формуле: Зэл=Сэл*Мэвм*Тм*Тсут (3.3) Мэвм − мoщнoсть ЭВМ; Cэл− стоимость 1 кВт/ч электроэнергии, руб; Тсут − время рабoты ЭВМ часoв в сутки. Зэл = 1,7 руб * 0,24 кВт*120 дней*8 ч = 392 руб. Затраты на амортизацию ЭВМ и оборудования – это затраты на приобретение оборудования и его эксплуатацию. Ам Оф Н ам 365 100 t эвм , (3.4) 58
Ам – амортизационные отчисления, руб.; Hам – норма амортизации, %; Oф – начальная стоимость ЭВМ и оборудования, руб.; tэвм – время, в течении которого использовалось оборудования, дни. Первоначальная стоимость ЭВМ и оборудования равна 27000, тогда амортизационные отчисления составят: Aм 27000 20 46 681 руб. 365 100 В итоге стоимость машинного времени равна: Зомв = 150 + 681 = 831 руб. Стоимость инструментальных средств – это совокупность стоимости системного программного обеcпечения, иcпользoванного при разработке программы [37]. В таблице 3.2 приведено используемое для написания программы программное обеспечение, так же его стоимость. Таблица 3.2 – Программное обеспечение и его стоимость Программное обеспечение MetaTraider 4 MetaEditor Windows 7 HomeBasic Microsoft Office 2007 BPwin 4.0 Итого Стоимость, руб. 0 0 3000 12000 25000 40000 В итоге стоимость инструментальных средств: Aм 40000 20 120 2630 руб. 365 100 После завершения всех расчётов составлена таблица затрат на разработку, таблица 3.3. 59
Таблица 3.3 – Затраты на разработку № Наименование статей затрат 1 Затраты, потраченные на оплату машинного времени 2 Стоимость инструментальных средств Итого Сумма 831 2630 3461 Сегодня можно купить форекс-советник от 5000 рублей до 500000 рублей – цена зависит от сложности разработки и используемой торговой стратеги. Для реально работающего и приносящего стабильную прибыль робота – это дешево. Все что предлагают на рынке за 10, 20 или даже 50 долларов – не стоят даже времени на их установку, так как такие роботы просто «сольют» депозит. Встречаются даже бесплатные форекс-советники. В ходе работы было проведено исследование цен существующих торговых роботов (см. таблица 3.4), представленных в интернете. Данное исследование показало, что для покупки торгового советника необходимы большие денежные средства. Также для открытия счета необходимо внести первоначальный депозит. Таблица 3.4 – Стоимость торговых советников № 1 2 3 4 5 6 7 8 Название советника FSR BOT 6.0 Trend Scraper PRO Lime Fx Патриот Double Trader Oil Scalper Trend’a’Lot LimitON Стоимость 6000 руб. 11600 руб. 22500 руб. 10000 руб. 18850 руб. 12250 руб. 34300 руб. 29400 руб. Программное обеспечение, которое, было получено в результате этой разработки, будет реализовано по цене около 10000 руб. Итак, назначив оптовую цену в 8000 рублей и реализовав 10 экземпляров ПО, то получим такую валовую прибыль: 8000*10–3461=76539 руб. Налог на прибыль 24%, составит: 0,24*76539=18369,36 руб. 60
Ожидаемая рентабельность проекта: R 76539 18369,36 100% 16,8% 3461 Отпускная цена одного экземпляра составит, с учетом НДС, 18%: 8000*1,18=9440 руб. В этой главе рассчитана калькуляция себестоимости и обоснована целесообразность разработки c экономической точки зрения. Что касается сильной стороны разработки, наиболее важным ее достоинством является многофункциональность и многопользовательность, а так же очень невысокая стоимость (всего 3461 рублей, которая также является условной). Наиболее опасной угрозой являетcя неприятие персоналом новых функций (человеческий фактор) разработанной информационной cиcтемы, поскольку сотрудники привыкли вручную вести анализ, а теперь от них не требуется постоянного присутствия на рабочем месте, поскольку система сама осуществляет торговлю. В настоящее время имеются несущественные недочеты в реализации проекта, поскольку система использует только одну торговую стратегию, а для более точного совершения сделок необходимо иметь в наличии 3-4 стратегии одновременно. 3.11 Выводы по главе В последней главе была рассмотрена модель системы «КАК ДОЛЖНО БЫТЬ», на которой показаны все компоненты торгового советника и показано процесс совершения им сделки. На основе данных моделей был создана торговая система на основе применения скользящих средних. Созданный советник был протестирован на исторических данных, загруженных в систему. После чего произведена его оптимизация. В последнем пункте были произведены экономические расчеты на основании затрат, полученных в ходе разработки. С их помощью произведена оценка экономической эффективности данной разработки. 61
Заключение В ходе исследования были выявлены множественные преимущества робота перед человеком в вопросах торговли, а также подтверждено, что достаточно успешных и гибких торговых советников в настоящий момент не существует. Выбраны методы технического анализа, которые будут положены в основу советника. Произведено тестирование наиболее популярных роботов, ограниченность которое применения. подтвердило Выделены их убыточность компоненты, или формирующие структуру советника: компонент анализа и прогноза, построения стратегии, управления и торговли. Обозначены перспективные методы прогнозирования и принятия решений (нейросети, нечеткая логика, осуществление пересчета стратегии через обратную связь). Следующим этапом исследования является формализация математического аппарата советника, его программная реализация и тестирование. В ходе разработки были решены следующие задачи: 1) Проведена оценка способов снижения ошибок прогноза и числа убыточных сделок. 2) Определены функциональные и эксплуатационные требования к автоматизированной информационной системе. 3) Проведен анализ программного обеспечения, используемого для разработки торговых советников. 4) Проведен анализ существующих методов осуществления торговых операций на рынке валют, прогнозирования котировок валютной пары и построения торговой стратегии. 5) Выявлены характеристики существующих методов прогнозирования и оценки курса котировок и оценка возможностей их применения в автоматической торговле. 6) Произведен анализ имеющихся технологий торговли. 62
7) Определена структура создаваемой системы, выделены элементы, подсистемы и механизмы их взаимодействия. 8) Произведено тестирование торгового советника. Результатом выполнения выпускной квалификационной работы является разработка автоматизированной торговой системы на рынке Forex. Автоматизированная торговая система может быть использована с большой пользой, благодаря следующим ее качества: выполнение торговых операций с наименьшими потерями; высокая скорость обработки информации; возможность решения новых задач. В дальнейшем эта система может быть доработана и дополнена. Возможно использование нескольких стратегий внутри советника, благодаря чему повысится вероятность закрытия сделки с прибылью. 63
Список использованных источников 1) Таран, В. Forex Club: Win-win революция [Текст] / В. Таран. – Москва: Альпина Диджитал, 2014. – 150 с. 2) Ананченко, И. Для торговли на FOREX: разработка системы, индикатора, программы [Текст] / И. Ананченко, А. Мусаев, А. Сушко. – Москва: LAP Lambert Academic Publishing, 2014. – 148 с. 3) Ананченко, И. Математические и информационные технологии на рынке «Forex» [Текст] / И. Ананченко, А. Мусаев. – Москва: LAP Lambert Academic Publishing, 2013. – 180 с. 4) Морозов, И. Forex. От простого к сложному [Текст] / И. Морозов. – Москва: Альпина Паблишер, 2016. – 328 с. 5) Элдер, А. Основы биржевой торговли. Учебное пособие для участников торгов на мировых биржах [Текст] / А. Элдер. – Москва: Рассвет, 2007. – 167 с. 6) Вильямс, Л. Долгосрочные секреты краткосрочной торговли [Текст] / Л. Вильямс. – Москва: ИК Аналитика, 2001. – 312 с. 7) Найман, Э. Л. Малая Энциклопедия Трейдера [Текст] / Э. Л. Найман. – Москва: ВИРА-Р Альфа Капитал, 1999. – 236 с. 8) Играть на бирже просто?! / НП Форекс Клуб. – Москва: Форекс Клуб, 2003. – 240 с. 9) Бенсигнор, Р. Новое мышление в техническом анализе [Текст] / Р. Бенсигнор. – Москва: Интернет-трейдинг, 2002. – 304 с. 10) Акелис Стивен, Б. Технический анализ от А до Я [Текст] / Стивен Б. Акелис. – Москва: Диаграмма, 1999. – 242 с. 11) Эрлих, А. А. Технический анализ товарных и финансовых рынков [Текст] – прикладное пособие / А. А. Эрлих. – Москва: ИНФРА-М, 1996. – 176 с. 12) Соколов, А. Рынок Forex. Руководство пользователя [Текст] / А. Соколов. – Москва: SmartBook, 2016. – 336 с. 64
13) Emman, A. Optimal artificial neural network topology for foreign exchange forecasting / ACM Southeast Regional Conference, Proceedings of the 46th Annual Southeast Regional Conference on XX, pp. 63-68, ACM New York, NY, USA (2008) 14) Lin, L., Cao, L., Zhang, C. The fish-eye visualization of foreign currency exchange data streams. / ACM International Conference Proceeding Series; Vol. 109 proceedings of the 2005 Asia-Pacific symposium on Information visualisation – Volume 45, pp. 91-96, Australian Computer Society, Inc. Darlinghurst, Australia, Australia, (2005) 15) Slany, K. Towards the Automatic Evolutionary Prediction of the Forex Market Behaviour / IEEE International Conference on Adaptive and Intelligent Systems, pp. 141-145, IEEE Computer Society, Los Alamitos, CA, USA (2009) 16) Wedding, D. K., Cios, K. J. Time series forecasting by combining RBF networks, certainty factors, and the Box-Jenkins model / Neuro computing, pp. 149-168, (1996) 17) Kablan, A. Adaptive Neuro Fuzzy Inference Systems for High Frequency Financial Trading and Forecasting / Third International Conference on Advanced Engineering Computing and Applications in Sciences, pp. 105-110, , IEEE Computer Society, Los Alamitos, CA, USA (2009). 18) Subramanian, H., Ramamoorthy, S., Stone, P., Benjamin, J. K. Designing safe, profitable automated stock trading agents using evolutionary algorithms / Proceedings of the 8th annual conference on Genetic and evolutionary computation, pp. 1777-1784, ACM New York, NY, USA (2008) 19) David A. Oyemade, Godspower O. Ekuobase, Fidelis O. Chete Fuzzy Logic Expert Advisor Topology for Foreign Exchange / Proceedings of the International Conference on Software Engineering and Intelligent Systems 2010 (SEIS 2010), July 5th-9th, Ota, Nigeria, Vol 1, p. 215-228 65
20) Элдер, А. Трейдинг с доктором Элдером. Энциклопедия биржевой игры [Текст] / А. Элдер. – Москва: Альпина Паблишер, 2016. – 496 с. 21) Остервальдер, А. Построение бизнес-моделей. Настольная книга стратега и новатора [Текст] / А. Остервальдер, И. Пинье. – Москва: Альпина Паблишер, 2015. – 288 с. 22) Эдвин, Л. Воспоминания биржевого спекулянта [Текст] / Л. Эдвин. – Москва: Олимп-Бизнес, 2010. – 416 с. 23) Валериюс, О. 101 вопрос про FOREX [Текст] / О. Валериюс. – Москва: Admiral Markets, 2009. – 248 с. 24) Кетти, Л. Дейтрейдинг на рынке Forex. Стратегии извлечения прибыли [Текст] / Л. Кетти. – Москва: Альпина Паблишер, 2015. – 237 с. 25) Бороден, К. Трейдинг по уровням Фибоначчи [Текст] / К. Бороден. – Москва: Лори, 2014. – 274 с. 26) Струмпэ, Н. Аппаратное обеспечение ЭВМ. Практикум. Учебное пособие [Текст] / Н. Струмпэ, В. Сидоров. – Москва: Academia, 2014. –160 с. 27) Попов, В. Основы информационных и телекоммуникационных технологий. Программно-аппаратное обеспечение [Текст] / В. Попов. – Москва: Финансы и статистика, 2005. – 144 с. 28) Кондаков, К. MetaTrader 4. Учимся зарабатывать на FOREX [Текст] / К. Кондаков, О. Бондарь. – Москва: Бослен, 2012. – 152 с. 29) Маклаков, С. Моделирование бизнес-процессов с AIIFusion Process Modeler [Текст] / С. Маклаков. – Москва: Диалог-МИФИ, 2004. – 240 с. 30) Оуэн Кац, Д. Энциклопедия торговых стратегий [Текст] / Д. Оуен Кац, Л. Донна. – Москва: Альпина Паблишер, 2015. – 394 с. 31) Чеботарев, Ю. Торговые роботы на российском фондовом рынке [Текст] / Ю. Чеботарев. – Москва: SmartBook, 2011. – 160 с. 66
32) Кузьмин, А. Торговый робот своими руками: Основы программирования MQL4 [Текст] / А. Кузьмин. – Москва: Альпина Паблишер, 2013. – 328 с. 33) Майнер, Р. Торговые стратегии с высокой вероятностью успеха. Тактики входа и выхода на рынках акций, фьючерсов и валют [Текст] / Р. Майнер. – Москва: Альпина Паблишер, 2012. – 330 с. 34) Швагер, Д. Технический анализ. Полный курс [Текст] / Д. Швагер. – Москва: Альпина Паблишер, 2015. – 802 с. 35) Блажко, А. FOREX. Теория, психология, практика [Текст] / А. Блажко. – Москва: Альпина Диджитал, 2013. – 216 с. 36) Закарян, И. Практический интернет-трейдинг. Как работать на рынках акций, фьючерсов, опционов и Forex [Текст] / И. Закарян. – Москва: И-Трейд, 2008. – 384 с. 37) Скрипкин, К. Г. Экономическая эффективность информационных систем [Текст] / К. Г. Скрипкин. – Москва: Книга по Требованию, 2002. – 250 с. 38) Вечканов, Г. Экономическая теория [Текст] / Г. Вечканов, Г. Вечканова. – Москва: Эксмо, 2007. – 448 с. 39) О рынке ценных бумаг [Текст]: федеральный закон от 22 апр. 1996 г. № 39-ФЗ // Собрание законодательства. – 1996. – Ст. 1918. 40) О сроках и порядке составления и представления отчетности профессиональных участников рынка ценных бумаг в Центральный банк Российской Федерации [Текст]: указание Банка России от 15 янв. 2015 г. № 3533-У // Вестник Банка России. – 2015. – Ст. 25. 41) О внесении изменений в отдельные законодательные акты Российской Федерации [Текст]: федеральный закон от 29 дек. 2014 г. № 460ФЗ // Собрание законодательства. – 2015. – Ст. 13. 42) Часть вторая налогового кодекса Российской Федерации [Текст]: федеральный закон от 5 авг. 2000 г. № 117-ФЗ // Собрание законодательства. – 2000. – Ст. 3340. 67
43) ГОСТ 7.32-2001 СИБСД. Отчет о научно исследовательской работе. – Москва: Стандартинформ, 2006. – 15 с. 44) ГОСТ 2.105-95 ЕСКД. Общие требования к текстовым документам. – Москва: Стандартинформ, 2011. – 18 с. 45) ГОСТ 7.9 – 77. Реферат и аннотация. – Москва: Изд-во стандартов, 1981. – 6 с. 46) Официальный сайт RoboForex: [Электронный ресурс]. – М., 2009- 2016. - Режим доступа: http://www.roboforex.ru 47) Официальный сайт Alpari: [Электронный ресурс]. – М., 1998- 2016. - Режим доступа: http://www.alpari.ru 48) Официальный сайт ForexClub: [Электронный ресурс]. – М., 1997- 2016. - Режим доступа: https://www.fxclub.org 49) Официальный сайт AdmiralMarkets: [Электронный ресурс]. – М., 2005-2016. - Режим доступа: http://www.admiralmarkets.com/ru/about-us/whyus/ 50) Официальный сайт TeleTrade: [Электронный ресурс]. – М., 1994- 2016. - Режим доступа: http://www.teletrade.ru 68
Приложение //+------------------------------------------------------------------+ //| EMA.mq4 | //| Copyright © 2016, Евстратова Надежда | //+------------------------------------------------------------------+ extern int period_EMA = 28, period_WMA =8, period_RSI = 14, stoploss = 0, takeprofit = 500, risk = 10, Magic = 777; extern bool CloseCounter = false; extern double Lot = 0.1; extern int TrailingStop = 70; //если= 0, то трейлинг по фракталам или свечам extern int Tip.Fr.or.Candl = 1; //если= 0, то трейлинг по фракталам //если= 1, то трейлинг по свечам //-------------------------------------------------------------------double SL,TP,LOT; int TimeBar; //-------------------------------------------------------------------int start() { if (TimeBar==Time[0]) return(0); double EMA0 = iMA(NULL,0,period_EMA,0,MODE_EMA, PRICE_OPEN,0); double WMA0 = iMA(NULL,0,period_WMA,0,MODE_LWMA,PRICE_OPEN,0); double EMA1 = iMA(NULL,0,period_EMA,0,MODE_EMA, PRICE_OPEN,1); double WMA1 = iMA(NULL,0,period_WMA,0,MODE_LWMA,PRICE_OPEN,1); double RSI = iRSI(NULL,0,period_RSI,PRICE_OPEN,0); if (EMA0 < WMA0 && EMA1 > WMA1 && RSI > 50) { TimeBar=Time[0]; if (takeprofit!=0) TP = Ask + takeprofit*Point; if (stoploss!=0) SL = Ask - stoploss* Point; LOT = LOT(risk,1); if (CloseCounter) CLOSEORDER("Sell"); OPENORDER ("Buy"); } if (EMA0 > WMA0 && EMA1 < WMA1 && RSI < 50) { 69
TimeBar=Time[0]; if (takeprofit!=0) TP = Bid - takeprofit*Point; if (stoploss!=0) SL = Bid + stoploss* Point; LOT = LOT(risk,1); if (CloseCounter) CLOSEORDER("Buy"); OPENORDER ("Sell"); } TrailingStop(); return(0); } //-------------------------------------------------------------------void CLOSEORDER(string ord) { for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderSymbol()!=Symbol()||Magic!=OrderMagicNumber()) continue; if (OrderType()==OP_BUY && ord=="Buy") OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); if (OrderType()==OP_SELL && ord=="Sell") OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); } } } //-------------------------------------------------------------------void OPENORDER(string ord) { int error; if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, LOT,Ask,2,SL,TP,"EMA WMA RSI",Magic,3); if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,LOT,Bid,2,SL,TP,"EMA WMA RSI",Magic,3); if (error==-1) ShowERROR(error,0,0); return; } //-------------------------------------------------------------------void ShowERROR(int Ticket,double SL,double TP) { int err=GetLastError(); switch ( err ) { case 1: return; 70
case 2: Alert("Нет связи с торговым сервером " ,Ticket," ",Symbol());return; case 130: Alert("Error близкие стопы Ticket ", Ticket," ",Symbol());return; case 134: Alert("Недостаточно денег ", Ticket," ",Symbol());return; case 146: Alert("Error Подсистема торговли занята ", Ticket," ",Symbol());return; case 129: Alert("Error Неправильная цена ", Ticket," ",Symbol());return; case 131: Alert("Error Неправильный объем ", Ticket," ",Symbol());return; default: Alert("Error " ,err," Ticket ", Ticket," ",Symbol());return; } } //-------------------------------------------------------------------double LOT(int risk,int ord) { if (Lot!=0) return(Lot); double MINLOT = MarketInfo(Symbol(),MODE_MINLOT); LOT = AccountFreeMargin()*risk/100/MarketInfo(Symbol(),MODE_MARGINREQUIR ED)/ord; if (LOT>MarketInfo(Symbol(),MODE_MAXLOT)) LOT = MarketInfo(Symbol(),MODE_MAXLOT); if (LOT<MINLOT) LOT = MINLOT; if (MINLOT<0.1) LOT = NormalizeDouble(LOT,2); else LOT = NormalizeDouble(LOT,1); return(LOT); } //-------------------------------------------------------------------void TrailingStop() { int tip,Ticket; bool error; double StLo,OSL,OOP; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS)==true) { tip = OrderType(); if (tip<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { OSL = OrderStopLoss(); 71
OOP = OrderOpenPrice(); Ticket = OrderTicket(); if (tip==OP_BUY) { StLo = SlLastBar(1,Bid,Tip.Fr.or.Candl,TrailingStop); if (StLo <= OOP) continue; if (StLo > OSL) { error=OrderModify(Ticket,OOP,NormalizeDouble(StLo,Digits), OrderTakeProfit(),0,White); Comment("TrailingStop ",Ticket," ",TimeToStr(TimeCurrent(),TIME_MINUTES)); Sleep(500); if (!error) Comment("Error order ",Ticket," TrailingStop ", GetLastError()," ",Symbol()," SL ",StLo); } } if (tip==OP_SELL) { StLo = SlLastBar(-1,Ask,Tip.Fr.or.Candl,TrailingStop); if (StLo==0) continue; if (StLo >= OOP) continue; if (StLo < OSL || OSL==0 ) { error=OrderModify(Ticket,OOP,NormalizeDouble(StLo,Digits), OrderTakeProfit(),0,White); Comment("TrailingStop "+Ticket," ",TimeToStr(TimeCurrent(),TIME_MINUTES)); Sleep(500); if (!error) Comment("Error order ",Ticket," TrailingStop ", GetLastError()," ",Symbol()," SL ",StLo); } } } } } } //-------------------------------------------------------------------double SlLastBar(int tip,double price, int tipFr, int tral) { double fr; int jj,ii,delta=5; if (tral!=0) { if (tip==1) fr = Bid - tral*Point; else fr = Ask + tral*Point; 72
} else { if (tipFr==0) { if (tip== 1) for (ii=1; ii<100; ii++) { fr = iFractals(NULL,0,MODE_LOWER,ii); if (fr!=0) if (price-delta*Point > fr) break; else fr=0; } if (tip==-1) for (jj=1; jj<100; jj++) { fr = iFractals(NULL,0,MODE_UPPER,jj); if (fr!=0) if (price+delta*Point < fr) break; else fr=0; } } else { if (tip== 1) for (ii=1; ii<100; ii++) { fr = iLow(NULL,0,ii); if (fr!=0) if (price-delta*Point > fr) break; else fr=0; } if (tip==-1) for (jj=1; jj<100; jj++) { fr = iHigh(NULL,0,jj); if (price+delta*Point < fr) break; else fr=0; } } } /* if (tip== 1) { ObjectDelete("SL Buy"); ObjectDelete("SL-"); ObjectCreate("SL Buy",OBJ_ARROW,0,TIME,fr,0,0,0,0); ObjectSet ("SL Buy",OBJPROP_ARROWCODE,6); 73
ObjectSet ("SL Buy",OBJPROP_COLOR, Blue); ObjectCreate("SL-",OBJ_ARROW,0,TIME,price-delta*POINT,0,0,0,0); ObjectSet ("SL-",OBJPROP_ARROWCODE,4); ObjectSet ("SL-",OBJPROP_COLOR, Blue); } if (tip==-1) { ObjectDelete("SL Sell"); ObjectDelete("SL+"); ObjectCreate("SL Sell",OBJ_ARROW,0,TIME,fr,0,0,0,0); ObjectSet ("SL Sell",OBJPROP_ARROWCODE,6); ObjectSet ("SL Sell", OBJPROP_COLOR, Green); ObjectCreate("SL+",OBJ_ARROW,0,TIME,price+delta*POINT,0,0,0,0); ObjectSet ("SL+",OBJPROP_ARROWCODE,4); ObjectSet ("SL+",OBJPROP_COLOR, Green); }*/ return(fr); } //-------------------------------------------------------------------- 74
Я подтверждаю, что ВКР написана мною лично, в соответствии с правилами академической этики и не нарушает авторских прав иных лиц. Все заимствования из печатных соответствующие ссылки. и электронных источников имеют
Отзывы:
Авторизуйтесь, чтобы оставить отзыв