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

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

Многие трейдеры говорят о нейронных сетях, но что это такое и на что они в реальности способны - мало кто представляет. Данная статья немного приоткрывает дверь в мир искуственного интеллекта. В ней рассказывается о том, как нужно правильно подготавливать данные для сети, а также приводится пример прогнозирования средствами программы Matlab.

Автор: Shashev Sergei
 

Добрый день!

Немного знаком с нейронными сетями. Знакомство началось с пакета BrainMaker, затем последовал и MathLab. Лейтмотив данной ветки - возможности нейронных сетей, могу порекомендовать ознакомиться теоремой Таккенса:

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

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

Но мы видим тренды, у которых мат. ожидание не равно 0.

Тем же, кто аппелирует, говоря что образование котировок по сути процесс ХАОТИЧЕСКИЙ, скажу, что на двумерном пространстве, значения котировок распределялись бы как молекулы газа в шарике - равномерно. Но, в реальности мы видим коллебания цен возле какой-то функции, т.е. процесс СТОХАСТИЧЕСКИЙ.

Резюмирая можно сказать, что несмотря на то, что прогнозирование, казалось бы, являются ЭКСТРАПОЛЯЦИЕЙ данных, нейронные сети, на самом деле, решают задачу ИНТЕРПОЛЯЦИИ, что существенно повышает надежность решения. Предсказание временного ряда сводится к типовой задаче нейроанализа - аппроксимации функции многих переменных по заданному набору примеров - с помощью процедуры погружения ряда в многомерное пространство.

С уважением,

kirillov.

 
От лица скептиков хочу заметить:

Рынок не является динамической системой.
Рынок - это ОТКРЫТАЯ стохастическая система.
ОТКРЫТАЯ означает, что на ее работу влияет множество внешних факторов.
Причем эти внешние факторы не только неконтролируемы (неизмеряемы),
но даже их множество неопределено.

Кроме того, сама эта система непостоянна во времени.
Ее элементы (детали) могут произвольно менять свое поведение,
могут иногда поддаваться коллективному эффекту, а могут не поддаваться.
На их поведение в системе влияют смена сезонов, погода, солнечная активность,
и даже фазы луны ...

Основные детали этой системы - люди.

Отсюда можно сделать вывод, что прогнозирование ЗНАЧЕНИЯ цены,
не только не является ИНТЕРПОЛЯЦИЕЙ данных, но так же не является и ЭКСТРАПОЛЯЦИЕЙ данных
(экстраполяция предполагает наличие динамической системы).

Для стохастических систем можно говорить о прогнозировании их
статистических свойств - вероятностей, функций распределения, матожиданий и т.д.
Но опять же при условии их (ФР, матожиданий, ...) существования и постоянства во времени.
 
Чую как минимум 10 страниц ещё одного обсуждения нейронных сетей на рынке Форекс. ;o)
 
Будущая цена зависит от своих предыдущих блужданий, значит, наиболее вероятное навравление цены спрогнозировать можно. Прогнозировать абсолютное значение - занятие малоблагодарное, поскольку даже в разных ДЦ цены разные. Но в рамках одного ДЦ сеть все же привыкает к его котировками и худо-бедно прогнозирует и абсолютное значение на небольшой горизонт.

Вот спрогнозировать направление можно с гораздо большой вероятностью, чем абсолютное значение :)
 
Mak:
От лица скептиков хочу заметить:

Рынок не является динамической системой.

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

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

С уважением, Kirillov.

 
Здравствуйте! Как и многие здесь присутствующие, в свое время занимался созданием сеток для прогнозирования временных рядов и пришел к следующим умозаключениям:
- использование сеток для прогнозирования курса и даже направления курса оказывается менее эффективным, чем применение простых классических методов технического анализа. Прогнозы относительно простых сеток не превосходят 70-75%.
- для получения качества прогнозирования 75% и выше надо выстраивать сложнейшие самообучающиеся структуры на суперкомпьютерах и потратить годы на разработку этой ботвы и не факт, что все это будет работать.
- сетки целесообразно применять для решения конкретной четко сформулированной тактической задачи, которую трудно описать статистическими или математическими способами. Очень эффективно можно применять для решения тактических задач классификационные сетки и сети по распознаванию образов. Есть некоторые наработки в этой области, но занятие очень трудоемкое и плотно заниматься времени не хватает. Кому интересно пишите, поработаем вместе: favorit_box@inbox.ru

P.S. В файле материалы конференции по нейросетям. Интересно для ликбеза.
Файлы:
 
solandr:
Чую как минимум 10 страниц ещё одного обсуждения нейронных сетей на рынке Форекс. ;o)


И я так думаю ;-)

Зато качество обсуждения будеть на более высоком уравне ;-)

 
VBAG:

- использование сеток для прогнозирования курса и даже направления курса оказывается менее эффективным, чем применение простых классических        методов технического анализа. Прогнозы относительно простых сеток не превосходят 70-75%.

От лица практиков хочу заметить:

Прогнозирование направления курса валюты на 70-75% - это из области фантастики.

Я долгое время занимался таким прогнозированием, работал через букмекера,  который принимал ставки на повышение/понижение курса валюты за фиксированный период времени (интрадей). Совпадение курса в начале и конце периода считалось проигрышем.   Сначала комиссии букмекера были столь незначительные, что стратегии всего с 52% правильных прогнозов давали прибыль.   Сначала я использовал простую систему, основанную на теханализе,  которая давала мне порядка 54-55% выигрышей. 
Потом комиссии букмекера возросли, и пришлось заняться усовершенствованием торговой системы.  Я взял все используемые индикаторы и загнал их в нейросеть.  Процент выигрышей увеличился до 59-60%. Так что есть задачи, в которых нейросети рулят, невзирая на мнения скептиков!
 
Better:
VBAG:

- использование сеток для прогнозирования курса и даже направления курса оказывается менее эффективным, чем применение простых классических методов технического анализа. Прогнозы относительно простых сеток не превосходят 70-75%.

От лица практиков хочу заметить:

Прогнозирование направления курса валюты на 70-75% - это из области фантастики.
Возможно, мы с Вами говорим о разных процентах, но суть не в этом. Широко известные всем MACD, OsMA, Регрессионный анализ и т.д. дают прогнозы ничуть не хуже довольно изощренных сеток. А зачастую и выше. И моя основная мысль была в том, если мы хотим получить качественный скачок в прогнозировании по сравнению с классическими методами необходимо выстраивать сложнейшие самообучающиеся структуры как минимум в МаtLabe или SNNS(а лучше писать свое), а не уповать на красивообернутые проги типа NeuroShellDayTrader(полный бред).
А если мы хотим улучшить качество прогноза например MACD на несколько процентов, то, проще за один вечер на старом добром NeuroSell2 или BrainMaker сделать сетку, скомпелить её в С код(простой набор передаточных функций с коэффициентами) и вкрячить в советник. Работает неплохо. Но проблему как стать миллионером это не решит.
 
VBAG:
Better:
VBAG:

- использование сеток для прогнозирования курса и даже направления курса оказывается менее эффективным, чем применение простых классических методов технического анализа. Прогнозы относительно простых сеток не превосходят 70-75%.

От лица практиков хочу заметить:

Прогнозирование направления курса валюты на 70-75% - это из области фантастики.
Возможно, мы с Вами говорим о разных процентах, но суть не в этом. Широко известные всем MACD, OsMA, Регрессионный анализ и т.д. дают прогнозы ничуть не хуже довольно изощренных сеток. А зачастую и выше. И моя основная мысль была в том, если мы хотим получить качественный скачок в прогнозировании по сравнению с классическими методами необходимо выстраивать сложнейшие самообучающиеся структуры как минимум в МаtLabe или SNNS(а лучше писать свое), а не уповать на красивообернутые проги типа NeuroShellDayTrader(полный бред).
А если мы хотим улучшить качество прогноза например MACD на несколько процентов, то, проще за один вечер на старом добром NeuroSell2 или BrainMaker сделать сетку, скомпелить её в С код(простой набор передаточных функций с коэффициентами) и вкрячить в советник. Работает неплохо. Но проблему как стать миллионером это не решит.

Если иметь точность прогноза порядка 65-70%, достаточно ли этого для зарабатывания на форексе? Получали ли вы такие проценты линейным регрессионным анализом? Или техническим анализом вообще (не на отдельно взятых интервалах а на репрезентативных даных) ?
Причина обращения: