НЕЙРОННОЕ ПРОГНОЗИРОВАНИЕ ФОРЕКС

СОДЕРЖАНИЕ:


Прогнозирование цен с помощью нейронных сетей

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

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

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

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

Известно, что 99% всех сделок — спекулятивные, т.е. направлены не на обслуживание реального товарооборота, а заключены с целью извлечения прибыли по схеме «купил дешевле — продал дороже». Все они основаны на предсказаниях изменения курса участниками сделки. Причем, что немаловажно, предсказания участников каждой сделки противоположны друг другу. Так что объем спекулятивных операций характеризует степень различий в предсказаниях участников рынка, т.е. реально — степень непредсказуемости финансовых временных рядов.

Это важнейшее свойство рыночных временных рядов легло в основу теории «эффективного» рынка, изложенной в диссертации Луи де Башелье (L.Bachelier) в 1900 г. Согласно этой доктрине, инвестор может надеяться лишь на среднюю доходность рынка, оцениваемую с помощью индексов, таких как Dow Jones или S&P500 для Нью-Йоркской биржи. Всякий же спекулятивный доход носит случайный характер и подобен азартной игре на деньги (а что то в этом есть, не находите?). В основе непредсказуемости рыночных кривых лежит та же причина, по которой деньги редко валяются на земле в людных местах: слишком много желающих их поднять.

Теория эффективного рынка не разделяется, вполне естественно, самими участниками рынка (которые как раз и заняты поиском «упавших» денег). Большинство из них уверено, что рыночные временные ряды, несмотря на кажущуюся стохастичность, полны скрытых закономерностей, т.е. в принципе хотя бы частично предсказуемы. Такие скрытые эмпирические закономерности пытался выявить в 30-х годах в серии своих статей основатель волнового анализа Эллиот (R.Elliott).

В 80-х годах неожиданную поддержку эта точка зрения нашла в незадолго до этого появившейся теории динамического хаоса. Эта теория построена на противопоставлении хаотичности и стохастичности (случайности). Хаотические ряды только выглядят случайными, но, как детерминированный динамический процесс, вполне допускают краткосрочное прогнозирование. Область возможных предсказаний ограничена по времени горизонтом прогнозирования, но этого может оказаться достаточно для получения реального дохода от предсказаний (Chorafas, 1994). И тот, кто обладает лучшими математическими методами извлечения закономерностей из зашумленных хаотических рядов, может надеяться на большую норму прибыли — за счет своих менее оснащенных собратьев.

В последнее десятилетие наблюдается устойчивый рост популярности технического анализа — набора эмпирических правил, основанных на различного рода индикаторах поведения рынка. Технический анализ сосредотачивается на индивидуальном поведении данного финансового инструмента, вне его связи с остальными ценными бумагами. Но технический анализ очень субъективен и плохо работает на правом краю графика – именно там, где нужно прогнозировать направление цены. Поэтому все большую популярность приобретает нейросетевой анализ, поскольку в отличие от технического, не предполагает никаких ограничений на характер входной информации. Это могут быть как индикаторы данного временного ряда, так и сведения о поведении других рыночных инструментов. Недаром нейросети активно используют именно институциональные инвесторы (например, крупные пенсионные фонды), работающие с большими портфелями, для которых особенно важны корреляции между различными рынками.

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

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

Подготовка данных

Для начала работы нужно подготовить данные, от правильности этой работы зависит 80% успеха.

Гуру говорят, что в качестве входов и выходов нейросети не следует выбирать сами значения котировок Ct. Действительно значимыми для предсказаний являются изменения котировок. Поскольку эти изменения, как правило, гораздо меньше по амплитуде, чем сами котировки, между последовательными значениями курсов имеется большая корреляция — наиболее вероятное значение курса в следующий момент равно его предыдущему значению C(t+1)=C(t)+delta(C)=C(t).

Между тем, для повышения качества обучения следует стремиться к статистической независимости входов, то есть к отсутствию подобных корреляций. Поэтому в качестве входных переменных логично выбирать наиболее статистически независимые величины, например, изменения котировок delta(С) или логарифм относительного приращения log(C(t)/C(t+1)).

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

Отрицательной чертой погружения в лаговое пространство является ограниченный «кругозор» сети. Технический анализ же, напротив, не фиксирует окно в прошлом, и пользуется подчас весьма далекими значениями ряда. Например, утверждается, что максимальные и минимальные значения ряда даже в относительно далеком прошлом оказывают достаточно сильное воздействие на психологию игроков, и, следовательно, должны быть значимы для предсказания. Недостаточно широкое окно погружения в лаговое пространство не способно предоставить такую информацию, что, естественно, снижает эффективность предсказания. С другой стороны, расширение окна до таких значений, когда захватываются далекие экстремальные значения ряда, повышает размерность сети, что в свою очередь приводит к понижению точности нейросетевого предсказания — уже из-за разрастания размера сети.

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

Весьма перспективным инструментом здесь может оказаться вейвлетное разложение (wavelet decomposition). Оно эквивалентно по информативности лаговому погружению, но легче допускает такое сжатие информации, которое описывает прошлое с избирательной точностью.


Выбор программного обеспечения

Для работы с нейросетями предназначено множество специализированных программ, одни из которых являются более-менее универсальными, а другие – узкоспециализированными. Проведем краткий обзор некоторых программ :

1. Matlab – настольная лаборатория для математических вычислений, проектирования электрических схем и моделирования сложных систем. Имеет встроенный язык программирования и весьма богатый инструментарий для нейронных сетей – Anfis Editor (обучение, создание, тренировка и графический интерфейс), командный интерфейс для программного задания сетей, nnTool – для более тонкой конфигурации сети.

2. Statistica – мощнейшее обеспечение для анализа данных и поиска статистических закономерностей. В данном пакете работа с нейросетями представлена в модуле STATISTICA Neural Networks (сокращенно, ST Neural Networks, нейронно-сетевой пакет фирмы StatSoft), представляющий собой реализацию всего набора нейросетевых методов анализа данных.

3. BrainMaker – предназначен для решения задач, для которых пока не найдены формальные методы и алгоритмы, а входные данные неполны, зашумлены и противоречивы. К таким задачам относятся биржевые и финансовые предсказания, моделирование кризисных ситуаций, распознавание образов и многие другие.

4. NeuroShell Day Trader — нейросетевая система, которая учитывает специфические нужды трейдеров и достаточно легка в использовании. Программа является узкоспециализированной и как раз подходит для торговли, но по своей сути слишком близка к черному ящику.

5. Остальные программы являются менее распространенными.

Для первичной работы вполне подойдет Matlab, в нем и будем пытаться определить степень пригодности нейросетей для прогнозирования рынка Forex.

Ознакомиться с комплексом MatLab можно в википедии https://ru.wikipedia.org/wiki/MATLAB

Много материалов по программе предоставлено на сайте http://matlab.exponenta.ru/

Эксперимент

Подготовка данных

Данные очень удобно можно получить стандартными средствами MetaTrader:

Сервис -> Архив котировок -> Экспорт

В результате получаем файл в формате *.csv, который является первичным сырьем для подготовки данных. Для преобразования полученного файла в удобный для работы файл *.xls нужно произветси импорт данных из файла *.csv. Для этого в excel нужно произвести следующие махинации:

Данные -> Импорт внешних данных -> Импортировать данные и указать подготовленный первичный файл. В мастере импорта все необходимые действия выполняются в 3 шага:

На 3 шаге необходимо поменять разделитель целой и дробной части на точку, делается это при нажатии кнопки Подробнее…

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


Сервис -> Параметры -> Международные -> Разделитель целой и дробной части.

На скриншотах показан пример сохранения цен открытия и закрытия, остальные данные пока не нужны.

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

Создаем нейронную сеть для прогнозирования временного ряда

Интерес к нейронным сетям

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

— В ряде работ [2],[36],[37] указано, что на сегодняшний день наиболее распространенными моделями прогнозирования являются авторегрессионные модели (ARIMAX), а также нейросетевые модели (ANN). В статье [3], в частности, утверждается: «Without a doubt ARIMA(X) and GRACH modeling methodologies are the most popular methodologies for forecasting time series. Neural networks are now the biggest challengers to conventional time series forecasting methods».

Без сомнений модели ARIMA(X) и GARCH являются самыми популярными для прогнозирования временных рядов. В настоящее время главную конкуренцию данным моделям составляют модели на основе ANN.

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

Первая нейронная сеть

Не стоит изобретать велосипед, а стоит взять готовый пример из книги Хайкина. Сама задача и ее решение подробно описаны в разделе 4.8 данной книги. Полный архив примеров для книги выложен у нас на форуме. Отдельно взятый рабочий пример можно скачать в архиве. Главный файл называется Create_ANN_step_0.m.

Приведенная программа решает задачу классификации. Прокомментирую текст основного файла.

Прогнозирование с помощью нейронной сети

Я взяла данный пример реализации нейронной сети, просмотрела внимательно содержание его функций и сделала свою нейронную сеть, которая прогнозирует торговый график по европейской территории РФ (далее ТГ) на 24 значения вперед. В архиве вы можете скачать, как полученный мною пример, так и исходные данные к нему. Основной файл называется Create_ANN_step_1.m

Шаг 1. Инициализация и исходные данные

Исходные данные по торговому графику содержатся в файле VOLUMES_EUR.mat и имеют значения за период с 01.09.2006 до 22.11.2011.

Обучение сети, то есть определение весов и смещений для всех нейронов я выполняю на периоде значений с 01.01.2010 по 31.12.2010.

В качестве тестового я выбрала период с 01.01.2011 по 22.11.2011.

Шаг 2. Предварительная обработка исходных данных

Из теории и из примера Хайкина я понимаю, что нейронная сеть работает со значениями временных рядов от 0 до 1. Исходные значения торгового графика в массиве VOLUMES_EUR, конечно, выходят далеко за этот диапазон. Для использования нейронной сети необходимо предварительно отмасштабировать исходный временной ряд, как показано на рисунках.


Рис 1. Предварительно мы имели значения от 57 847 до 111 720.

Рис 2. После масштабирования мы стали иметь значения от 0 до 1.

Шаг 3. Настройка нейронной сети

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

На вход нейронной сети я подаю 48 значений ТГ за двое предыдущих суток, скрытый слой после нескольких попыток стал содержать 72 нейрона, а на выходе мы получаем 24 прогнозных значений торгового графика на будущие сутки. Структура нейронной сети получилась следующая.

Рис 3. Структура разработанной нейронной сети.

После описания структуры указываются значения нескольких параметров нейронной сети (см файл Create_ANN_step_1.m). Не мудрствуя лукаво, оставила все значения, которые были установлены в примере Хайкина.

Шаг 4. Обучение сети

Двойной цикл по эпохам и внутренней корректировки весов я взяла в чистом виде из примера Хайкина. Такое обучение называется обучением нейронной сети по методу back propagation error (обратное распространение ошибки). Изменения внесены только в части формирования входа и выхода нейронной сети. Общие комментарии по ходу алгоритма приведены в тексте программы.

Шаг 5. Тестовое прогнозирование

На пятом шаге я формирую тестовый массив «T» и прогнозирую на полученной нейронной сети. Все прогнозирование в итоге сходится к нескольким строчкам кода.

По результатам прогноза я провожу инверсию масштаба.

Шаг 6. Оценка ошибки прогнозирования

На последнем шаге я вычисляю значения ошибки прогнозирования временных рядов MAE и MAPE.

Величина MAPE оставила около 4%, что показывает в целом адекватность разработанной нейросетевой модели прогнозирования. Однако мы знаем, что это далеко не предел точности! Аналогичное значение MAPE для того же самого временного ряда в отчете за аналогичный период (за 2011 год) составляет около 1.18% при использовании нашей внутренней модели прогнозирования. Подробности можно посмотреть в отчете Точность прогнозирования за истекшие периоды. В упомянутом отчете временной ряд назван для краткости ТГ ЕЦЗ (торговый график европейской ценовой зоны).

Результаты

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

Созданная нейронная сеть обучается очень быстро: от 60 до 120 секунд в зависимости от мощности компьютера.


При тестовом прогнозировании на созданной нейронной сети получается прогноз торгового графика на сутки вперед с ошибкой MAPE ≅ 4%.

Исходный пример из книги Хайкина, а также мой пример нейронной сети для прогнозирования торгового графика европейской территории РФ с исходными данными вы можете скачать по приведенным ссылкам и попробовать решить свою задачу.

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

  1. Если вы потратили меньше чем 6 месяцев на эти работы, то не ждите никакого адекватного результата. И полгода на приличный результат мало!
  2. Если у вас возник вопрос вроде «а где в коде то и се?», то имейте в виду, что я не буду впредь на эти вопросы отвечать — задавать их тут бесполезно. Для того, чтобы найти ответ на такого сорта вопрос нужно внимательно пошагово прогнать программу и разобраться.
  3. Если, не смотря на внимательный разбор кода примера, вопрос все равно остался, то задумайтесь, тем ли вы занимаетесь. Математическое моделирование — сфера деятельности, подходящая далеко не всем.

Похожие публикации

Комментарии

Добрый вечер, Ирина!

Я только начинаю заниматься изучением нейросетевого прогнозирования. Спасибо большое за Ваш пример, он очень полезен для меня.Могли бы подсказать, в результате работы программы только ошибка прогноза, а где можно сам результат посмотреть, «что было» — «что стало». Вывод куда то ведется или это нужно сделать? И например, чтобы мне загрузить свои тестовые данные, мне их нужно записать вручную в файл «VOLUMES_EUR.mat»?Прошу прощения за, возможно «наивные» вопросы, но я только начинаю изучать матлаб, пока что чайник в этом.. Был бы очень признателен, если поможете, ответите.

Эта статья приведёт Вас к успеху:  СТАТИСТИЧЕСКИЕ ИНДИКАТОРЫ ФОРЕКСА

Сергей, добрый день!
Пожалуйста!

Могли бы подсказать, в результате работы программы только ошибка прогноза, а где можно сам результат посмотреть, «что было» — «что стало»

У нас с вами есть фраза в коде

Из нее следует, что и факт, и результат прогноза хранятся в переменной Result.

И например, чтобы мне загрузить свои тестовые данные, мне их нужно записать вручную в файл «VOLUMES_EUR.mat»?

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

mat — это встроенный формат MATLABа; чтобы сделать такой файл удобнее сначала подготовить данные в xls формате, а уж после загрузить xls в MATLAB буквально двумя строчками.

Добрый день, Ирина.

Подскажите пожалуйста есть ли смысл заниматься нейросетями на матлабе при очень большом объеме исходных данных. У меня объект — шахта, для обучения — входной вектор из аудиоряда с двух сотен микрофонов, длиной он в месяцы — но вход — кусочек в минуту. А выход — прогнозируемое событие: изменение технологических параметров, конкретно метанообразование). Итого объем данных по выборке более гигабайта.

Но эти детали наверное не очень важны.

Проще говоря, какова была размерность вашего файла для обучения для обучения в 40-60 секунд (можно просто к мегабайтах — мне этого будет достаточно)


Добрый день! У вас очень интересная задача, но данных действительно очень много, но это много не только для ANN, а вообще много. ANN — неплохой инструмент для подобной задачи, на мой взгляд. У меня в обучающей выборке было около

30 000 значений временного ряда. Это немного, конечно, по сравнению с вашими данными.

Работать с сырыми массивами в таком случае довольно сложно, но нужно исходить из задачи:

  • если вы прогнозируете на несколько минут вперед, то разрешение должно остаться минутное;
  • если прогноз более агрегированный, то и данные можно агрегировать.

Можете попробовать работать не с полным массивом, а с его кусочками, выборками. Можно их кластеризовать по некоторому признаку. Словом, не бойтесь объемов, научитесь обращаться с ними гибко.

добрый день, Ирина!

мы с програмистом практически повторили описанный алгоритм и получили аналогичные результаты по ошибкам на массиве EUR/USD. То есть все получилось и сработало. Но тут возник вопрос у программиста — а где собственно прогнозируемое окно? если Result вычисляется используя Index0 для тестового массива, то в этом масиве уже есть фактические данные , а прогнозируемое окно на 24 свечи вперед, означает что этих фактических данных еще нет, а прогнозируемое окно уже должно показать что «будет». Означает ли это, что мы должны поставить в тестовом массиве Index0 нули на величину одного окна в 24 свечи, а затем сравнить с фактическими данными поступившими в это окно?

будем благодарны за ответ

Илья, добрый день!

Смотрите внимательно, Result получается без использования Index0. Сначала берутся предыдущие дни (h-24; h-48), их индексы хранятся в Index1 и Index2.

Затем на основании этих индексов фомируется матрица T, где в 2 и 3 столбец записываются исторические значения.

А затем они используются для формирования входа сети.

Если все это проделать в дебаг режиме, то ответ на ваш вопрос будет быстро понятен.

Для использования нейронной сети необходимо предварительно отмасштабировать исходный временной ряд, как показано на рисунка

Добрый День. А можно с этого момента по подробней.

Каким методом можно сделать масштабирование? Пожалуйста — направте на литературу или приведите пример как это делаеться и почему. Если у меня данные в диапазано от 0 до 3 или 2 , как отмашт. к 0 и 1?

Скачиваете код примера в Matlab, смотрите на строки масштабирования и разбираетесь — в примере оно реализовано, достаточно разобраться каким образом.

Здравствуйте еще раз.По ходу разберательства сформировались еще несколько вопросов.Зачем на вход сети подавать данные за два прошедших дня (Xi-1, Xi-2)?почему бы просто не подать на вход Xi, и пытаться обучая сеть на выходе получить Xi.Далее не совсем понятно почему при формировании матрицы весов:для скрытого слоя W1 = randn(NumberOfHiddenNeurons, NumberOfInputNeurons+1); матрица строится по строкам по количеству нейронов скрытого слоя, по столбцам по количеству входных нейронов. Не понятно почему так,ведь по смыслу связьидет от входного к скрытому. вроде как должно быть наоборот W1 = randn(NumberOfInputNeurons, NumberOfHiddenNeuron+1);. В таком же виде строится матрица и для весов выходного слоя W2 = randn(NumberOfOutputNeurons, NumberOfHiddenNeurons+1); Также не ясно почему столбцов в матрице весов на 1 больше W1 = randn(NumberOfHiddenNeurons, NumberOfInputNeurons+1),по коду ясно, что это столбец загоняется в переменную b1/b2, которая в последствии используется для прогнозирования временного ряда.И вот собственно вопрос, что эта за переменная b1, зачем она нужна, потому как точность прогноза без нее падает ощутимо!

почему бы просто не подать на вход Xi, и пытаться обучая сеть на выходе получить Xi

Если сеть обучена по принципу «из Xi получить Xi», то как получить прогноз?


Далее не совсем понятно почему при формировании матрицы весов.

Эти вопросы касаются понимания работы сети. Смотрите подробности в Хайкине. Мой пример основан на примере, который подробно разбирается в указанной книге. И вообще, это замечательная книга по нейронным сетям. Кроме того, можете посмотреть мой краткий материал по нейронным сетям.

Скачал ваш код. Во многом разобрался. Все понятно и доступно.

Но есть маленькое WHY?

24 – это NumberOfOutputNeurons?

Почему 24… не пойму..

И еще. Если я хочу увеличить число входов (нейронов) нужно ли увеличивать число циклов епох или это нужно делать только экспериментально. То есть смотреть не увеличивается ошибка…?

Еще раз спасибо Вам за статью и Ваши ответы.

Так как исходный ряд Data, а также переменная P имеют значения в почасовом разрешении, а далее (ниже) в цикле обучения сети я перебираю сутки, то мне просто нужно из общего числа часов получить число суток. Вот так появилось 24 — в сутках 24 часа. Даты с переходами времени здесь не учитываются.

Здравствуйте Ирина!Спасибо Вам за отличную статью! на ру кластере аналога ей нет, очень мало примеров прогнозирования временных рядов с помощью нейронных сетей!Скажите пожалуйста, нет ли у Вас возможности, адаптировать код под более популярный язык программирования java или С++?

Виктор, спасибо за приятные слова.

К сожалению, у меня нет примера на высокоуровнем языке программирования, потому как я ими очень слабо владею. Как говорит мой партнер Сергей: отличный математик не бывает отличным программистом. Работаю в основном двух пакетах: matlab и R.

Ваш партнер не прав) Задачи решаемые программированием часто пересекаются с задачами математики.

Я его мнению очень доверяю и потому работаю над такими проблемами в паре с программистом. Еще не встречала приличного математика, который свободно владеет приемами качественного ООП.

Доброго времени суток. Возникла идея пргнозирования исхода теннисных матчей на основе нейроннных сетей. Хотелось бы спросить, где у вас в программе можно найти заданные выходы соответствующих входов в сети на этапе обучения? Насколько я понимаю именно с заданными выходами и осуществляется сравнение полученных выходов на этапе обучения? Также непонятно, почему при прогнозировании на этапе теста используются предыдущие входы? Ведь на этапе обучения мы получиили нужные нам веса и теперь остается лишь поставлять новые значения входов? Хотелось бы узнать этот момент подробнее. И хотелось бы у вас попросить совета. В строящейся сети будет использовано 50 входных нейронов, 150 скрытых. Задача программы выдавать номер игрока-победителя (либо 1 либо 2). Таким образом как результат необходимо получить сеть с одним выходом. Возможно ли это? Ведь номер победителя будет являться логической величиной, полученной на основе входных характеристик каждых из игроков (то есть грубо говоря, если характеристики игрока 1 лучше игрока 2, то на выходе получаем -1, в обратном случае -2). Может ли нейронная сеть на выходе давать логическую величину? И как будет осуществляться обучение? Ведь получаемые числа будут сравниваться на этапе обучения опять же с логической величиной известных результатов. Просто можно ведь сделать два выхода сети: процент соответствия игроку 1 категории «победитель» и процент соответствия игроку 1 категории «проигравший». Но тогда непонятно как обучать. Ведь в известных результатах базы на этапе обучения есть только номер победителя. Надеюсь понятно изложил свои мысли. Заранее благодарен!

Хотелось бы спросить, где у вас в программе можно найти заданные выходы соответствующих входов в сети на этапе обучения? Насколько я понимаю именно с заданными выходами и осуществляется сравнение полученных выходов на этапе обучения?

Уважаемые читатели, я не только к автору сего вопроса обращаюсь, а вообще к посетителям. Я выложила пример с пояснениями и исходными данными не для того, чтобы вам тут пошагово каждый раз заново пояснять где чего. Мне такого сорта вопросы надоели до невозможности! Сядьте, наконец, и терпеливо разберитесь! Пример сделан много лет назад, чтобы ответить на ваши вопросы, мне нужно его открывать, смотреть, прогонять в дебаггере. Вы-то при этом чем заняты?

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

Если вы внимательно все это пошагово прогоните, то поймете, что это не так. И ваш вопрос лишь от невнимательности.

Таким образом как результат необходимо получить сеть с одним выходом. Возможно ли это?


Может ли нейронная сеть на выходе давать логическую величину?

НЕЙРОННОЕ ПРОГНОЗИРОВАНИЕ ФОРЕКС

Предсказатель на основе самообучающейся нейронной сети.
Предлагается индикатор использующий нейронную сеть прямого распространения (feedforward neural network), которая самообучается методом Обратного Распространения Ошибки (backpropagation). Сеть загружается через DLL файл, исходный C++ код которого прилагается.
Нейронная сеть это ничто иное как нелинейная модель выходов как функция входов. На входы подаются данные задаваемые пользователем, например выборки временного ряда. Смысл выходных данных также задаётся пользователем, например сигналы 1=buy/0=sell. Структура сети опять же задаётся пользователем. Сеть прямого распространения состоит из

-входного слоя (input layer), элементами которого являются входные данные,

— скрытых слоёв (hidden layers), состоящих из вычислительных узлов называемых нейронами (neurons) и

— выходного слоя (output layer), который состоит из одного или нескольких нейронов, выходы которых являются выходами всей сети.

Все узлы соседних слоёв связаны между собой. Эти связи называются синапсами (synapses). Каждый синапс имеет вес (weight w[i,j,k]), на которой умножаются данные передаваемые по синапсу. Данные передвигается слева направа т.е. от входов сети к её выходам. Отсюда и название, «сеть прямого распространения». Общий пример этой сети изображён на рисунке внизу

Данные перерабатываются нейронами за два шага:

1. Все входы, помноженные на соответствующие веса, сначала суммируются

2. Затем получившиеся суммы обрабатываются функцией активации нейрона (activation or firing function) и посылаются на единственный выход.

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

* сигмоидальная функция sigm(x)=1/(1+exp(-x)) (#0)
* гиперболический тангенс tanh(x)=(1-exp(-2x))/(1+exp(-2x)) (#1)
* рациональная функция x/(1+|x|) (#2)

Порог активации этих функций равен 0. Этот порог может быть сдвинут по горизонтальной оси за счёт дополнительного входа нейрона называемом входом смещения (bias input), которому приписан определённый вес таким же образом как и к другим входам нейрона.

Таким образом, количество входов, слоев, нейронов в каждом слою и веса входов нейронов полностью определяют нейронную сеть, т.е. нелинейную модель, которую она создаёт. Чтобы пользоваться этой моделью необходимо знать веса. Веса вычисляются путём обучения сети на прошлых данных: на входы сети подаются нескольков наборов входных и соответствующих выходных данных и рассчитывается среднеквадратичная ошибка отклонения выхода сети от тестируемого. Цель обучения сети заключается в уменьшении этой ошибки путём оптимизации весов. Существуют несколько методов оптимизации, среди которых основными эвляются метод Обратного Распространения Ошибки (ОРО) и метод генетической оптимизации.

* BPNN.dll — библиотечный файл
* BPNN.zip — архив всех файлов необходимых для создания ДЛЛ файла
* BPNN Predictor.mq4 — индикатор предсказывающий будущее значение цены
* BPNN Predictor with Smoothing.mq4 — индикатор предсказывающий будущее значение цены, сглаженной ЕМА

Библиотечный файл BPNN.cpp содержит две функции: Train() и Test(). Train() предназначен для обучения сети для предоставленных входных и выходных данных. Test() предназначен для вычисления выходных данных на основе весов полученных после прогона Train().

Входными (зелёный цвет) и выходными (синий цвет) параметрами функции Train() являются:

double inpTrain[] — обучивающие входные данные (старый первый)
double outTarget[] — обучивающие выходные данные (старый первый)
double outTrain[] — выходы сети после обучения
int ntr — количество обучающих наборов входы-выходы
int UEW — ключ управляющий использованием внешних значений для инициализации весов (1=используем extInitWt[], 0=используем случайные числа)
double extInitWt[] — исходные значения весов
double trainedWt[] — значения весов после обучения
int numLayers — количество слоев в сети включая входной, скрытые и выходной
int lSz[] — одомерный массив размера numLayers, в котором хранятся количества нейронов в каждом слою. lSz[0] задаёт количество входов сети
int AFT — тип функции активации (0-сигмоидальная, 1-гиперболический тангенс, 2-рациональная)
int OAF — ключ использования функции активации в выходны нейронах (1=используем функцию активации, 0=нет)
int nep — максимальное количество обучающих шагов (эпох). Эпоха состоит из проверки всех обучающих наборов.
double maxMSE — среднеквадратичная ошибка, при которой обучения останавливается.

Входными (зелёный цвет) и выходными (синий цвет) параметрами функции Test() являются:


double inpTest[] — входные данные (старый первый)
double outTest[] — выходные данные
int ntt — колчиство наборов в входных и выходных данных
double extInitWt[] — исходные значения весов
int numLayers — количество слоев в сети включая входной, скрытые и выходной
int lSz[] — одомерный массив размера numLayers, в котором хранятся количества нейронов в каждом слою. lSz[0] задаёт количество входов сети
int AFT — тип функции активации (0-сигмоидальная, 1-гиперболический тангенс, 2-рациональная)
int OAF — ключ использования функции активации в выходны нейронах (1=используем функцию активации, 0=нет)

Использование функции активации в выходных нейронах зависит от характера выходны данных. Если выходами сети являются биноминальные сигналы (0/1 или -1/1), то нужно использовать функцию активации (OAF=1). Причём учтите что для функции №0, уровни сигнала 0 и 1, а для функций №1 и 2 уровни -1 и 1. Если выходом сети является предсказание цены, то функция активации в выходном слое не нужна (OAF=0).
Примеры индикаторов использующих нейронную сеть:

BPNN Predictor.mq4 — предсказывает будущие цены. Входными параметрами сети являются относительные приращения цен:

где delay[i] берётся из ряда Фибоначи. Выходом сети является предсказываемое относительное приращение будущей цены. Фунцкия активации в выходном слое отключена.

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

extern int lastBar — номер последнего бара
extern int futBars — количество будущих предсказываемых баров
extern int numLayers — количество слоев в сети включая входной, скрытые и выходной
extern int numInputs — количество входов сети
extern int numNeurons1 — количество нейронов в слое №1
extern int numNeurons2 — количество нейронов в слое №2
extern int numNeurons3
extern int numNeurons4
extern int numNeurons5
extern int ntr — количество обучающих наборов входы-выходы
extern int nep — максимальное количество обучающих шагов (эпох)
extern int maxMSEpwr — экспонента используемая для расчёта максимальной допустимой среднеквадратической ошибки обучения maxMSE=10^maxMSEpwr
extern int AFT — тип функции активации (0-сигмоидальная, 1-гиперболический тангенс, 2-рациональная)

Индикатор выдаёт такую картинку, где

* красный цвет — предсказания от последней цены Open
* чёрный цвет — прошлые тренировочные цены Open, по котором (как ожидаемым выходным данным) проводилось обучение сети
* синий цвет — выходы обученной сети на тренировочных данных

BPNN Predictor with Smoothing.mq4 — тоже предсказывает цены, но с предварительным сглаживанием цен экспоненциальной скользящей средней (EMA) с периодом smoothPer.

1. Копируйте приложенный BPNN.DLL файл в C:\Program Files\MetaTrader 4\experts\libraries
2. Включайте использование DLL в метатрейдере: Tools — Options — Expert Advisors — Allow DLL imports

Если приложенный DLL файл не работает, то компилируйте сами. Все необходимые файлы содержатся в BPNN.zip.
Советы:

* Сеть с 3-ми слоями (numLayers=3: один входной, один скрытый и один выходной) достаточна для подавляющего большинства применений. По теоремe Cybenko (1989) сеть с одним скрытым слоем может моделировать любую непрерывную нелинейную фунцкию и сеть с двумя скрытыми слоями способна описать функцию с разрывами (http://en.wikipedia.org/wiki/Cybenko_theorem):

* Количество нейронов в скрытом слую определяйте экспериментально. В литературе встречаются такие рекомендации: кол-во скрытых нейронов = (кол-во входов + кол-во выходов)/2, либо SQRT(кол-во входов * кол-во выходов). Следите за сообщениями о среднеквадратичной ошибки обучения в окне experts метатрейдера.
* Для получения хорошего обобщения, количество обучающих выборок должно в 2-3 раза превышать количество оптимизируемых весов. Например, в опубликованных примерах, количество весов равно (12+1)*5 на входах скрытого слоя плюс (5+1) на входах выходоного слоя, т.е. 71. Поэтому количество обучающих выборок должно быть по крайней мере 142. Концепт обобщения объяснён на рисунке внизу для одномерного случая y(x).
* Увеличения количества обучающих эпох может не повысить точность предсказаний на тестируемых данных даже если ошибка обучения (MSE) уменьшилась. При большом количестве весов сеть становится переученной (см объяснения внизу).
* Входные данные должны преобразоваться в стационарный ряд. Цены сами по себе таковым рядом не являются. Рекомендуется также нормализовывать входные данные к диапазону -1..1.

На этом графике показана линейная функция y=b*x (x-вход, y-выход) с добавленным шумом к выходам. Из-за этого шума, измерения функции (чёрные точки) не лежат на прямой. Функция y=f(x) может быть смоделирована нейронной сетью. Сеть с большим количеством весов (степеней свободы) способна уменьшить ошибку обучения по всем имеюшимся измерениям до нуля и описать тренировочные выходные данные плавной кривой. Но эта кривая (показана красным цветом) не имеет ничего общего с нашей линейной фунцкией y=b*x (показана зелёным цветом). Использование такой сети для предсказания будущих значений функции y при новых входных значениях x приведёт к большим ошибкам так как шум не предсказуем.

Эта статья приведёт Вас к успеху:  ФОРЕКС СТАНОВИТСЯ ПОПУЛЯРНЕЕ

Нейронные сети их сильные и слабые стороны при использовании в форекс экспертах

Вся правда об использовании нейронных сетей в торговых роботах: их суть, преимущества и недостатки использования нейронных сетей на Форекс.


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

Суть и преимущества нейронных сетей

Использование нейронных сетей в форекс экспертах позволяет осуществлять прием нескольких потоков информации и на выходе получать один результат.

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

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

Недостатки нейросетей

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

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

Прогнозирование котировок валютного курса евро и доллара с использованием нейронных сетей.

Прогнозирование котировок валютного курса евро и доллара с использованием искусственных нейронных сетей.

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

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

Факторы, влияющие на величину валютного курса, делят на структурные и конъюнктурные. К структурным факторам относятся национальный доход, платежный баланс страны, темп инфляции, конкурентоспособность товаров и покупательная способность денежных единиц, ставка рефинансирования и другие процентные ставки, государственная денежно-кредитная политика, колебания цен на биржевые товары (нефть, золото, металл), степень открытости экономики и наличие барьеров для оттока и притока капитала. Они оказывают долгосрочное влияние на валютный курс. Конъюнктурные факторы — это колебания деловой активности в стране, политическая и военная обстановка, психологическая ситуация (слухи, прогнозы, догадки), степень доверия и настроения на валютном рынке, кризисы, стихийные бедствия и т.д.

Среди основных факторов, формирующих валютный курс, можно выделить следующие.

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

2. Разница в процентных ставках, которая оказывает двоякое влияние на валютный курс. С одной стороны, в случае увеличения реальных процентных ставок при прочих равных условиях она стимулирует приток иностранного капитала в страну, тем самым спрос на валюту увеличивается, и она дорожает. С другой стороны, разница в процентных ставках оказывает влияние на рынок ссудного капитала. Номинальный рост процентной ставки при прочих равных условиях вызывает уменьшение спроса на национальную валюту. Банки и другие участники рынка предпочитают получать кредиты на иностранном рынке и размещать их на национальном рынке ссудных капиталов с высокими ставками, что сравнительно снижает стоимость национальной валюты по отношению к иностранной.

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

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

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

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


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

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

Согласно исследованию Банка международного расчета (BIS Triennial Central Bank) дневной объем торгов на рынке FOREX по результатам 2014 г. составляет в среднем $5,5 млрд, что на $1,5 млрд выше, чем в 2010 г., и на 0,2 млрд выше, чем в 2003 г. В качестве примера рассмотрим динамику роста рынка в 2013 г. по сравнению с 2010 г. (рис. 1, 2).

Рынок FOREX в существующей форме появился сравнительно недавно. Динамику курсов валют определяют спрос и предложение, которые зависят от ряда факторов. Режим плавающего курса, а также конъюнктура сделали этот рынок высокоспекулятивным и высокодоходным. Дневной оборот торгов на рынке FOREX превышает $5 млрд, в частности за счет увеличения сделок с помощью производных инструментов, и с каждым годом эта цифра увеличивается, а контроль за данной системой становится все сложнее осуществлять. Необходимо модернизировать методы регулирования валютных курсов (технического и фундаментального анализа) с учетом спекулятивной составляющей валютного рынка.

На практике наиболее применимы два метода прогнозирования — технический и фундаментальный анализ. Фундаментальным называется анализ международного валютного рынка с целью выявления взаимосвязи между изменяющимися макроэкономическими показателями и котировками валютных пар. В техническом анализе используются исторические данные для прогнозирования динамики валютного курса. Он предполагает, что рынок обладает памятью. Это значит, что на будущее движение курса существенно влияют закономерности его прошлого поведения. Иными словами, рынок «запоминает», как себя вести в определенной ситуации, т.к. она может повториться.

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

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

Искусственные нейронные сети (далее ANN — Artificial Neural Networks) представляют собой нелинейный метод прогнозирования, с помощью которого легко моделировать непараметрические и параметрические процессы и автоматически трансформировать входные данные. Нейронные сети представляют собой вычислительную структуру, которая моделирует нелинейные функции подобно человеческому мозгу. Нейронная сеть — это универсальная модель аппроксимации любого рода данных, которая способна к обучению путем анализа отрицательных и положительных воздействий. Элементарными преобразователями в данной сети являются нейроны: функционируя вместе аналогично биологическим прототипам, они решают специфические проблемы.

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

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

Простая нейронная сеть схематично изображена на рис. 3.

Искусственная нейронная сеть согласно строению биологических аналогов, имеет входы (дендриты) и выходы (аксоны). Между входами и выходами располагаются так называемые скрытые слои (один и более). Каждый слой содержит искусственные нейроны, которые соединяются между собой различным образом, позволяя нейронной сети улавливать сложное нелинейное поведение данных. Идеальная нейронная сеть, дающая желаемый выход, — та, которая обучалась на различных входных сигналах. Алгоритм работы нейронной сети представлен на рис. 4.

Результаты можно получить путем моделирования исходных данных. Данный метод направлен на минимизацию ошибки прогнозов. Обнаруженная квадратическая погрешность учитывается при корректировке весов исходных данных (рис. 5).

На рис. 5а представлено изменение биржевых котировок валютной пары. Каждый его элемент показывает диапазон изменения цены в течение определенного времени. Подробные графики называются японскими свечами и относятся к инструментам технического анализа. На графиках б показано соотношение реального и прогнозного сигналов, на графике в — план торговой стратегии. Сигналы показывают, в какой момент необходимо открывать / закрывать позицию, их значение колеблется от –1 до 1. Когда сигнал движется к отметке +1 (пик на графике сигналов), то это значит, что курс увеличивается и нужно открывать длинную позицию, а в случае сигнала, равного –1, действовать наоборот. На практике можно задать стратегию покупки или продажи валюты при достижении сигналом отметки ±0,6.

Практическая часть прогнозирования валютного курса с помощью нейронных сетей была реализована авторами с использованием программного продукта NeuroShell Day Trader Pro, котировки валют взяты из трейдерской программы Meta-Stock. Исторические данные по курсу валюты были загружены в программу NeuroShell, с помощью которой строились нейронные сети для нахождения нелинейной взаимосвязи в рядах данных.

Возможные выходы для нейронной сети валютного курса можно поделить на четыре группы, три из которых выдают варианты цен открытия или закрытия, четвертая группа — различные индексы. При выборе выходного значения нейронной сети исследователи склонны выбирать процентное изменение цены открытия, а также ее оптимальное изменение. Последний параметр представляет собой развитие показателя «изменение цены открытия». Его учет позволяет избежать проблемы раннего закрытия позиции, учесть максимальные и минимальные значения котировок. Исторические данные по дневным соотношениям курса евро и доллара (или свечкам EUR / USD) взяты из программы Meta Stock за период с 22 мая 2013 г. по 19 мая 2014 г. Одна часть выборки использовалась для тренировки нейронной сети, другая — для экстраполяции и проверки точности модели. На практическом опыте мы убедились в необходимости моделирования двух нейронных сетей (с максимизацией прибыли и с минимизацией ошибки прогнозов), каждая из которых подразделяется на модели с выходом оптимального или простого изменения цены открытия. График дневных свечей курса представлен на рис. 6.

Выборка примерно за 12 месяцев была разделена на две группы. Первая — обучающая — группа включала данные за девять месяцев (около 270 свечей), вторая группа — тестовая — за три месяца (примерно 90 свечей), с ней сравнивались экстраполированные значения.

Сначала мы построили нейронную сеть с выходом изменения цены открытия на основе данных самой свечи. Данный метод подобен авторегрессии, однако нейронная сеть использует нелинейный подход. В качестве входных параметров были взяты пять: Open (цена открытия), Close (цена закрытия), Low (минимальная цена), High (максимальная цена), Volume (число сделок в течение периода времени). Модель содержит 10 нейронов в скрытых слоях; в качестве критерия оптимизации использована максимизация прибыли на тестовой выборке (в NeuroShell — Maximize Return on Account, MRA). Для всех нижеприведенных результатов построения нейронных сетей были использованы следующие технические индикаторы.

Momentum — один из простых технических индикаторов, измеряющий разницу между текущей ценой и ценой в прошлом.


AMA (Adaptive Moving Average) — адаптивная скользящая средняя.

RMI (Relative Momentum Index) — индикатор, определяющий отклонение от «случайного блуждания».

CCI (Commodity Channel Index) — индекс, измеряющий отклонение среднего значения цены за период от его среднестатистического абсолютного среднего значения.

DMI (Directional Movement Index) — индекс направленного движения, измеряющий существование тренда на рынке и его силу; довольно часто используется на рынке FOREX.

MACD (Moving Average Convergence / Divergence) — технический индикатор для оценки колебаний курса, направления и силы тренда, определения разворотных точек; также часто применяется на валютном рынке.

RSI (Relative Strength Index) — индекс относительной силы, определяющий силу тренда и его смену.

Williams %R — процентный диапазон Вильямса, технический индикатор, измеряющий состояние перекупленности / перепроданности в диапазоне между максимальной и минимальной ценой закрытия.

Stochastic %K / %D — индикаторы, относящиеся к стохастическому осциллятору и измеряющие положение текущей цены относительно диапазона цен в прошлом.

Результаты представлены в табл. 1.

На тестовом множестве получены следующие результаты: с помощью прогнозирования с использованием нейронной сети с заданными параметрами была получена прибыль по торговой позиции размером 3,4%. На данном временном интервале было совершено 24 сделки, 15 из которых оказались прибыльными. Если бы мы придерживались стратегии только длинной позиции, или «медведя», то наша чистая прибыль составила бы 1,8%, в случае же принятия исключительно позиции «быка» чистая прибыль составила бы 1,6%. Как уже отмечалось выше, изменение курса за рассматриваемый период равно 0,1%, в то время как прогнозирование с использованием нейронной сети позволило получить более значимую прибыль, чем могла бы принести открытая длинная позиция.

Торговые действия на протяжении дня приведены на рис. 7. Первый график «Дневные свечи валютного курса EUR / USD» показывает колебания курсов валют, график «Реальный сигнал дневного курса» — действительное изменение курса валют, а «Прогнозный сигнал курса» — ожидаемое значение курса EUR / USD. Если курс будет двигаться вверх, к новой вершине, то график сигнала будет стремиться к 1, в то время как при падении курса сигнал будет стремиться в противоположную сторону. Таким образом, можно создать правило: при индикаторе больше 0,6 держать длинную позицию, а короткую — при снижении индикатора до отметки –0,6.

Входными данными для первой сети были пять показателей: Open, Close, Low, High, Volume. Сеть была настроена на выбор входных параметров, поэтому некоторые параметры оказались незадействованными — Low и Close. Убрав лишние входные параметры, мы попытались улучшить результаты, снова взяв в качестве критерия оптимизации максимизацию прибыли. Новые результаты представлены в табл. 2.

Исключив из входных параметров несущественные, мы смогли увеличить прибыль на 0,5%, что доказывает чувствительность нейронных сетей к незначимым входным данным, поэтому в дальнейшем необходимо обратить внимание на этот факт.

Во второй нейронной сети попробуем включить те же входные параметры и тот же критерий оптимизации, только выходом модели будет не изменение цены открытия, а оптимальное изменение цены открытия. Результаты новой нейронной сети представлены в табл. 3. За данный временной промежуток было совершено 16 сделок, 10 из которых оказались прибыльными. Из таблицы видно, что чистая прибыль снизилась, как и доходность, следовательно, более эффективным выходом для сети будет изменение цены открытия.

Также одним из вариантов выбора может стать выход «Процентное изменение цены». Указаний на использование процентного или абсолютного изменения в литературе не приводится, поэтому построим еще одну нейронную сеть, для простоты обозначим ее как третью (табл. 4). За три месяца постпрогнозного периода было совершено 25 сделок, 16 из которых оказались прибыльными, а 9 — убыточными. Доходность торговли составила 3,6%. Для данной сети мы получили результаты несколько ниже, чем для нейронной сети с выходом «Изменение цены открытия», доходность снизилась на 0,3%, поэтому основной вывод, полученный по группе построенных моделей, таков: наиболее эффективно прогнозировать сеть с выходом «Изменение цены открытия» при исключении несущественных входных параметров. В модель были включены следующие входы: «Цена открытия», «Максимальная цена валюты» и «Объем торгов».

Эта статья приведёт Вас к успеху:  ФОРЕКС СТРАТЕГИЯ РИБЕЙТ

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

В силу всего вышеперечисленного было решено выбрать несколько доступных индикаторов и попытаться улучшить прогнозы. Специалисты NeuroShell предпочитают использовать индикатор Momentum, а также ряд параметров, рассмотренных выше, таких как AMA, RMI, CCI, DMI, MACD, RSI и т.д. Проблема, с которой можно столкнуться в данном случае, — это корреляция индикаторов между собой, однако сеть должна использовать только необходимые входные параметры. Таким образом, увеличив количество входных данных, мы получили следующие результаты (табл. 6).

Выбранные ранее параметры в итоге распределились по значимости следующим образом: High — 40,42%, MACD — 31,27%, Volume — 11,05%, Open — 10%, %R — 7,26%, остальные параметры не вошли в конечную сеть. Доходность построенной стратегии составила 4,5%, что превысило исходное максимальное значение на 0,6%.

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

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

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


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

Прогнозирование фондового рынка с использованием нейронных сетей

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

В последние годы, у финансовых аналитиков стали вызывать большой интерес так называемые искусственные нейронные сети – это математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей – сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге при мышлении, и при попытке смоделировать эти процессы. Впоследствии эти модели стали использовать в практических целях, как правило, в задачах прогнозирования. Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения – одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Способности нейронной сети к прогнозированию напрямую следуют из ее способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значений и/или каких-то существующих в настоящий момент факторов. Следует отметить, что прогнозирование возможно только тогда, когда предыдущие изменения действительно в какой-то степени предопределяют будущие. Например, прогнозирование котировок акций на основе котировок за прошлую неделю может оказаться успешным, тогда как прогнозирование результатов завтрашней лотереи на основе данных за последние 50 лет почти наверняка не даст никаких результатов.

Рассмотрим на практике применение метода прогнозирования с помощью нейронных сетей. Для примера возьмём данные индекса ММВБ в период с 01.10.2008 по 03.04.2009. Задача состоит в том, что на основе представленной статистической информации необходимо сделать прогноз на 10 дней. Как видно из графика (рис.1), с 01.10.08 по 28.10.08 индекс ММВБ «просел» примерно на 534 пункта. После чего последовал рост до максимальной отметки в 871 пункт. Далее, некоторое время, рынок находился в боковом тренде, затем наметилась восходящая тенденция. В данном примере будем строить прогноз для одной переменной (остальные аналогично), но для того, чтобы выбрать ту из четырех переменных, которая наиболее сильно поможет спрогнозировать остальные, построим корреляционную матрицу.

Итак, построив матрицу парных корреляций (табл.1), делаем вывод о том, что переменная LOW наиболее сильно коррелирует с остальными. Займёмся прогнозом данной переменной.

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

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

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

В результате обучения была найдена нейронная сеть, соответствующая модели 7 (рис.2) с хорошей производительностью (регрессионное отношение: 0,253628, ошибка: 0,003302). Нетрудно заметить, что производительность сетей с архитектурой Радиально Базисной Функции (РБФ) в среднем хуже производительности сетей с архитектурой Многослойно персептрона. Во многом это объясняется тем, что сети с архитектурой РБФ плохо экстраполируют данные (это связано с насыщением элементов скрытой структуры). Для оценки правдоподобности модели 7 построим гистограмму частот (рис.3). Данная гистограмма является самой симметричной по сравнению с другими моделями. Это подтверждает стандартные предположения о нормальности остатков. Следовательно, модель 7 больше всего подходит для данного временного ряда.

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

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

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

Список использованной литературы:


1. Э.А.Вуколов. Основы статистического анализа. Издательство «Форум», Москва
2008г.
2. В. Боровников. STATISTICA: искусство анализа данных на компьютере. 2003г.
3. Недосекин А.О. Нечетко-множественный анализ риска фондовых инвестиций. Изд.
Сезам, 2002г.
Ранее статья публиковалась в материалах 3-ей региональной научной конференции ВолгГТУ в 2009 году (Том 3).

Прогнозирование курса валюты на основе нейронных сетей

экономические науки

  • Баранова Мария Андреевна , студент
  • Галиаскарова Гузелия Рафкатовна , кандидат наук, доцент, доцент
  • Стерлитамакский филиал Башкирского государственного университета
  • Похожие материалы

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

    Задача прогнозирования динамики индекса курсов доллара США и евро как всемирных эквивалентов является – актуальной. Изменения валютных курсов очень сложно предсказать в связи с их зависимостью от политической, экономической обстановки в стране и в мире.

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

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

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

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

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

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

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

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


    В качестве входных параметров модели будем использовать данные котировок EURUSD в период с 20.07.2020 по 21.01.2020. Данные взяты с сайта http://www.finam.ru/. Задача будет состоять в том, что на основе имеющейся статистической информации, необходимо произвести прогноз EURUSD на 7 дней вперед. В таблице 1 частично представлены используемые входные параметры за рассматриваемый период.

    Таблица 1. Исходные данные EURUSD с 20.07.2020 по 21.01.2020

    Нейронные сети Форекс для борьбы за прибыль

    Нейронная сеть – это метод анализа, который содержит множество разнообразных блочных схем для обработки информации, прослеживающим связи по взвешенным вероятностям. Этот термин был взят у ученых-экспертов, разрабатывающих системы искусственного интеллекта (ИИ). Нейронная сеть Форекс – это совершенная новинка в области валютных рынков. Если же попробовать дать ей упрощенное определение, то можно сказать, что нейронная сеть – это своеобразная модель, главная задача которой –воплотить в жизнь скопированные механизмы работы человеческого мозга, где наибольшую ценность представляет схема самообучения.

    Что такое нейронная сеть на Форекс

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

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

    Специфика применения нейронных сетей Форекс

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

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

    Повышение эффективности

    Чтобы добиться стабильных и весомых результатов нейронные сети Форекс необходимо постоянно загружать работой, поскольку они подобны структуре мозга, который, как известно, если не работает, то деградирует. Способ тренировки весьма прост – необходимо постоянно давать для анализа пары разнообразных перечней данных для обучения, а также информации тестирования. Нейронная сеть способна в режиме non-stot продолжать самообучение, постоянно сопоставляя свои прогнозы и поступающие с финансовых рынок данные.

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

    Преимущества и недостатки

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

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

    Прогнозирование движения рынка при помощи нейронной сети.


    Каждый трейдер, какой бы рынок он не торговал, всегда задает одни и те же вопросы:

    1. Какую позицию занимать на рынке длинную или короткую?
    2. Какие цели движения?
    3. Какая точка входа является оптимальной?
    4. Где ставить стоп?

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

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

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

    А для входа в позицию используется дельта кластерный анализ в программе Cluster Delta указывающий точку входа и место, куда оптимальное всего устанавливать стоп.

    Это позволяет свести к минимуму субъективность в принятии торговых решений и что немаловажно полностью формализовать свою торговлю.

    Вот пример как это работает.

    Я давал проноз о росте фьючерса на S&P 500

    привожу его здесь

    Купил от уровня 1429.00 где было мощное накопление объемов.
    Стоп поставил на 1427.75

    Цель движения 1436.00

    А вот что получается по вероятностям

    В итоге прогноз был четко отработан и указанная цель в прогнозе выполнена.

    По нашей статистике нейронная сеть в 70% — 80% случаев, верно, указывает направление движение торгового инструмента и цель движения. Мы назвали сигнальную систему X-Delta Signal
    и используем ее в своих торгах.

    Сразу возникает вопрос – как именно работает нейронная сеть?

    Мы запустили ее на том же сервере, где сейчас работает ClusterDelta. Она сравнивает текущую рыночную ситуацию с информацией в своей базе данных и выдает прогноз на дальнейшее движение цены в будущем.

    При этом учитывается большой объем рыночной информации.

    1. Цена.
    2. Объемы.
    3. Профиль объемов.
    4. Дельты объемов.
    5. Точечный объем по кластерам.

    И множество другой информации – эта разработка позволяет трейдеру иметь рыночное преимущество в виде объективной рыночной информации и статистики.

Добавить комментарий