Много говорится об использовании искусственного интеллекта для торговли, как на Уолл-стрит, так и в криптотрейдинге. Тем не менее имеется подозрительное отсутствие фактических данных, поддерживающих тот или иной торговый алгоритм или предоставляющих существенные доказательства того, что эти автоматизированные торговые роботы способны творить на рынках чудеса. Такие гуру трейдинга, как Антон Крейл (Anton Kreil), утверждают, что алгоритмы сделали краткосрочную торговлю, управляемую людьми, пустой тратой времени на фондовом рынке, поэтому возникает вопрос, верно ли то же самое для криптовалюты? Одно из основных отличий заключается в том, что алгоритмы обладают гораздо менее надежной информацией и гораздо большей волатильностью, что может сделать прогнозирование тенденций особенно сложным.
На самом деле тема искусственного интеллекта и анализа рынка настолько обширна, что мы решили посвятить целую исследовательскую работу созданию сложной модели машинного обучения в течение следующих нескольких месяцев в сотрудничестве с талантливыми учеными (следите за обновлениями). Любопытство, однако, побудило меня создать свою собственную простую нейронную сеть здесь просто для того, чтобы проверить жизнеспособность всего проекта и узнать кое-что о прогнозах.
Лично у меня главный вопрос такой: достаточно ли данных внутри рынка, чтобы предсказать его следующий шаг? Достаточно ли чисто технического анализа, чтобы постоянно быть правым в отношении будущего, или факторы вне рынка, такие как политика, основные положения, заголовки и нормативные акты, имеют приоритет над внутренним анализом рынка?
Исходные данные
Эта реализация нейронной сети не направлена на максимизацию прибыли, и при этом никак не претендует на изощренность. Она существует просто для того, чтобы фальсифицировать наши нулевые гипотезы или, по крайней мере, дать нам некоторое указание на то, что они могут быть фальсифицированы:
H0a: Нейронные сети не могут надежно предсказать цену следующего биткоина при открытии.
H0b: Нейронные сети не могут надежно предсказать цену следующего биткоина при закрытии.
H0c: Нейронные сети не могут надежно прогнозировать цены на биткоин через два или три дня в будущем.
Мы выбираем здесь биткоин, потому что его данные через большие временные промежутки получить легче всего, конечно же, на coinmarketcap.
Методология
Мы создали регрессионную нейронную сеть (НС), используя полезную библиотеку нейронной сети R. Цель этой НС - сделать максимально простой прогноз, а именно правильно спрогнозировать цену открытия на следующий день с учетом предыдущих цен открытия, закрытия, максимальных и низких цен, а также объемов торгов за последние 13 дней. Затем НС обучалась с использованием набора данных за один год, а затем тестировалась в 253 предыдущих днях открытия. НС использовала относительно стандартный метод упругого обратного распространения, а также функцию «сумма квадратов ошибок» для расчета своих ошибок на этапе обучения.
Поскольку биткоин является постоянно торгуемым токеном, разница во времени между данными закрытия предыдущего дня и данными открытия следующего дня чрезвычайно мала. В нашем наборе данных об обучении средняя разница между ценами закрытия и открытия на следующий день составляет всего $1,02. Это означает, что прогнозирование цены открытия является одной из самых простых задач. Предположительно, восходящие или нисходящие тренды можно легко перенести на пару минут в будущее.
По этой причине мы решили проверить три разные нулевые гипотезы, каждая из которых заявляет о предсказуемости цен в будущем. Если мы сможем обнаружить, что НС все хуже и хуже прогнозирует события, которые будут удалены во времени, это может стать ценным инструментом для аргументации против обоснованности нашего подхода только к рыночным данным.
Все данные нормализуются с использованием метода масштабирования min-max. То есть все ценовые данные преобразуются в число на интервале [0,1]. Это позволяет НС сходиться намного быстрее и является обычной практикой.
Фаза обучения
Учитывая наши 65 входов и четыре скрытых слоя, НС соглашается на приведенное ниже распределение весов, которое в идеале будет предсказывать следующую цену открытия с достаточной точностью.
Если мы построим прогнозируемые цены открытия в наших данных обучения относительно реальных цен, мы легко увидим, что НС справилась очень хорошо. Несмотря на некоторую гетероскедастичность в верхнем конце распределения, простой линейный регрессионный анализ говорит нам, что значение p, вероятность того, что эта корреляция является случайной, почти равна нулю. Все это говорит нам о том, что наша НС была успешно обучена на нашем наборе данных.
Большая дисперсия в верхней части распределения может быть обусловлена несколькими факторами. Во-первых, в сети явно меньше данных, доступных при более высоких ценовых уровнях, поскольку биткоин потратил всего несколько недель выше отметки в 15 тысяч долларов. Во-вторых, во время резкого скачка цен мы увидели гораздо более быстрые ценовые движения большей величины, которые наша НС, возможно, не сможет с комфортом предсказать.
Тестовые данные варьируются с 14 августа 2016 года по 23 апреля 2017 года. Если мы применим эти данные к НС, чтобы она могла предсказать следующую цену открытия, появляется интересная модель:
Мы можем видеть, что неточность на верхнем уровне цен резко обострилась, показывая, что наша НС изо всех сил пытается предсказать следующую цену открытия. Кроме того, наша НС, похоже, последовательно предсказывает более консервативные изменения цен. Мне трудно объяснить этот уклон в сторону более низкого прогнозирования цен. На самом деле, мы должны ожидать противоположное смещение, потому что наши данные обучения включали пузырь биткоинов за 2017 год, в то время как наши тестовые данные видят гораздо менее драматичное движение цены. Если НС перегружена, она должна делать более агрессивные прогнозы, чем когда-либо, показывая, что какой-то другой фактор может подавлять этот конкретный эффект.
Если мы сейчас попытаемся проверить нашу НС на предмет того, как далеко она может заглянуть в будущее, мы можем бросить ей вызов, чтобы предсказать цену следующего закрытия. В наших тестовых данных средняя разница между сегодняшней ценой закрытия и ценой закрытия следующего дня составляет $2,50, что более чем в два раза больше, чем в нашем первом сете.
Идя еще дальше, мы можем попытаться предсказать цену закрытия через три дня, что приводит к очень запутанному виду НС.
В этой версии мы находим, что средняя разница между прогнозируемой и реальной ценой закрытия составляет 590 долл. США, что, учитывая этот конкретный набор данных, означает ошибку до 46% при более высоком конце цен.
Обсуждение
Кажется очевидным, что наша НС не может реально предвидеть движения цены, либо потому, что в данных, которые могут быть изучены, отсутствуют более крупные шаблоны, либо потому что наша НС слишком проста, чтобы их найти. Тем не менее она может делать более или менее точные предположения о ценах в ближайшем будущем, что, вероятно, является результатом простой экстраполяции восходящих и нисходящих трендов. То есть, если цена уже движется вниз, она, скорее всего, продолжит движение вниз примерно с той же скоростью, а не развернется и внезапно поднимется. Возможно, наша НС даже нашла какое-то общее правило о том, как долго продержатся эти восходящие и нисходящие тренды и когда ожидать разворота цены.
Когда мы пытаемся понять, какие шаблоны обнаружила наша НС или какие шаблоны она способна предвидеть, мы также можем понять ее ограничения. Вместо того, чтобы предоставлять исторические данные о ценах для проверки ее точности, мы можем узнать о ее внутреннем функционировании, предоставив ей свой собственный ранее вычисленный результат. То есть цена следующего дня, рассчитанная НС, теперь будет считаться сегодняшней ценой и т.д. Если мы повторим этот процесс много раз и запишем все вновь прогнозируемые цены, появится паттерн, вписанный в ее нейронные пути.
Эти данные показывают, что НС способна не только распознавать тренды. Она не просто продолжает идти вверх или вниз, в зависимости от направления предыдущей недели, но научилась поворачивать и разворачивать тренд, используя какой-то неизвестный индикатор. Опираясь на себя, это, кажется, сходится вокруг некоторой цены в будущем, поскольку волны восходящего и нисходящего движения цен начинают полностью составляться из предыдущих предсказаний вместо исторических данных.
НС не останавливается в этом кажущемся равновесии, но начинает путать себя с этим сильным колебанием вокруг некоторого гипотетического предела, в конечном счете расходясь и впадая в состояние постоянного, но однородного хаоса. Хотя это мало что говорит нам о ценах на биткоины, я подумал, что этот результат слишком крут, чтобы его исключать.
Заключение
Цена биткоина определяется многими факторами, включая предыдущие цены и модели. Проблема в том, что у нашей НС есть доступ только к пяти типам данных изнутри рынка, но ни к одному снаружи рынка. Таким образом, сила психологии толпы, доверие потребителей, хорошие или плохие заголовки, политические или нормативные решения, размер сети биткоина, количество пользователей и принятие трейдерами для нее совершенно незаметны. Это может быть просто случай, когда одних только внутренних рыночных данных недостаточно, чтобы делать какие-либо долгосрочные прогнозы или предвидеть краткосрочные колебания цен.
Это не означает, что НС в целом не могут предсказать будущее или обыграть рынки. Если более сложной сети удастся включить и должным образом взвесить эти и другие факторы, вполне возможно, что она значительно превзойдет других трейдеров и более простые алгоритмы. Исходя из этих первоначальных результатов, мы мотивированы продвигаться вперед с нашей более серьезной моделью машинного обучения и, надеюсь, узнать больше в процессе. Оставайтесь в курсе.
Было интересно? Ставьте 👍 (like) и подписывайтесь на канал zen.yandex.ru/ff_ru
О нас
ФФ - Главный криптодайджест! Все самые интересные и важные события сразу на русском.