Разработка алгоритма анализа криптовалют

С взрывным ростом популярности криптовалют, количество попыток понять механизм их работы увеличилось, различия между ними и список инструментов, которые могут помочь предсказать их движение на рынке. Поэтому многие участники обращаются к моделям количественного и криптовалютного анализа, представленным в виде таблиц Excel с большим объемом входных данных, в качестве одного из самых надежных инструментов для оценки и прогнозирования тенденций на рынке криптовалют. Однако, по  мнению Даниэля Чена, основателя проекта OpenToken и главного инженера Андреессена Горовица, эти модели редко отражают реальную ситуацию на рынке.

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

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

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

Работая с цифрами

В качестве примера Чен рассмотрел популярную таблицу CRV Crypto Research, в которой представлены данные из 51 крупнейшей криптовалюты на рынке криптовалют. Эта таблица является одной из самых подробных, поскольку она отслеживает критерии криптовалюты, такие как частота использования базы данных исходного кода (на Github), активность членов сообщества (подписчиков на каналах Reddit и Telegram), листинг на биржах криптовалюты, присутствие в социальных сетях. сети и медиа (посты и сообщения в твиттере) и тд.

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

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

Имея эти данные, вы можете использовать простой код, чтобы прочитать его и перевести из таблицы CVS в более удобный формат для работы. Поэтому Чен представил серию входных данных и список значений, которые он хотел бы проверить и найти возможную корреляцию между ними.
Однако, прежде чем начать работать с числами, нужно помнить одну важную вещь. Следующая таблица содержит 51 строку и 21 столбец, которые содержат достаточно большой объем данных для анализа. Однако, чтобы получить действительно полезные результаты, вам нужно гораздо больше информации. Например, база данных ImageNet, используемая для обучения компьютерным визуальным алгоритмам, содержит более 14 миллионов изображений.

Основной проблемой в таблице CVS является ее размер, то есть количество строк по отношению к количеству столбцов. Лучшим вариантом будет таблица с несколькими строками и несколькими столбцами. Например, в конкурсе Netflix Challenge — открытом конкурсе на лучший алгоритм прогнозирования рейтингов фильмов — набор данных состоял из 1,4 миллиона строк и трех столбцов (пользователь, фильм, рейтинг).
Чем сложнее модель и чем больше столбцов она содержит, тем больше данных (или строк) данных должно быть предоставлено для действительно надежных результатов. Почему Чен установил правило — строк должно быть как минимум в десять раз больше, чем столбцов. Таблицы с примерно одинаковым количеством строк и столбцов должны обрабатываться с осторожностью.
Однако в показанном примере строка 51 не беспокоит, чтобы не усложнять объяснение и в то же время не терять статистическую значимость, необходимо проверить корреляцию между парами данных, что также называется двумерной  линейной регрессией..

Рассмотрим данные

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

 Число коммитов и Рыночная капитализация R^2: 0.138249

 Число участников и Рыночная капитализация R^2: 0.130249

 Число коммитов в месяц и Рыночная капитализация R^2: 0.002144

 Число участников в месяц и Рыночная капитализация  R^2: 0.091301

 Число участников в топовых Telegram-каналах и Рыночная капитализация R^2: 0.159053

 Число пользователей Reddit и Рыночная капитализация R^2: 0.806415

 Листинг на криптобиржах и Рыночная капитализация R^2: 0.298320

 Число в ТОП-5 биржах и Рыночная капитализация R^2: 0.150254

 Число хэштегов в твитах (30 дней) и Рыночная капитализация R^2: 0.368655

 Число новостных упоминаний (30 дней) и Рыночная капитализация R^2: 0.771270

 Число подписчиков в твиттере и Рыночная капитализация  R^2: 0.443522

Значения справа являются коэффициентами определения или квадратом коэффициента корреляции выборки. Коэффициент детерминации обычно считается основным показателем, отражающим показатель качества регрессионной модели, который описывает взаимосвязь между зависимой и независимой переменными модели. Пока входные данные соответствуют определенным параметрам, мы можем предположить, что наиболее вероятное значение корреляции представлено в строках.
Например, в строке «Количество утверждений и рыночная капитализация» R² составляет 0,138249, и это будет выглядеть так:

Наверное, нам это не очень подойдет, так как мы стремимся увидеть следующий график с вводными данными:

Чем ближе значение R² к единице, тем сильнее корреляция. К счастью, значение R² в строке «Количество пользователей Reddit и рыночная капитализация» ближе к 0,81, а количество ссылок на новости (30 дней) и рыночной капитализации составляет 0,77. Рассмотрим первый график «Количество пользователей и рыночная капитализация Reddit»:

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

 Число коммитов и Рыночная капитализация R^2: 0.083247

 Число участников и Рыночная капитализация R^2: 0.094291

 Число коммитов в месяц и Рыночная капитализация R^2: 0.091181

 Число участников в месяц и Рыночная капитализация  R^2: 0.151921

 Число участников в топовых Telegram-каналах и Рыночная капитализация R^2: 0.130186

 Число пользователей Reddit и Рыночная капитализация R^2: 0.357688

 Листинг на криптобиржах и Рыночная капитализация R^2: 0.303370

 Число в ТОП-5 биржах и Рыночная капитализация R^2: 0.395840

 Число хэштегов в твитах (30 дней) и Рыночная капитализация R^2: 0.426500

 Число новостных упоминаний (30 дней) и Рыночная капитализация R^2: 0.484609

 Число подписчиков в твиттере и Рыночная капитализация  R^2: 0.353295

Однако это сказалось на значении корреляции: например, R² в строке «Количество пользователей Reddit и рыночная капитализация» снизился с 0,81 до 0,36. Однако новые ценности не обязательно плохие. Чтобы проверить степень этого «не обязательно плохо», вы можете проверить статистические гипотезы относительно коэффициентов регрессии. Таким образом, статистическая гипотеза позволит вам сравнить вашу модель с параллельной моделью. Если в результате проверки станет очевидным, что добавление значения «Пользователи Reddit» значительно улучшит модель, мы, безусловно, можем сказать, что они связаны между собой.
В этом случае нам также необходимо рассмотреть значение р-значение, используемое в тесте статистической гипотезы. Это значение получается из F-теста, также называемого тестом Фишера, который показывает вероятность случайного получения наших данных, а также взаимосвязь между значениями «пользователи Reddit» и «рыночная капитализация».

Большинство академических исследований хотят обнаружить р-значение меньше 0.05 или 0.01:

 Число коммитов и Рыночная капитализация р-значение: 0.074861

 Число участников и Рыночная капитализация р-значения: 0.057240

 Число коммитов в месяц и Рыночная капитализация р-значения: 0.061724

 Число участников в месяц и Рыночная капитализация р-значения: 0.014175

 Число участников в топовых Telegram-каналах и Рыночная капитализация р-значения: 0.009292

 Число пользователей Reddit и Рыночная капитализация р-значения: 0.000004

 Листинг на криптобиржах и Рыночная капитализация р-значения: 0.000028

 Число в ТОП-5 биржах и Рыночная капитализация р-значения: 0.000001

 Число хэштегов в твитах (30 дней) и Рыночная капитализация р-значения: 0.000000

 Число новостных упоминаний (30 дней) и Рыночная капитализация р-значения: 0.000000

 Число подписчиков в твиттере и Рыночная капитализация р-значения: 0.000007

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

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

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

Это становится еще более очевидно, если убрать все резко отклоняющиеся значения:

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

 Число коммитов и Рыночная капитализация р-значение: 0.839070

 Число участников и Рыночная капитализация р-значения: 0.709478

 Число коммитов в месяц и Рыночная капитализация р-значения: 0.227949

 Число участников в месяц и Рыночная капитализация р-значения: 0.615143

 Число участников в топовых Telegram-каналах и Рыночная капитализация р-значения: 0.019781

 Число пользователей Reddit и Рыночная капитализация р-значения: 0.810512

 Листинг на криптобиржах и Рыночная капитализация р-значения: 0.311267

 Число в ТОП-5 биржах и Рыночная капитализация р-значения: 0.512172

 Число хэштегов в твитах (30 дней) и Рыночная капитализация р-значения:  0.930046

 Число новостных упоминаний (30 дней) и Рыночная капитализация р-значения: 0.698512

 Число подписчиков в твиттере и Рыночная капитализация р-значения: 0.821432

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

Какую модель все же стоит использовать?

Мы можем сказать только один анализ входных данных: таблица CRV не предоставляет достаточно данных, чтобы сделать действительно надежный прогноз движения цены.

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

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

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

И, наконец, есть три важных вывода:

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

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

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

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

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

bit44.org

Обязательно подпишитесь на наш Telegram канал

ПОДПИСЫВАЮСЬ
ПОТОМ