Прогнозирование котировок финансовых инструментов с помощью нейронных сетей и машинного обучения

Анализ существующих решений в прогнозировании котировок. Программные комплексы для автоматической торговли на основе нейронных сетей. Составление плана проектирования программного комплекса. Разработка резюме проектирования остальных обработчиков.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 30.08.2016
Размер файла 400,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Введение

прогнозирование котировка нейронный программный

Ещё с момента появления первого компьютера людей не оставляла мысль сотворить искусственный интеллект: программу-робота, разумно мыслящего, подобно человеку.

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

1. Анализ существующих решений в прогнозировании котировок

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

2. Фундаментальный анализ

Данная отрасль анализа финансовых инструментов очень распространена среди профессиональных трейдеров. Игроки, использующие фундаментальный анализ, считают, что цена зависит от множества факторов: от различных политических, экономических событий, политики государств, ситуации на рынке. Если рассматривать такой инструмент как акции, то стоит заметить, что политика компании, публично выпускающей свои акции, общее мнение о ней, различные действия, порой, влияют на цену моментально. Если задумываться, какие образом использовать фундаментальный анализ в программном комплексе, то сразу же вспоминается компания Hyde Park Global Investments LLC: за больше, чем 10 лет работы, они смогли создать полноценный искусственный интеллект, прогнозирующий цены финансовых инструментов: их система использует сложные алгоритмические уравнения для определения тренда на рынке, специальный модуль их программного комплекса распознает содержимое новостей в интернете. Последний модуль есть их интерпретация фундаментального анализа. Они до сих пор приглашают только научных сотрудников и программистов и отказывают профессиональным трейдерам. Это компания, занимающаяся научной деятельностью, которая смогла создать полноценный комплекс для прогнозирования!

3. Технический анализ

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

Рис. 1. Изменение котировки валютной вары EURUSD

Свечной график позволяет использовать одновременно данные открытых сделок на данный момент, а также данные первой и последней закрытой цен (Рис. 2).

Рис. 2. Свечной график для валютной пары EURUSD

Также трейдеры используют информацию об объеме завершенных сделок на данный момент.

3. Роботы-советники

Данный тип роботов широко распространен среди трейдеров на данный момент. Основной задачей роботов-советников является технический анализ определённых инструментов с целью собственного прогнозирования. Как правило, анализ внутри робота ведется постоянно с момента его запуска трейдером. Как только робот «предполагает», что сейчас - благоприятное время для проведения какой-либо сделки, он предлагает её трейдеру. Последний, в свою очередь, принимает решение самостоятельно, обычно, проводя собственный технический анализ и сверяя свои результаты с результатами робота-советника.

4. Роботы-игроки

В настоящее время типов роботов-игроков стало заметно больше в сравнении с пятью годами ранее. Образовались две основные группы таких роботов:

1) Роботы с техническим анализом;

2) Роботы с алгоритмической составляющей.

В роботов из первой группы закладывают серьёзную математику для вычисления восходящих и нисходящих трендов, состояния «коридора» для инструмента. Функции для вычисления технических индикаторов также используются в таких роботах. От советников же они отличаются тем, что пользователю такого робота не нужно сидеть и контролировать программу, она самостоятельно выставляет ордера для инструментов. Как правило, в роботах-игроках также используется стоп-модуль для страховки рисков на случай, если робот неправильно распознает сигналы на рынке и начнет продавать всё, когда нужно покупать или наоборот. Достаточно много случаев зарегистрировано с ранними версиями роботов, не имеющих стоп-модули: трейдеры могли потерять все акции, фьючерсы за несколько часов, пока робот не продаст всё, что есть.

Роботы с алгоритмической составляющей гораздо проще по своей структуре, нежели роботы из первой группы. Как правило, это высокочастотные роботы, способные совершить несколько тысяч сделок за минуту. Такие роботы покупают и сразу же продают, как только цена инструмента изменилась даже 1 пипс. Работа среднечастотных (роботы, способные сделать несколько десятков сделок за минуту) не так сложна: если простой анализ параметров инструмента «предсказывает», что цена будет выше - робот покупает, или если цена будет ниже - продает. У таких роботов также присутствует стоп-модуль для страховки.

5. Программные комплексы для автоматической торговли на основе нейронных сетей

С середины 00-х годов XXI века трейдеры стали задумываться над использованием нейронных сетей в трейдинге. Однако к настоящему моменту значительного успеха добилась только одна компания, о которой автор упоминал ранее: Hyde Park Global. В большинстве случаев трейдерами использовалось обучение с учителем, так как нейронной сети на вход подавали временные ряды исторических данных. Основная роль нейронной сети было запоминание большинства повторяющихся сценариев с изменением цены, чтобы в дальнейшем нейронная сеть могла сразу распознать тот или иной сценарий. Однако простое обучение с помощью временных рядов с ценами было, видимо, недостаточным условием, чтобы нейронная сеть корректно прогнозировала котировки инструментов. В следующем поколении трейдеры добавили объем совершенных сделок вкупе с котировками. Такой шаг повысил вероятность корректного прогноза (теперь 15% прогнозов сбывались), однако для того, чтобы использовать такой программный комплекс в действии, в реальной торговле, необходимо добиваться 70% и выше вероятности, что сеть правильно спрогнозирует поведение финансового инструмента.

6. Резюме

Две основные школы анализа определили основной набор инструментов, которые используют трейдеры. А именно:

1) Анализ графиков вручную;

2) Специальные роботы с техническим анализом внутри;

3) Программные комплексы с движком из нейронной сети (используется сейчас крайне редко);

4) Фундаментальный анализ вручную (чтение новостей, корреляционный анализ нескольких событий и др.).

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

У алгоритмических программ существует большой минус: на рынке их становится всё больше, а значит они начинают торговать друг против друга. Когда процент роботов на рынке превысит 80%, исследователи предсказывают, что рынок станет максимально эффективным, и торговля через роботов станет неустойчивой. Результаты таких предсказаний уже можно наблюдать на рынке.

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

7. Составление плана проектирования программного комплекса

План проектирования:

1) Выбор источника данных;

2) Проектирование UML-диаграммы объектов;

3) Проектирование UML-диаграммы пользователя системы;

4) Описание проектирования Http-клиента;

5) Резюме проектирования остальных обработчиков;

6) Обучение.

Проектирование программного комплекса

Выбор источника данных

Ещё на этапе анализа для оперативного сбора данных в России была выбрана Московская биржа. Для России это единый источник всех ордеров по всем рынкам. Для первого года разработки (этап проектирования и тестирования программного комплекса) понадобится платная подписка для доступа к бирже по Http-протоколу.

Проектирование UML-диаграммы объектов

Разрабатываемый программный комплекс должен выполнять следующие функции:

1) Отображать текущую цену на выбранный финансовый инструмент;

2) Отображать графики японских свечей, баров и тиковый график;

3) Отображать текущие ордера, стоящие в очереди выполнения («Стакан»);

4) Хранить часть данных для дальнейшей обработки;

5) Выполнять анализ котировок с помощью полученных данных;

Диаграмма объектов представлена ниже, на рис. 3.

Рис. 3. Диаграмма объектов для программного комплекса

Было решено разделить программный комплекс на две основные части: ядро и интерфейс, тем самым позволяя масштабировать архитектуру комплекса со временем. Данные для интерфейса передает ядро, как только последние будут получены из локального хранилища или с сервера Московской биржи.

Ядро использует 6 основных обработчиков. Обработчик «Загрузчик данных с биржи» на данной стадии является Http-клиентом, самостоятельно разработанным без дополнительных библиотек. «Обработчик данных с биржи» анализирует содержимое сообщения. Используя Http-канал передачи данных с биржи, можно использовать различные «упаковки» для данных: json, xml, html, xls. Обработчик данных анализирует полученные данные в json: такой формат позволяет упаковывать достаточно много данных в меньшие по размеру файлы в сравнении с другими представленными расширениями.

Класс-хранилище представляет собой обработчик для работы с sql-сервером. Все данные после анализа передаются на вход этому классу для распределения по базе данных. Остальные три обработчика представляют собой прогнозирующий комплекс.

Проектирование UML-диаграммы пользователя системы

Проектирование данной UML-диаграммы позволяет ещё на этапе проектирования определить, как же пользователь будет использовать программу. Готовая диаграмма представлена ниже, на рис. 4.

Рис. 4. UMLиаграмма пользователя системы

Далее в докладе представлен разбор каждого из событий на диаграмме на примере акции как одного из финансовых инструментов.

Запустив программу, пользователь запрашивает прогноз на акцию у системы прогнозирования (рис. 5):

Рис. 5

Система прогнозирования, в свою очередь, запускает функцию ядра для просчитывания акции (Рис. 6):

Рис. 6

Ядро при просчитывании акции вызывает функцию у прогнозировщика «Спрогнозировать поведение акции()» (Рис. 7):

Рис. 7

Прогнозировщик собирает данные с двух других анализаторов и вычисляет поведение акции (Рис. 8):

Рис. 8

После чего прогнозировщик отдает результат в ядро, а последнее уже выдает ответ пользователю через систему (Рис. 9):

Рис. 9

Описание проектирования Http-клиента

На данный момент архитектура программного комплекса есть, и основной сценарий работы пользователя с приложением спроектирован (прошлый пункт). В этом пункте автор доклада описывает проектирование Http-клиента.

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

Рис. 10. Схема классов для httpлиента

Двойной линией обозначены связи «As is», стрелочкой - наследование от абстрактного класса.

Класс HttpClient инкапсулирует в себе все функции и проверку и некорректность, предоставляя пользователю только функции trySaveToFile, trySaveToBuffer и другие. Так как основная концепция протокола http - это вопрос-ответ, то были специально разработаны два класса: ClientRequest - класс, отвечающий за составление правильного запроса в соответствии с предположениями о сервере; ServerResponse - класс, хранящий внутри проанализированный ответ сервера, разложенный на структуры из заголовков и их значений. При разработке клиента было решено использовать специальное перечисление со всеми типами заголовком, именуемое в исходном коде HeaderType. PreliminaryAction и FinallyAction - специальные перечисления, представляющие собой действия, которые необходимо выполнить клиенту во время работы (загрузки страниц).

На данный момент FinallyAction содержит 4 значения:

1) Nothing - значение используется, когда клиент не работает;

2) SendAndReceive - значение используется при первичной аутентификации на сервере Московской биржи;

3) SaveToFile - значение используется, когда необходимо сохранить в файл содержимое сообщения с сервера;

4) SaveToBuffer - значение используется для прямой передачи следующему обработчику для анализа.

Также в классе HttpClient встроена обработка кодов ответов от сервера. Если произошла ошибка на стороне сервера - клиент сохранит тело сообщения и откроет сохранённую страницу в браузере по умолчанию как доказательство ошибки. Если произошла ошибка на стороне клиента - алгоритм постарается решить проблему самостоятельно (например, необходимо вновь переслать запрос; добавить / убрать заголовки в запросе; сменить версию обращения к серверу).

8. Резюме проектирования остальных обработчиков

Схема взаимодействия остальных трёх обработчиков с другими представлена в пункте «Проектирование UML-диаграммы объектов». Так как тема данного отчёта является реальным заданием компании автору, то руководство приняло решение не описывать подробно проектирование данных трёх разработчиков, поскольку решение, представленное в проекте, является собственностью компании.

Обучение

Для спроектированных сетей было выбрано обучение с учителем, так как основными данными являются исторические, подтвержденные. Использовались данные со срочного рынка иностранной валютой в период с 2010 по 2015 года. Так как FOREX рынок является децентрализованным, то использовались данные, которые удалось собрать с Московской биржи.

Выводы

Обучение нейронной сети является достаточно долгим процессом, способным растянуться на месяцы. Автор приступил к обучению нейронной сети и его анализу в начале 2016-го года. Однако на момент мая 2016 обучение ещё не завершено, поскольку данных о закрытии торгов оказалось недостаточно: зависимостей одних валютных пар от других слишком много, другие финансовые инструменты также влияют, и получается сложно структурированная сеть зависимостей. Чтобы повысить качество обучения, было принято решение аккумулировать данные с реальных торгов и обучать по ним сеть. Также необходимо заметить, что обучение сети проводится только для срочного рынка FOREX, так как на данный момент выгодное использование фьючерсов и опционов на валютные пары является для компании первоочередной задачей. Тем не менее, работа над проектом продолжится: планируется обучить нейронную сеть до конца 2016-го года и найти также новых сотрудников для командной работы над проектом.

Заключение

Представленный отчёт является выпускной квалификационной работой для бакалавра. Основная задача, стоящая перед студентом, была следующей: спроектировать программный комплекс на основе нейронной сети с применением машинного обучения. По окончании срока цель была достигнута на 90%: обучение всё ещё ведется по причине недостаточности данных для обучения. Архитектура же комплекса была спроектирована и утверждена руководством компании.

Список использованных источников

1. Морозов И. Forex. От простого к сложному. 7-е изд. Альпина Паблишер, 2016. 328 с.

2. Михаловски Г. На волне валоютного тренда. Как предвидеть большие движения и использовать их в торговле на FOREX. Отдельное изд. Альпина Паблишер, 2013. 324 с.

3. Арчер М. Трейдинг на валютном рынке для начинающих. Отдельное изд. Альпина Паблишер, 2016. 460 с.

Размещено на Allbest.ru

...

Подобные документы

  • Анализ применения нейронных сетей для прогнозирования ситуации и принятия решений на фондовом рынке с помощью программного пакета моделирования нейронных сетей Trajan 3.0. Преобразование первичных данных, таблиц. Эргономическая оценка программы.

    дипломная работа [3,8 M], добавлен 27.06.2011

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Нейронные сети как средство анализа процесса продаж мобильных телефонов. Автоматизированные решения на основе технологии нейронных сетей. Разработка программы прогнозирования оптово-розничных продаж мобильных телефонов на основе нейронных сетей.

    дипломная работа [4,6 M], добавлен 22.09.2011

  • Применение нейрокомпьютеров на российском финансовом рынке. Прогнозирование временных рядов на основе нейросетевых методов обработки. Определение курсов облигаций и акций предприятий. Применение нейронных сетей к задачам анализа биржевой деятельности.

    курсовая работа [527,2 K], добавлен 28.05.2009

  • Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.

    контрольная работа [135,5 K], добавлен 30.11.2015

  • Задача анализа деловой активности, факторы, влияющие на принятие решений. Современные информационные технологии и нейронные сети: принципы их работы. Исследование применения нейронных сетей в задачах прогнозирования финансовых ситуаций и принятия решений.

    дипломная работа [955,3 K], добавлен 06.11.2011

  • Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.

    дипломная работа [814,6 K], добавлен 29.09.2014

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

    курсовая работа [249,3 K], добавлен 22.06.2011

  • Описание технологического процесса напуска бумаги. Конструкция бумагоделательной машины. Обоснование применения нейронных сетей в управлении формованием бумажного полотна. Математическая модель нейрона. Моделирование двух структур нейронных сетей.

    курсовая работа [1,5 M], добавлен 15.10.2012

  • Рост активности в области теории и технической реализации искусственных нейронных сетей. Основные архитектуры нейронных сетей, их общие и функциональные свойства и наиболее распространенные алгоритмы обучения. Решение проблемы мертвых нейронов.

    реферат [347,6 K], добавлен 17.12.2011

  • Исследование задачи и перспектив использования нейронных сетей на радиально-базисных функциях для прогнозирования основных экономических показателей: валовый внутренний продукт, национальный доход Украины и индекс потребительских цен. Оценка результатов.

    курсовая работа [4,9 M], добавлен 14.12.2014

  • Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.

    реферат [162,9 K], добавлен 30.09.2013

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

    презентация [150,8 K], добавлен 19.08.2013

  • Изучение методов разработки систем управления на основе аппарата нечеткой логики и нейронных сетей. Емкость с двумя клапанами с целью установки заданного уровня жидкости и построение нескольких типов регуляторов. Проведение сравнительного анализа.

    курсовая работа [322,5 K], добавлен 14.03.2009

  • Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.

    реферат [158,2 K], добавлен 16.03.2011

  • Особенности нейронных сетей как параллельных вычислительных структур, ассоциируемых с работой человеческого мозга. История искусственных нейронных сетей как универсального инструмента для решения широкого класса задач. Программное обеспечение их работы.

    презентация [582,1 K], добавлен 25.06.2013

  • Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.

    лабораторная работа [1,1 M], добавлен 05.10.2010

  • Гибкая технологии извлечения знаний из нейронных сетей, настраиваемой с учетом предпочтений пользователя. Тестирование, пробная эксплуатация и разработка новой версии программных средств, реализующих данную технологию. Индивидуальные пространства смыслов.

    дипломная работа [336,3 K], добавлен 07.06.2008

  • Способы применения нейронных сетей для решения различных математических и логических задач. Принципы архитектуры их построения и цели работы программных комплексов. Основные достоинства и недостатки каждой из них. Пример рекуррентной сети Элмана.

    курсовая работа [377,4 K], добавлен 26.02.2015

  • Технологии решения задач с использованием нейронных сетей в пакетах расширения Neural Networks Toolbox и Simulink. Создание этого вида сети, анализ сценария формирования и степени достоверности результатов вычислений на тестовом массиве входных векторов.

    лабораторная работа [352,2 K], добавлен 20.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.