Нейросеть для предсказания цены биткоина своими руками


Оглавление (нажмите, чтобы открыть):

Нейросеть научили предсказывать обвал биткойна

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

«Идея выросла из дискуссий внутри нашей команды о том, лопнет ли «мыльный пузырь» под названием биткойн или же его стоимость продолжит расти. Поскольку это тема, которой интересуются многие люди, мы решили, что было бы неплохо попытаться предсказать изменения до того, как они произойдут, чтобы вы всегда оставались на шаг впереди», — рассказал Саад Эль Хаджаджи, один из создателей сервиса.

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

На данный момент Bitcoin Bubble Burst отправляет свои предсказания только по электронной почте. Также разработчики работают над системой SMS-уведомлений и рассматривают возможность выпуска мобильного приложения.

«Сейчас мы сосредоточены только на биткойне и будем смотреть, что из этого получится. Но в будущем мы могли бы работать и с другими криптовалютами. По мере того, как наша модель прогнозирования со временем будет улучшаться, мы можем рискнуть начать работать с другими «пузырями»», — отметил Саад Эль Хаджаджи.

Как обучать нейронную сеть для предсказаний действия агента?

Я начал изучать машинное обучение. Для этого я использую python и scikit-learn.

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

После обучения я хочу получить вероятности совершения действия агента на событие. Т.е. если я на событие получу ответ — 0.3 0.7, это означает предсказание действий агента в котором предсказывается что 1 действие агент совершит с вероятностью 30%, а второе действие соответственно с вероятностью 70%.

Я для обучения пробовал применять разные регрессионные модели, например LinearRegression или RandomForestRegressor. В результате я вроде даже получаю данные нужного вида.

Так вот вопрос, какие модели обучения правильно применять для такой задачи. И самое главное как оценивать результат выполнения. Ведь если ответом будет предсказание 0.02 0.98, а агент все таки совершит первое действие (1 0), то это не ошибка, просто событие с малой вероятностью. Для моделей я как понимаю применяется оценка среднеквадратической ошибки. Такая оценка ведь не подходит для данной задачи?

Прогнозирование фондового рынка на Python с помощью Stocker

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

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

Один день против 30 лет: во что бы вы вложили свои деньги?

В любой задаче, не только в Data science, если не удалось достичь желаемого, есть три варианта:

  1. Изменить результаты так, чтобы они выглядели в выгодном свете;
  2. Скрыть результаты — никто не заметит провала;
  3. Показать результаты и методы всем, чтобы люди могли чему-то научиться и, возможно, предложить улучшения.


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

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

Stocker для прогнозирования

Stocker — инструмент Python для прогнозирования рынка. Как только будут установлены необходимые библиотеки (см. документацию), можно запустить Jupyter Notebook в той же папке, что и скрипт, и импортировать класс Stocker:

Класс теперь доступен для сеанса Jupyter. Создадим объект класса Stocker, передавая ему любой действительный тикер, например, ‘AMZN’ (вывод программы выделен жирным шрифтом):

Теперь к нам в распоряжение попали 20 лет ежедневных данных по акциям Amazon для исследований! Stocker построен на финансовой библиотеке Quandl и содержит более 3000 курсов акций для использования. Построим простой график курса, вызывая метод plot_stock:

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

Обратите внимание, что прогноз (зеленая линия) содержит доверительный интервал. Он отражает «неуверенность» модели в предсказании. В данном случае ширина доверительного интервала устанавливается с уровнем доверия 80%. Доверительным называют интервал, который покрывает неизвестный параметр с заданной надёжностью. Он расширяется с течением времени, потому что оценка имеет большую неопределенность по мере того, как она удаляется от имеющихся данных. Каждый раз, делая прогноз, следует включать этот доверительный интервал. Хотя большинство людей, как правило, хотят получить простой численный ответ, прогноз отражает то, что мы живем в неопределенном мире!

Мастер Йода рекомендует:  Подборка материалов по разработке под Android

Дать предсказание нетрудно: достаточно выбрать некоторое число, и это будет предположением о будущем (возможно, я ошибаюсь, но это всё, что делают люди с Уолл-стрит). Но этого мало. Чтобы доверять модели, нужно оценить ее точность. Для этого в Stocker существует ряд методов.

Оценка прогнозов

Чтобы вычислить точность прогнозов, нам нужен обучающий и тестовый наборы данных. Для тестового набора необходимо знать ответы — фактическую цену акций, поэтому мы будем использовать данные курса за прошлый год (2020, в нашем случае). Во время обучения мы не позволим модели видеть ответы тестового набора, поэтому используем наблюдения за предшествующие три года (2014-2020). Основная идея обучения с учителем (supervised learning) заключается в том, что модель изучает закономерности и отношения в данных из обучающего набора, а затем умеет правильно воспроизводить их на тестовой выборке.

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

  • средняя численная ошибка в долларах на тестовом и обучающем наборе;
  • процент времени, когда мы правильно предсказали направление изменения цены;
  • процент времени, когда фактическая цена попала в пределы прогнозируемого доверительного интервала в 80%.

Все вычисления автоматически выполняются Stocker с приятным визуальным сопровождением:

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

Если наши первоначальные попытки не увенчались успехом, мы можем нажимать эти своеобразные рычаги и кнопки, чтобы заставить модель работать лучше. В Prophet можно настроить множество параметров, причем наиболее важным является коэффициент масштаба распределения весов для контрольных точек (changepoint prior scale). Он отвечает за набор весов, который накладывается на развороты и флуктуации тренда.

Настройка выбора контрольных точек


Контрольные точки (changepoints) — это места, где временные ряды значительно меняют направление или скорость изменения цены (от медленно возрастающего до все более быстрого или наоборот). Коэффициент масштаба распределения весов для контрольных точек (changepoint prior scale) отражает количество «уделенного внимания» точкам изменения курса акций. Это используется для контроля над недообучением и переобучением модели (также известный как bias-variance tradeoff).

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

Модель в таком случае недостаточно «внимательно» следит за обучающими данными и не выявляет основные закономерности. Как правильно подобрать этот параметр — вопрос скорее практический, нежели теоретический, и здесь будем полагаться на эмпирические результаты. Класс Stocker содержит два разных метода для выбора соответствующего значения: визуальный и количественный. Начнем с визуального метода.

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

При самом низком значении prior scale (синяя линия) значения недостаточно близко накладывается на обучающие данные (черная линия). Они словно живут своей жизнью, лишь немного приближаясь возрастающему тренду истинных данных. Напротив, самый высокий prior (желтая линия) сильнее приближает модель к учебным наблюдениям. Значение по умолчанию составляет 0.05, которое находится где-то между двумя крайностями.

Обратите внимание также на разницу в неопределенности (закрашенные интервалы) для разных коэффициентов масштаба:

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

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

Теперь, когда у нас есть представление о влиянии prior, мы можем численно оценить разные значения с помощью набора для обучения и проверки:

Мы должны быть осторожны — данные валидации не должны совпадать с тестовой выборкой. Если бы это было так, мы бы создали модель, лучше «подготовленную» для тестовых данных, что ведет к переобучению и невозможности работать в реальных условиях. В общей сложности, как это обычно делается в машинном обучении, используются три набора: для обучения (2013-2015), для валидации (2020) и тестовый набор (2020).

Мы оценили четыре priors с четырьмя показателями:

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

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

Валидационная проверка Stocker выдает два графика, иллюстрирующие эти идеи:

Так как наивысшее значение prior дало самую низкую ошибку тестирования, следует увеличить prior scale еще сильнее, чтобы попытаться улучшить результаты. Поиск можно уточнить, передав дополнительные параметры методу валидации:

Усовершенствованные кривые ошибок обучения и теста

Ошибка тестового набора сводится к минимуму при prior = 0,5. Установим атрибут объекта Stocker соответствующим образом:


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

Оценка усовершенствованной модели

Теперь, когда наша модель оптимизирована, оценим ее еще раз:

Выглядит гораздо лучше! Это показывает важность оптимизации модели. Использование значений по умолчанию дает разумное первое приближение. Но нужно быть уверенным, что используются правильные настройки, так же как мы пытаемся оптимизировать звук стерео, регулируя Balance и Fade (извините за устаревший пример).

«Входим в рынок»

Прогнозирование, безусловно, увлекательное занятие. Но настоящее удовольствие — наблюдать, как эти прогнозы будут отыгрывать на реальном рынке. Используя метод evaluate_prediction, мы можем «играть» на фондовом рынке, используя нашу модель за период оценки. Будем использовать описанную стратегию и сравним с простой стратегией buy and hold в течение всего периода.

Правила нашей стратегии просты:

  1. Каждый день, когда модель предсказывает рост акций, покупаем акции в начале дня и продаем в конце дня. Когда прогнозируется снижение цены, мы не покупаем акции.
  2. Если покупаем акции, и цены увеличиваются в течение дня, мы получаем соответствующую прибыль кратно количеству акций, которые у нас есть.
  3. Если покупаем акции, а цены уменьшаются, мы теряем кратно количеству акций.
Мастер Йода рекомендует:  Управление рассылками прямо в почте от Яндекса

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

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

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

Играйте только на ненастоящих деньгах!

Я знал, что наша модель может это сделать! Тем не менее, она побила рынок только когда у нас была возможность выбрать период тестирования.

Прогнозы на будущее

Теперь, когда у нас есть достойная модель, можно делать предсказания на будущее, используя метод predict_future():

Прогноз на 10 дней Прогноз на 100 дней

Модель в целом смотрит на Amazon с оптимизмом, как и большинство «профессионалов».


Прогноз популярного сервиса Tipranks.com — найдите 10 отличий от предсказания со Stocker

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

Всем, кто хочет опробовать код, или поэкспериментировать со Stocker, добро пожаловать на GitHub.

Нейросеть для предсказания цены биткоина своими руками. #[email protected]

Разбираем с небольшой проект для сбора и анализа данных из социальных сетей с целью предсказать поведение цены биткоина в реальном времени.

Код, о котором пойдет речь продолжает Youtube-видео об автоматическом прогнозировании цены на биткоин.

Нейросеть для предсказания цены биткоина своими руками

Разбираемся с небольшим проектом для сбора и анализа данных из социальных сетей с целью предсказать поведение цены биткоина в реальном времени.

Страница поста от канала Библиотека программиста

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме

Пожаловаться

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме

Исследование: может ли нейросеть предсказывать курс криптовалюты на рынке?

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

Об обоих по отдельности

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

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

Существует 2 типа алгоритмов онлайн-торговли. Они характеризуются различными скоростями, показателями оборота, инструментами электронного рынка. Хотя не существует единого определения высокочастотной (High-frequency, HFT) и низкочастотной (Low-frequency, LFT), торговли принято различать по скорости соединения. Моргание человеческого глаза длится от 300 до 400 миллисекунд. За это время при HFT проходит около 400 заказов, поскольку обмен данных настроен только с одним сервером. Но для криптовалют централизованная система не подходит, так как требует новейшего и быстрого обеспечения, которое доступно не всем. LFT не требует особого оборудования, не привязывается к одному серверу, потому она и стала основой крипто-рынка. Процесс управляется децентрализованно и хаотично, в чём и состоит его главное преимущество.


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

Возьмём во внимание то, что люди уже пытались применить тип машинного обучения «Long Short Time Memory (LSTM)» для этой цели.

«Долгосрочная Короткая Память» — это модель, которая обрабатывает старые данные, чтобы дать прогноз на будущее. Давайте проиллюстрируем это на примере.

Если я спрошу у вас следующую цифру после «6», естественно вы назовёте «7». Но почему бы не назвать «8», если считать «N+2»? Если я спрошу следующее число после «3, 6, …», вы скорее всего ответите «9» или «12», потому что связь между 3 и 6 может быть «N+3» или «N*2». Затем я скажу назвать следующее число после «0,3,6», и вы точно увидите закономерность «N+3». Так в мозгу реализуется серия простых проверок и вычислений. Вы использовали известные значения, чтобы предсказать следующие. Тем не менее, вам понадобилось определённое количество цифр в примерном диапазоне, чтобы предсказать правильный результат или, по крайней мере, наиболее вероятный. Мы способны делать это для большого разнообразия «данных». Например, наблюдая мяч, подброшенный в воздух, легко предсказать, где он упадет, потому что мозг анализирует его положение. У LSTM принцип действия немного сложнее, но основы те же: достаточно загрузить «хронологический ряд», чтобы нейронная сеть нашла следующее вероятное значение в нём.

Данные

Исследователи использовали программное обеспечение для получения данных от «Bittrex» и внесли их в таблицу.

В финансовой среде такой формат называется «тикер» — это все рыночные переменные в момент времени t. В нашем случае рассматриваемый рынок криптовалюты — это пара активов, таких как BTC и NEO. Если сравнить с обычными деньгами по ценности, они аналогичны евро и доллару США.

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

Для прогнозирования LSTM было предоставлено три действия:

— купля (зеленая точка)

— продажа (красная точка)

— ожидание (синяя линия)

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

Анализируя этот график, нейросеть составляет ряд числовых значений и ищет закономерность. Но поскольку «ждать» наблюдается гораздо больше, чем «купить» или «продать», возникает дисбаланс. Нейросеть можно обучить только при равномерном распределении разных типов данных, что и попытались сделать исследователи. Настроив гиперпараметры, в результате долгих тренировок они смогли достигнуть точности в 80%, сравнивая работу LSTM и текущую ситуацию на рынке криптовалют. Но подправлять, ориентируясь на настоящее время, и безошибочно предсказывать – разные вещи.

Мастер Йода рекомендует:  Множественные уязвимости в Invision Power Board

Результат

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

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

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

Предсказание курсов криптовалют


Автор: BITCOIN UP, 15 дек 2020, 19:15 в Флейм

Рекомендованные сообщения

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Войти

Уже зарегистрированы? Войдите здесь.

Сейчас на странице 0 пользователей

Нет пользователей, просматривающих эту страницу.

НЕЙРОСЕТЬ BITCOIN BUBBLE BURST ПРЕДУПРЕДИТ ПРО ОБРУШЕНИЕ БИТКОИНА

Многие серьёзные бизнесмены и аналитики избегают покупок криптовалют, указывая на то, что все они — обычный раздутый пузырь, который вот-вот лопнет, а все вокруг пожалеют, что вложили в это дело деньги. Понятно, что такими заявлениями они нервируют тех, кто уже закупился биткоинами, а нерешительных людей, которые, может, только собираются прикупить себе немножечко или начать майнить, заставляют отказаться от затеи. Тем не менее время идёт, а «пузырь» всё не лопается и дорожает. Кто же может помочь, вовремя предупредив нас об опасности обрушения курса Биткоина? Конечно же ИИ! Сервис Bitcoin Bubble Burst обещает предупредить всех о том, что скоро всё рухнет.

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

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

Нейросеть Bitcoin Bubble Burst предупредит про обрушение Биткоина

Многие серьёзные бизнесмены и аналитики избегают покупок криптовалют, указывая на то, что все они — обычный раздутый пузырь, который вот-вот лопнет, а все вокруг пожалеют, что вложили в это дело деньги. Понятно, что такими заявлениями они нервируют тех, кто уже закупился биткоинами, а нерешительных людей, которые, может, только собираются прикупить себе немножечко или начать майнить, заставляют отказаться от затеи. Тем не менее время идёт, а «пузырь» всё не лопается и дорожает. Кто же может помочь, вовремя предупредив нас об опасности обрушения курса Биткоина? Конечно же ИИ! Сервис Bitcoin Bubble Burst обещает предупредить всех о том, что скоро всё рухнет.

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

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


Предсказание курса акций Газпрома с помощью нейронной сети на R

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

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

Синяя линия — это предсказание динамики. Нейронная сеть думала, что будет двойное дно, после чего цена пойдет примерно на 137.

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

Цена действительно пошла на 137, но двойного дна не было, а было обновление лоя на 121 и уже потом поход на 137.

Я думаю, нейронная сеть может предсказывать примерную динамику, но не точно. Хотя, возможно это случайность, что она угадала отскок до 137.

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

  • Ключевые слова:
  • алготрейдинг,
  • нейронные сети

Я думаю, нейронная сеть может предсказывать примерную динамику, но не точно

SciFi,
1. нейросети крайне плохо работают с абсолютными данными — лучше использовать на вход логарифм приращения цен Ln(Р2/Р1).
2. нейросети с функцией активации гиперболического тангенса лучше справляются с динамическими рядами, и входные данные необходимо отнормировать(привести к разбросу входных данных в диапазон [-1;+1]).

3. 40 дней «пилы» предскажут только продолжение «пилы», а не смену тренда. Обработай предварительно входные данные — примени zig-zag и подавай на вход приращения между экстремумами (не важно сколько времени между ними прошло) — тогда сеть будет искать фрактальные закономерности, волны, паттерны, фигуры типа «двойное дно«, «гип» и т.д.

4. Если перейдёшь на приращения и экстремумы, то можешь спокойно скормить сети любые инструменты (лучше брать некоррелирующие), а не только Газпром, и любой период, тогда у сетки будет боОольшая обучающая выборка, и меньше возможностей попасть в локальный минимум.

5. с выхода не требуй больше 2-3 значений.

За труд и пример спасибо!

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

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

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

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

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