- •Прогнозирование финансовых рынков с использованием искусственных нейронных сетей
- •Задание
- •Реферат
- •Введение
- •1 Описание предметной области
- •1.1 Финансовые рынки
- •1.2 Внешние факторы, влияющие на курс валют
- •1.3 Понятие биржи
- •1.4 Деятельность на бирже
- •1.5 Процесс торговли
- •2 Разработка программного продукта
- •2.1 Методы прогнозирования финансовых рынков
- •2.1.1 Экономико-математические методы
- •2.1.2 Анализ фундаментальных факторов
- •2.1.3 Технический анализ
- •2.1.4 Использование систем с искусственной «памятью» для решения задач прогнозирования
- •2.2 Выбор метода исследований
- •2.2.1 Искусственные нейронные сети
- •2.2.2 Нейронная сеть прямого распространения
- •2.3 Алгоритм обработки данных и полученные результаты
- •2.3.1 Проведение технического анализа
- •2.4 Объектная декомпозиция программы
- •2.5 Выбор среды и языка программирования
- •2.6 Описание реализации программы
- •3 Описание и тестирование программного обеспечения
- •3.1 Обзор программ аналогов
- •3.2 Описание работы и установки системы
- •3.3 Тестирование по
- •Заключение
- •Список использованных источников
- •Приложение а (справочное) Пример содержания csv файла для обучения нейронной сети
2.3.1 Проведение технического анализа
Используя данные динамики курса валют USD/RUB за 2012-2014 год, полученные на сайте Центрального банка Российской Федерации, и программное обеспечение для анализа и обработки данных OriginPro, построим необходимые графики для технического анализа.[19]
Для определения тренда необходимо произвести линейное сглаживание данных. Выбрав в программе режим Analysis/FitLinear и, указав необходимые нам столбцы с данными, производим линейное сглаживание (См. рис. 2.8).
Рисунок 2.8 ─ График линейного сглаживания данных динамики курса валют USD/RUB
После того как мы определили тренд его необходимо исключить, используя ранее обозначенные формулы, получим формулу (2.2). Далее нам необходимо определить сезонную составляющую. Строим график по полученным нами значениям и производим сглаживание, указав в режиме Analysis/Smoothing окно равное 55, для более точного отображения сезонности (См. рис.2.9).
Рисунок 2.9 ─ Отображение сезонной составляющей
Определив сезонную составляющую, мы может исключить ее и вычислить оставшуюся случайную составляющую, используя формулу (2.3). По полученному нами графику наиболее удобно выделять экстремумы, необходимые для дальнейших этапов работы.
В режиме Analysis/FFT для найденных данных случайной составляющей, получаем значения амплитуды и частот. После чего строим график и сглаживаем полученные нами значения амплитуды, используя режим Smoothing, в котором указываем разные значения окна для просмотра более точного результата (См. рис.2.10).
Рисунок 2.10 ─ Сглаженные значения амплитуды и частот
После сопоставления частот в пиках с днями, было выявлено, что можно определить тенденцию в интервале равном одному дню.
2.4 Объектная декомпозиция программы
Технические индикаторы, представленные в торговой платформе, не могут работать как успешный автоматический алгоритм. Каждый индикатор имеет свои характеристики, следовательно, работать с одним или несколькими индикаторами на автомате достаточно сложно. В зависимости от ситуации на рынке могут использоваться сначала одни, затем совершенно другие индикаторы.
На определенных участках рынка использование правильно подобранной комбинации индикаторов и их сигналов, а так же определенной системы, позволяет повысить получение прибыли на всем участке рынка без человеческого вмешательства. ( см. рис. 2.11)
Рисунок 2.11 – Схема работы алгоритма
Этап 1 – Сбор данных по основным валютным парам за интересующий промежуток времени, например: USD/RUB,USD/EUR. Если необходимо, так же проводится сбор исторических данных. В дальнейшее происходит обновление данных по мере появления новых, во время работы системы.
Этап 2 – Передача собранных данных нейронной сети для ее обучения.
Этап 3 – Сбор сигналов и данных от всех используемых технических индикаторов.
Этап 4 – Созданный технический нейросетевой индикатор берет значения, которые использовались нами для обучения нейросети и отдает их нейронной сети в качестве входных параметров. Далее подготавливается входные данные, производит расчет и возвращается результат работы нейросети.
Этап 5 – Система анализа и принятия решения о вхождении на рынок анализирует текущее состояние по основным валютным парам и полученный данные. На базе текущего состояния рынка определяется стратегия, по которой системе следует принимать решения в рассматриваемый момент. Используется принцип "trend is your friend" для того чтобы не выходить с рынка в случаях сильных трендов.
Этап 6 – Проводится анализ и принимается решение может ли система войти на рынок, оценивая текущие сделки, максимальную просадку и оставшийся свободный капитал, и принимает решение, имеет ли смысл вхождения на рынок.
Этап 7 – Система советник передает ордер на совершение сделки торговой системе MetaTrader.
Этап 8 – Система передает значение о совершении текущей сделки для дальнейшего анализа и работы системы в будущем.
Этап 9 – Данные по основным валютным парам передаются нейронной сети и далее на модуль системы анализа и принятия решения о закрытии сделки, аналогично этапу 1.
Этап 10 – Производится сбор данных и сигналов от технических индикаторов, которые используются.
Этап 11 – Система анализа и принятия решения о выходе с рынка анализирует текущее состояние по основным валютным парам, На базе текущего состояния рынка определяется стратегия, по которой системе следует принимать решения в рассматриваемый момент
Этап 12 – После проведения анализа принимается решение, может ли система выйти с рынка, оценивая текущие сделки, процент и размер прибыли, и принимает решение, имеет ли смысл выходит с рынка в данный момент.
Этап 13 – Система советник передает ордер на закрытие сделки торговой системе MetaTrader
Этап 14 – Система передает значение о закрытии текущей сделки для дальнейшего анализа и работы системы в будущем.
Этап 15 – Торговая система MetaTrader позволяет просматривать результаты в графическом и текстовом отображение, так же есть возможность сохранения в текстовый файл.
