Использование Python для загрузки исторических данных о ценах на криптовалюту с CoinGecko
4 марта 2023 г.Создайте свою идею блокчейна, используя данные о ценах на криптовалюту.
Криптовалюты резко выросли в цене с момента их появления. Биткойн, первая в мире криптовалюта, достигла исторического максимума в 65 000 долларов США (ноябрь 2021 года) по сравнению с 222 доллара США в январе. 2015 г., или 0,02% от цены пиццы в 2010 г.
Серьезно, 0,02% от цены пиццы. Лазло Ханец купил две пиццы в 2010 году за 10 000 BTC, что по почти пиковым ценам равносильно двум пиццам за 650 миллионов долларов США. Другие, более свежие криптовалюты, такие как Ethereum, Solana и Dogecoin так же смехотворно выросли в цене.
Если вы похожи на меня, вы, возможно, думали о том, как вы можете использовать данные о криптовалюте для создания нового проекта, связанного с блокчейном. Скажем, продукт, который отслеживает цены на криптовалюту. В качестве первого шага в этом путешествии я подумал, что было бы интересно посмотреть, как я могу загрузить некоторые исторические данные о ценах с помощью Python и построить их на своем локальном компьютере.
Если вы не в курсе, Python – это язык программирования, обычно используемый для создания веб-сайтов, анализа данных и машинного обучения. Он используется некоторыми крупными компаниями. Например, Instagram начинался с и до сих пор использует Python и платформу Django для запуска серверную часть их приложения. Если вы новичок в программировании, не беспокойтесь. Вы должны быть в состоянии следовать этим пошаговым инструкциям. Если у вас возникли трудности или у вас есть какие-либо вопросы, напишите их в комментариях ниже.
Поиск API
Для этой задачи нам понадобится API (интерфейс прикладного программирования). Это позволяет двум программам взаимодействовать друг с другом, например, вашей программе Python и программе поставщика данных, например обмену криптовалютой.
Если смотреть в Интернете, Binance, безусловно, является наиболее используемой биржей криптовалют, с 24-часовым объемом торгов в 17 миллиардов долларов США и 1388 торговыми парами, согласно CoinGecko. .
Однако Binance требует длительного процесса проверки личности, прежде чем вы сможете получить доступ к своим данным.
Поэтому для этого процесса, вероятно, лучше использовать более простого поставщика данных, такого как CoinGecko.
Но сначала давайте настроим наш проект Python.
Настройка проекта Python
Прежде чем мы начнем загружать данные из CoinGecko, нам нужно настроить нашу среду Python. Я рассмотрел это более подробно здесь. Но вкратце, чтобы сделать это, нам нужно:
- Установите Python 3. Если вы еще этого не сделали, посетите https://www.python.org/, чтобы получить инструкции по установке.
- Откройте терминал или командную строку и создайте новую папку проекта.
mkdir crypto_data
3. Измените каталог на эту новую папку проекта
cd crypto_data
4. Создайте новую виртуальную среду Python
python3 -m venv venv
Обратите внимание, что python3 – это ваша установка Python. Если установленная вами версия Python называется python, python3.7, python3.9 или как-то еще, используйте ее.
- Активируйте виртуальную среду Python.
(на Mac или Linux)
source venv/bin/activate
(в Windows)
venvScriptsactivate
Если вы застряли здесь, прочтите мою предыдущую статью, которая должна помочь вам настроить Python с виртуальными средами здесь.
Теперь мы должны быть готовы установить необходимые зависимости.
Установка зависимостей
Чтобы загрузить и использовать Coingecko API, нам потребуется установить пакет pycoingecko. А для визуализации наших данных мы скачаем пакет matplotlib. Мы можем сделать это, выполнив следующую команду в нашем терминале или командной строке:
pip install pycoingecko matplotlib
Получение и построение данных
Теперь, когда мы настроили нашу среду, пришло время начать сбор данных. Во-первых, мы импортируем пакеты, которые мы установили, в наш скрипт Python. Затем мы будем использовать API CoinGecko для получения исторических данных о ценах на криптовалюту. Наконец, мы будем использовать matplotlib для визуализации данных.
Вот пример кода для получения данных о цене биткойнов из CoinGecko и построения графика. Создайте файл plot_btc.py и добавьте в него этот код с помощью вашего любимого текстового редактора (например, Visual Studio Code, Vim или блокнота... если вы в отчаянии).
import pycoingecko
import matplotlib.pyplot as plt
import datetime
# Initialize CoinGecko API client
coinGecko = pycoingecko.CoinGeckoAPI()
# Get historical price data for Bitcoin
btc_data = coinGecko.get_coin_market_chart_by_id('bitcoin', 'usd', '365days')
# Extract the dates and prices from the data
dates = [data[0] for data in btc_data['prices']]
# convert unix timestamp to datetime
dates = [
datetime.datetime.fromtimestamp(date/1000)
for date in dates
]
prices = [data[1] for data in btc_data['prices']]
# Plot the data
plt.plot(dates, prices)
plt.xlabel('Date')
plt.ylabel('Price (USD)')
plt.title('Historical Bitcoin Price (USD)')
plt.show()
Этот код будет получать ежедневные данные о биткойнах в долларах США за год и отображать цену с течением времени. С помощью этих данных мы можем попытаться изучить закономерности и тенденции, влияющие на цену криптовалют.
Теперь давайте запустим этот код с помощью следующей команды:
python plot_btc.py
и мы должны увидеть следующий красивый сюжет!
Поздравляем! Вы только что стали аналитиком и разработчиком криптовалютных данных-любителей! Теперь вы можете использовать эти данные для любых целей, которые вы себе представляете.
Если вас интересуют не только цены на криптовалюту, рассмотрите возможность проверить Chainspy, веб-сайт, который мы с другом создаем. Мы стремимся сделать данные блокчейна прозрачными и доступными с помощью простых, удобных диаграмм и API. Наш сайт предлагает информацию о скорости транзакций, использовании и применении различных криптовалют, предоставляя вам всестороннее представление о том, что происходит в блокчейнах.
Мы также отслеживаем ход разработки нашего сайта на Indiehackers. Подумайте о том, чтобы взглянуть на него, если вам интересно.
Я надеюсь, что эта статья была немного забавной и познавательной. Спасибо за прочтение!
Также опубликовано здесь .
Оригинал