вкр_ященко (1204297), страница 5
Текст из файла (страница 5)
3.3 Структура программы-советника
Советник – это программа, которая ведет торговую деятельность по заданному алгоритму. Советник позволяет реализовать торговую систему для автоматической торговли, то есть, торговли без участия человека. Советник может совершать сделки, открывать и закрывать позиции, управлять отложенными ордерами.
Программа-советник состоит из пяти компонентов:
-
Cвойства советника. В этой части кода также можно задать дополнительные параметры, например «description» (текст с кратким описанием советника), определить константы, включить дополнительные файлы или импортируемые функции.
Рисунок 3.6 – Свойства советника
-
Входные параметры. Здесь задаются входные параметры, которые будут использоваться в советнике как переменные, они могут быть использованы во всех функциях нашего советника.Переменные, определенные на этом уровне, называются глобальными переменными, поскольку они доступны из любой функции советника. Входные параметры могут быть изменены только вне кода советника при запуске. Также мы можем определить другие переменные, которые будем использовать в нашем советнике, они не будут доступны для модификации извне.
-
Функция инициализации советника. Это функция вызывается первой после запуска советника или смены графика и вызывается только один раз. Этот раздел – лучшее место для проведения проверок, чтобы убедиться в правильности работы советника. Например, можно проверить, достаточно ли баров на графике для работы советника и т.п.
-
Функция деинициализации советника. Эта функция вызывается при прекращении работы советника или удалении советника с графика, здесь освобождается хэндлы индикаторов, созданные в процессе инициализации.
-
Основная функция советника. Основная задача данной функции – это выполняться циклично с приходом каждого тика. Здесь расположена основная часть программы, алгоритм покупки и продажи котировок.
3.4 Использование программы для торговли
В ходе написания программы-робота, торгующей на бирже, был использован принцип проектирования нейронных сетей, поэтому, прежде чем использовать данную программу для торговли, необходимо её обучить. Платформа MetaTrader 5 позволяет обучить нейронную сеть с помощью инструмента «Тестер стратегий».
Рисунок 3.7 – Тестер стратегий
В данном разделе можно вариативно выбрать параметры обучения, исходя из нужд программы. Кроме этого присутствует функция оптимизации.
Рисунок 3.8 – Входные параметры нейронной сети в тестере стратегий
Для корректной работы программы на определенной торговой паре, необходимо провести оптимизацию на соответствующей торговой паре на определенном временном отрезке.
3.5 Технико-экономическое обоснование ВКР
Для выполнения технической части ВКР был задействован один персональный компьютер Lenovo H50-50, Intel Core i5-4460, 3.2GHz, 6GbRAM, NVIDIA GeForce GTX745 с программным обеспечением MetaTrader и прикладным к нему MetaEditor, а также один смартфон с установленным программным обеспечением (мобильным приложением) MetaTrader. Смартфон необходим для отслеживания деятельности программы удаленным образом.
Важной частью деятельности программы с использованием нейронных сетей, является ее обучение. Для этого, как уже было указано в п. 3.4, была использована функция «Тестер стратегий». Важно отметить, что для каждой валютной пары тестер должен производиться на соответствующей валютной паре и на выбранном периоде. Операция оптимизации для каждой из четырех валютных пар заняла около шести часов.
После разработки программы робота для торговли было произведено тестовое введение этой программы на реальный рынок торговли в программе MetaTrader в демо-режиме. Демо-режим представляет собой торговлю реальными ценами, отличие лишь в том, что вся валюта является виртуальной. Программа была введена на четыре графика торговли валютами:
-
американский доллар – швейцарский франк;
-
американский доллар – польский злотый;
-
американский доллар – австралийский доллар;
-
американский доллар – японская йена.
Рисунок 3.9 – Список операций, проведенных программой
Кроме этого, для корректной работы программы необходимо круглосуточное функционирование программы и, соответственно круглосуточная работа персонального компьютера пять дней в неделю. Для начального капитала была выбрана цифра в $10000, плечо 1:100 и размер риска в 1%. Такие параметры минимализируют потери, но и прибыль имеет не очень большой размер, хоть ее величина и стабильна.
Рисунок 3.10 – Пример торговли программой на примере пары USDCHF
Рисунок 3.11 – График чистой прибыли работы программы
За 9 дней тестирования была получена прибыль в $16.79.Стоит отметить, что, несмотря на небольшие цифры чистой прибыли, она стабильна и не имеет «провалов» в своем графике. Из этого следует, что при увеличении плеча либо шансов риска, прибыль будет пропорционально увеличиваться, но, при этом, вероятность риска тоже увеличится.
Заключение
Нейронные сети – это класс мощных алгоритмов машинного обучения. В их основе лежат статистические методы анализа. Вот уже много лет их с успехом применяют к разработке стратегий трейдинга и финансовых моделей. Несмотря на это, у нейронных сетей не очень хорошая репутация, основанная на неудачах практического применения. В большинстве случаев причины неудач лежат в неадекватных конструкторских решениях и общем непонимании того, как они работают.
Как и предполагалось, нейронные сети дали хороший результат. Во многом это обусловлено сложностью и нелинейностью структуры данного ряда, тогда как классические методы рассчитаны на применение к рядам с более заметными и очевидными структурными закономерностями. Но даже, несмотря на все видимые положительные качества нейронных сетей не стоит считать их некоей «панацеей». Во-первых, нейронные сети являются «черным ящиком», который не позволяет в явном виде определить вид зависимостей между членами ряда. Таким образом, конкретную нейронную сеть можно «научить» строить прогноз лишь на строго фиксированное количество шагов вперед (которое мы указываем в спецификации этой сети), следовательно, имеет место сильная зависимость от вида задачи. Во-вторых, при наличии явной линейности, простоты структуры в задаче, способность нейронных сетей к обобщению оказывается более слабой по отношению к классическим методам. Объясняется это как раз нелинейностью сетей по своей сути.
В общем случае для достижения наилучшего результата необходимо использовать нейронные сети вкупе с грамотной стратегией управления капиталом.
Прогнозирование на НС обладает рядом недостатков. Вообще говоря, нам необходимо как минимум 50 и лучше 100 наблюдений для создания приемлемой модели. Это достаточно большое число данных и существует много случаев, когда такое количество исторических данных недоступно. Например, при производстве сезонного товара, истории предыдущих сезонов недостаточно для прогноза на текущий сезон, из-за изменения стиля продукта, политики продаж и т.д.
Даже при прогнозировании требования на достаточно стабильный продукт на основе информации о ежемесячных продажах, возможно мы не сможем накопить историю за период от 50 до 100 месяцев. Для сезонных процессов проблема еще более сложна. Каждый сезон истории фактически представляет собой одно наблюдение. То есть, в ежемесячных наблюдениях за пять лет будет только пять наблюдений за январь, пять наблюдений за февраль и т.д. Может потребоваться информация за большее число сезонов для того, чтобы построить сезонную модель. Однако необходимо отметить, что может быть построена удовлетворительная модель на НС даже в условиях нехватки данных. Модель может уточняться по мере того, как свежие данные становится доступными.
Другим недостатком нейронных моделей – значительные затраты по времени и другим ресурсам для построения удовлетворительной модели. Эта проблема не очень важна, если исследуется небольшое число временных последовательностей. Тем не менее, обычно прогнозирующая система в области управления производством может включать от нескольких сотен до нескольких тысяч временных последовательностей.
Однако, несмотря на перечисленные недостатки, модель обладает рядом достоинств. Существует удобный способ модифицировать модель по мере того как появляются новые наблюдения. Модель хорошо работает с временными последовательностями, в которых мал интервал наблюдений, т.е. может быть получена относительно длительная временная последовательность. По этой причине модель может быть использована в областях, где интересуют ежечасовые, ежедневные или еженедельные наблюдения. Эти модели также используются в ситуациях, когда необходимо анализировать небольшое число временных последовательностей.
Список использованных источников
1 Бахвалов Н.С., Жидков Н.П., Кобельников Г.М. Численные методы – 4-е изд. – М:. БИНОМ. Лаборатория знаний, 2006. – 636 с.: ил.
2 Безрученко Б.П., Смирнов Д.А. Статистическое моделирование по временным рядам [Электронный ресурс] Cарат. отд-ние Ин-та радиотехники и электроники РАН. – Электрон.дан. – Саратов, 2000. – Режим доступа: http://window.edu.ru/window\_ catalog/files/r29971/sgu025.pdf, свободный. - Загл. с экрана.
3 Бокс Дж., Дженкинс Г. Анализ временных рядов. Прогноз и управление: М. Мир, 1974.
4 Бриллинждер Д. Временные ряды. – М.: Мир. 1980-536 с.
6 Козадаев А.С., Арзамасцев А.А. Прогнозирование временных рядов с помощью аппарата искусственных нейронных сетей. Краткосрочный прогноз температуры воздуха // Вестн. Тамб. ун-та. Сер. Естеств. и техн. науки. – Тамбов, 2006. – Т. 11. – Вып. 3. – С. 299-304.
7 Козадаев А.С. Предварительная оценка качества обучающей выборки для искусственных нейронных сетей в задачах прогнозирования временных рядов // Вестн. Тамб. ун-та. Сер. Естеств. и техн. науки. – 2008. – Т. 13, вып. 1. – С. 99-100.
8 Крючин О.В. Разработка параллельных градиентных алгоритмов обучения искусственной нейронной сети // Электронный журнал «Исследовано в России», 096, Электронный научный журнал «ИССЛЕДОВАНО В РОССИИ» 362 http://zhurnal.ape.relarn.ru/articles/2010/030.pdf стр. 1208-1221, 2009 г. // Режим доступа: http://zhurnal.ape.relarn.ru/articles/2009/096.pdf , свободный. – Загл. с экрана.
9 Метод скользящего окна // Глоссарий – BaseGroupLabs [Электронный ресурс]. – Электрон.дан. – Режим доступа: http://www.basegroup.ru/glossary/definitions/windowing/, свободный. – Загл. с экрана.
10 Новиков Л.В. Основы вейвлет-анализа сигналов: учеб. пособие // СПб.: Модус+, 1999. – 152 с.: ил.
11 Осовский С. Нейронные сети для обработки информации; пер. с пол. И.Д. Рудинского. – М.: Финансы и статистика, 2002. – 344 с.: ил.
12 Спиди К., Браун Р., Гудвин Дж. Теория управления. – М.: Мир, 1973. – 248 с.
13 Тюменцев Ю.В Интеллектуальные автономные системы – вызов информационным технологиям.– Московский авиационный институт им. С.Орджоникидзе.
14 Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика / Перевод на русский язык, Ю. А. Зуев, В. А. Точенов, 1992.
15 Fahlman S.E.An empirical study of learning speed in back-propagation networks. // Technical report. CMU-CS-88-162.Carnegie-Mellon University. 1988.
16 Veith A.C., Holmes G.A., A modified quickprop algorithm // Neural Computation, 1991. - Vol.3 - Pp. 310-311.
17 Реферат: "Нейронные сети и эволюционное моделирование"//[Электронный ресурс]. – Электрон.дан. – Режим доступа: http://bibliofond.ru/view.aspx?id=785944
18 Нейронныесети - PlantsandPeople (1/3) //[Электронный ресурс]. – Электрон.дан. – Режим доступа: https://sites.google.com/site/psiherbs/nejronnye-seti/#1.
19 Чертков М., Грималюк А. Методика валютного прогнозирования.// Одесскиеделовыеновости 1995 - май N 16 - с. 4.
20 Aarts E. H. L., Korst J. H. M. Boltzmann machines and their applications//Lect. Notes Comput. Sci. 1987. V. 258. P. 34-50.
21 Aarts E. H. L., Korst J. H. M. Boltzmann machines for travelling salesman problem//European J. Oper. Res. 1989. V. 39. P. 79-95.
22 Abu-Mostafa Y. S., Jaques J. N. St. Information capacity of the Hopfield model//IEEE Trans. Inform. Theory. 1985. V. 31. P.461.















