3 минут чтения
22 апреля 2022 г.
Изучаем динамику основных криптовалют и определяем валюты с взрывным ростом
На финансовых рынках стало крайне нестабильно. Сейчас специалисты по финансам и инвестициям серьезно затрудняются в ответе на вопрос “Куда лучше инвестировать?”. И правда, акции российских компаний (даже “голубые фишки”) больше не внушают доверия. Ответы с точки зрения инвесторов мы вам не дадим, конечно, мы все-таки аналитики. Однако, если вы хотите стать счастливым и успешным обладателем криптовалют, то сегодняшняя статья о том, как проанализировать динамику криптовалют, будет очень кстати.
Сегодня мы разберемся в том, как:
1. найти Tоп-5 криптовалют по объему их капитализации и построить графики динамики стоимости
2. сравним изменение цены валюты и капитализации криптовалюты за год
Скрипт для обработки данных
Если вы все же решите парсить отдельно биржу Binance, то помните, что на самой бирже в архивных данных лежат не все периоды и валюты.
Наш скрипт выполнен с помощью CoinGecko API. Этот API усредняет собранные данные с 596 бирж, что помогает избавиться от незначительных колебаний и прочего статистического шума.
Мы проверили несколько вариантов получения данных (в т.ч. и парсинг биржи Binance), но именно этот клиент отдает больше всего информации (например, по капитализации криптовалют).
Подготовка
# импорт библиотек
import requests
from bs4 import BeautifulSoup as bs
import time
import pandas as pd
import urllib.request
import matplotlib.pyplot as plt
Получаем Топ-5 криптовалют по капитализации
# получаем капитализацию валют через coingecko
r = requests.get(«https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=5&page=1», headers = {‘User-Agent’:’Mozilla/5.0′})
if r.status_code == 200:
d = {<br>
‘crypto name’: [i[‘id’] for i in r.json()],<br>
‘symbol’: [i[‘symbol’].upper() for i in r.json()],<br>
‘capitalization’: [i[‘market_cap’] for i in r.json()]<br>
}
df_coingecko = pd.DataFrame(d)
df_coingecko.head()
Динамика изменения стоимости валюты
# получаем динамику стоимости валюты bitcoin в usd за 7 дней
r = requests.get(«https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=7», headers = {‘User-Agent’:’Mozilla/5.0′})
if r.status_code == 200:
d = {
‘datetime’: [i[0] for i in r.json()[‘prices’]],
‘price’: [i[1] for i in r.json()[‘prices’]]
}
df_change = pd.DataFrame(d)
Визуализируем результаты
df_change[‘datetime’] = pd.to_datetime(df_change[‘datetime’],unit=’ms’)
df_change.set_index(‘datetime’, inplace=True)
df_change[‘price’].plot(title=»Bitcoin price changes», ylabel=»Price, $»)
Анализ роста криптовалют за месяц
# получаем данные по 100 монетам с самой большой капитализацией
r = requests.get(«https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&price_change_percentage=30d», headers = {‘User-Agent’:’Mozilla/5.0′})
if r.status_code == 200:
d = {
‘crypto name’: [i[‘id’] for i in r.json()],
‘symbol’: [i[‘symbol’].upper() for i in r.json()],
‘price_change_percentage_30d_in_currency’: [i[‘price_change_percentage_30d_in_currency’] for i in r.json()]
}
df_change = pd.DataFrame(d)
# сортируем
df_change.sort_values(‘price_change_percentage_30d_in_currency’, ascending=False, inplace=True)
<p># находим 5 валют с максимальным ростом за месяц
df_change.head()
# находим 5 валют с максимальным падением за месяц
df_change.tail()
Анализ роста валют за год (включая изменение капитализации)
# получаем данные по 100 монетам с самой большой капитализацией за год
r = requests.get(«https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&price_change_percentage=1y», headers = {‘User-Agent’:’Mozilla/5.0′})
if r.status_code == 200:
d = {
‘crypto name’: [i[‘id’] for i in r.json()],
‘symbol’: [i[‘symbol’].upper() for i in r.json()],
‘price_change_percentage_1y_in_currency’: [i[‘price_change_percentage_1y_in_currency’] for i in r.json()]
}
df_year_change = pd.DataFrame(d)
df_year_change.sort_values(‘price_change_percentage_1y_in_currency’, ascending=False, inplace=True)
Наибольший рост цены за год у валюты Shiba-inu — более 24000 %
plt.rcParams[«figure.figsize»] = (20, 5)
# получаем данные по изменению за год
def get_year_charts(name):
r = requests.get(f»https://api.coingecko.com/api/v3/coins/{name}/market_chart?vs_currency=usd&days=365″, headers = {‘User-Agent’:’Mozilla/5.0′})
if r.status_code == 200:
d = {
‘datetime’: [i[0] for i in r.json()[‘market_caps’]],
‘market_cap’: [i[1] for i in r.json()[‘market_caps’]],
‘price’: [i[1] for i in r.json()[‘prices’]]
#’volume’: [i[1] for i in r.json()[‘total_volumes’]]
}
df_ydynamic = pd.DataFrame(d)
df_ydynamic[‘datetime’] = pd.to_datetime(df_ydynamic[‘datetime’],unit=’ms’)
df_ydynamic.set_index(‘datetime’, inplace=True)
# Рисуем оси — рыночная капитализация (синий цвет по умолчанию) и цена (красный)
plt.figure()
ax = df_ydynamic[‘market_cap’].plot()
ax.set_ylabel(‘market_cap’)
ax1 = df_ydynamic[‘price’].plot(secondary_y=True, style=’r’)
ax1.set_ylabel(‘price’)
ax.set_title(f»{name.capitalize()} market cap and price changes»)
h1, l1 = ax.get_legend_handles_labels()
h2, l2 = ax1.get_legend_handles_labels()
ax.legend(h1+h2, l1+l2)
get_year_charts(‘shiba-inu’)
Обратите внимание на данные по самой быстро выросшей валюте – shiba-inu (SHIB) Есть интересный момент, когда в мае 2021 года цена дала резкий скачок и затем падение, а капитализация практически стояла на одном уровне. И только с середины мая, когда цена уменьшилась после взлета, капитализация стала расти. Возможно, это было связано с историей с Бутериным.
get_year_charts(‘shiba-inu’)
[ Рекомендации ]
Читайте также
[ Связаться ]
Давайте раскроем потенциал вашего бизнеса вместе
Заполните форму на бесплатную консультацию