Копипаст

Копипаст | Как разработать алгоритм для анализа криптовалют

С взрывным ростом популярности криптовалют выросло и количество попыток понять механизм их работы, отличия друг от друга и список инструментов, которые могут помочь в прогнозировании их движения на рынке. Так, многие игроки обращаются к количественному анализу и криптовалютным моделям, представленным в виде Excel-таблиц со множеством вводных данных, как к одному из самых надежных инструментов для оценки и прогнозирования тенденций крипторынка. Однако, по мнению Даниеля Чена, основателя проекта OpenToken и ведущего инженера компании Andreessen Horowitz, данные модели крайне редко отображают действительное положение вещей на рынке.

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

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

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

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

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

Как разработать алгоритм для анализа криптовалют

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

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

Главной проблемой  в таблице CVS является ее размерность, которая заключается в количестве строк в соотношении к количеству столбцов. Самым оптимальным вариантом была бы таблица с большим количество строк и маленьким количеством столбцов. Например, в Netflix Challenge — открытом соревновании на лучший алгоритм предсказания оценки фильмов — набор данных состоял из 1.4 миллиона строк и трех столбцов (пользователь, фильм, рейтинг).

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

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

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

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

Как разработать алгоритм для анализа криптовалют Число коммитов и Рыночная капитализация 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² к единице, тем сильнее корреляция. К счастью, в строке «Число пользователей Reddit и Рыночная капитализация» значение R² ближе — 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 ведет к понижению рыночной капитализации. Причиной тому является, скорее, ввод ошибочных данных, а не их обратная зависимость, о чем можно судить по последнему набору р-значений:

Как разработать алгоритм для анализа криптовалют Число коммитов и Рыночная капитализация р-значение: 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 не дает достаточных данных для создания по-настоящему надежного прогноза движения цены.

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

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

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

И итоге можно сделать три важных вывода:

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

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

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

В заключении Даниель Чен также предоставил ссылку на написанный им код, благодаря которому можно протестировать различные криптовалютные модели и их вводные данные.
=
crypto.by/kak-razrabotat-algoritm-dlya-analiza-kriptovalyut/
=
Мой канал Telegram: t.me/cryptothrash
=
Список перспективных крипто-проектов (периодически обновляется) : 
goo.gl/u5hgK2
=
Все свежие раздачи бесплатных токенов (айрдропы):
goo.gl/uvLnVh

=
«Облачный майнинг».
HASHFLARE: t.co/wk7ETJPwkg = 01.09.2017 изменил все ранее купленные контракты с бессрочных на годовые
Discount PromoCode HF18INET404 = minus 30%
GENESIS MINING: t.co/BJOb65tFeZ = Бессрочные контракты SHA-256, Промокод на скидку 3% — Uv31rm
CCG Mining: t.co/MlRRKzr71G = Бессрочные контракты SHA-256
NuVoo Mining: t.co/ofRkZZz2rb
=
Аппаратные крипто-кошельки.
LEDGER NANO S: goo.gl/i4XNom

=
Кошельки и платёжные системы.
PAYEER: goo.gl/tDavne (обмен BTC,ETH,USD,EUR,RUR)
ADVCASH: goo.gl/qTy5z5

Cryptopay: t.co/cBftsLacoF
=
Рублёвые крипто-биржи.
YOBIT: goo.gl/irx0NL

EXMO: goo.gl/cMhZR6
CEX: goo.gl/b7A3hS
= Margin Trading 
=
Обмен криптовалют на фиат.
LOCALBITCOINS: goo.gl/v2hNf6
BTC banker: goo.gl/59Z9QD
ETH_CHANGE_BOT: goo.gl/dgBgJr

=
Перспективные крипто-проекты.
CryptF: t.co/IvdLVdWNqw
BitPlay Club: t.co/xY9fK2PaDH
TrueFlip: t.co/nbnoTjrn7X
Crypto — Forex Club Libertex: t.co/tAGSg1VS2S
Bit24: t.co/QJtZMu2Z6f
DATECOIN ICO: t.co/r3d9QmDUUf
Akaiito ICO: t.co/GafrGxfYg0

=

★1
14 комментариев
я бы сделал так, что за любую транзакцию крипты идет комисся… которя делится на всех держателей крипты...
т.е. сам факт владения криптой приносит профит...
чем больше оборот — тем больше профит каждого участника...
размер комиссов устанавливается голосованием 
avatar
ves2010, и все начнут делать бесполезные транзакции с одного своего кошелька на другой
это называется — спам
сеть ляжет
так уже было в декабре 2017 в битке и эфире
От Лонга!, ты неправ… при транзакци с тебя списывается например 1% от суммы транзакции… который делится на всех участников по количеству крипты… т.е например у тебя 10% всей криты… получишь 0.1% 

а счас комисс берут посредники… а держатели крипты от этого не имеют профита
avatar
ves2010, аааа !
а я сначала не понял !
я подумал, что система будет выплачивать пользователям комиссию за транзакции
=
но и тут у меня есть возражение
сейчас комис берут не посредники — а валидаторы
т.е. полезные для надёжности системы звенья цепи перемещения ценности
От Лонга!, а зачем валидаторы, если есть блокчейн??? т.е пользователи должны сами поставлять инфраструктуру для транзакций... 
avatar
ves2010, у монет с PoW валидаторы — это майнеры
а у монет с PoS валидаторы — это холдеры
Бузова вводит свою валюту Бузкойн? Что думаешь?
Владимир Гончаров, думаю, что с различными целями преднамеренно вбрасывается недостоверная информация, содержащая слова «коин», «блокчейн» и «крипто»
например — крипто-рубль, эль петро
бузкоин — из этой-же серии
От Лонга!, это же Бузова, она любое гавно в инстаграме пиарит и по сути, она и есть все гавно что есть в шоу бизнесе и вся лож это она, поет под фанеру и люди покупают её концерты.
Владимир Гончаров, труден ее хлеб )))
читал недели 2-3 назад.Сложно и интересно...-ПО ПЛЫЛ К КОНЦУ)))
avatar
maikl sake, нужно для анализа всех этих данных использовать нейронные сети

От Лонга!, был бы ботик)))чтоб сам считал))
avatar
maikl sake, эх, жаль что я не программист

теги блога Сберегатель (Сэр Лонг)

....все тэги



UPDONW
Новый дизайн