Изучаем динамику основных криптовалют и определяем валюты с взрывным ростом - LEFT JOIN

Свяжитесь с нами в любой удобной для вас форме

Менеджер

Написать в телеграмм

Онлайн
Телеграмм
или
Заполните форму

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’)
587 просмотров

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

[ Рекомендации ]

Читайте также

1 минута чтения

*

21 марта 2021

Обнаружение статистических выбросов в R

3 минут чтения

*

26 октября 2021

How to: YouTube API

[ Дальше ]