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

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

О Binance: путешествие в эпицентр криптоторговли

В обширной сфере криптовалют, где объемы торгов говорят о многом, господствует одно имя — Binance. Основанная в 2017 году Чанпэн Чжао, Binance является мировым гигантом, контролирующим самый высокий ежедневный объем торгов на рынке криптовалютных бирж. Примечательно, что опыт Чжао в разработке программного обеспечения для высокочастотной торговли заложил основу для этого колоссального начинания.

Для тех, кто хочет погрузиться в технические детали, Binance предлагает обширную документацию по API, которая раскрывает тонкости их платформы. Для более подробной информации ознакомьтесь с их официальной документацией по API: Документация по API Binance.

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

Каждая свеча ярко представляет собой отдельный временной интервал, будь то день, час или даже мимолетная минута. Какие тайны он раскрывает? Точная информация о ценах открытия, закрытия, максимумах и минимумах за этот период времени. Визуализируйте каждый подсвечник как холст с прямоугольным телом, увенчанным двумя загадочными линиями — верхней и нижней тенями, или фитилями.

Чтобы понять основы этого анализа и процесса сбора данных, внимательно посмотрите на спецификации конечных точек данных: Binance API — данные Kline/Candlestick.

Изучение тенденций с помощью библиотеки mplfinance

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

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

#importing the necessary libraries for this project
import pandas as pd
import datetime
import requests

import mplfinance as mpf # If you haven't done so previously you will need to install mplfinance
#!pip install mplfinance

Определение параметров: создание схемы извлечения данных

В сфере анализа криптовалют точность начинается с параметров. Прежде чем сделать решающий вызов API, мы приступаем к решающей задаче определения параметров. Эти цифровые архитекторы руководят процессом получения данных с сервера Binance, формируя запрос в соответствии с нашими аналитическими амбициями.

symbol = 'BTCUSDT' #Choosing Bitcoin 

interval = '1d'  # Daily interval. Other allowed intervals include: ['1m', '3m', '5m', '15m', '30m', '1h', '2h', '4h', '6h', '8h', '12h', '1d', '3d', '1w', '1M']

start_time = 1672531200000  # Timestamp for January 1, 2023, 00:00:00 UTC
end_time = 1690848000000 # Timestamp for August 1, 2023, 00:00:00 UTC

limit= 1000   # By default the API call returns 500 records with 1000 as the limit

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

Использование возможностей библиотеки запросов: получение необходимых данных из Binance API

Наше исследование криптовалютного анализа начинается с создания жизненно важного инструмента: конечной точки API. С помощью f-строк мы формируем переменную url, выравнивая торговую пару, таймфрейм, время начала и окончания, а также предел точек данных. Эта конечная точка действует как наш путеводитель, ведущий нас к набору исторических данных klines в сокровищнице Binance.

GET-запрос: Навигация по сбору данных

Используя возможности конечной точки, мы выполняем HTTP-путешествие, используя requests.get(url). Это действие отправляет HTTP-запрос GET, призывая серверы Binance поделиться историческими данными. Наши параметры формируют форму этого цифрового груза.

Преобразование JSON: магия преобразования данных

Придя в формате JSON, наше сокровище претерпевает трансформацию. Введите response.json(), который преобразует загадочный JSON в словарь или список, совместимый с Python. Этот перевод ускоряет наше взаимодействие с данными, позволяя плавно вплетать идеи Binance API в нашу аналитическую историю.

#API endpoint
url = f"https://api.binance.com/api/v3/klines?symbol={symbol}&interval={interval}&startTime={start_time}&endTime={end_time}&limit={limit}"

#GET Request
response = requests.get(url)

#JSON Conversion
data = response.json()

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

#naming the columns
col_names = ["open_time", "Open","High","Low","Close","Volume", "close_time","quote_asset_volume","number_of_trades","taker_buy_asset_volume","taker_buy_quote_volume","ignored_data" ]

#creating a df
df = pd.DataFrame(data, columns=col_names)

#Exploring the df
df.head()

Прежде чем продолжить анализ полученных данных, нам необходимо проверить их, чтобы определить, нужно ли нам выполнить какие-либо очистки данных.
Первым шагом будет проверка типов данных каждого столбца с помощью звоню df.dtypes.

# Inspecting the data types of the variables
df.dtypes

Чтобы улучшить интерпретируемость нашего набора данных, мы обращаемся к столбцам, связанным со временем, «open_time» и «close_time». Первоначально представленные в формате эпохи, эти временные метки теперь преобразуются в удобочитаемый формат datetime. Эта трансформация позволяет нам более интуитивно понимать торговые периоды и движения цен.

import datetime 
# as we noticed before 'open_time' and 'close_time' are in epoch format. We need to convert them into datetime 

df['open_time'] = pd.to_datetime(df["open_time"], unit='ms')
df['close_time'] = pd.to_datetime(df["close_time"], unit='ms')

df[['open_time','close_time']].head()

Вторым шагом перед продолжением анализа является изменение типов данных определенных столбцов в нашем DataFrame. Столбцы, определенные для этого преобразования, включают атрибуты, связанные с ценой, такие как «Открытие», «Максимальное», «Низкое», «Закрытие», а также объемы торгов и другие показатели, которые были отнесены к категории «объект», хотя на самом деле они таковы. плавать'.

## changing dtypes of columns from obj to float
col_dtypes = ["Open","High","Low","Close","Volume","quote_asset_volume","taker_buy_asset_volume","taker_buy_quote_volume"]

#iterate over every column and convert to float
for val in col_dtypes:
    df[val] = df[val].astype(float)

Теперь, когда данные проверены и очищены, мы можем перейти к их анализу.

Изучение тенденций с помощью библиотеки mplfinance

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

Используя возможности mplfinance, мы можем создавать комплексные диаграммы, которые не только отображают движение цен, но также включают объемы торгов, скользящие средние и многое другое. Эти диаграммы служат окнами в сложный мир криптовалют, позволяя нам выявлять закономерности, тенденции и потенциальные торговые возможности.

Готовясь к визуализации данных с помощью библиотеки mplfinance, нам нужно установить столбец open_time в качестве индекса для нашего DataFrame. Индекс служит ссылкой для данных, основанных на времени, и эта корректировка гарантирует, что наши данные временных рядов правильно выровнены для построения графика.

# to plot using the mpl finance library, we need 'open_time' to be set as index
df = df.set_index('open_time')

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

# Plotting the chart with default parameters
mpf.plot(df.iloc[:30])

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

В приведенном ниже коде для параметра типа установлено значение «candle». Этот выбор указывает библиотеке создать свечную диаграмму для заданных данных.

#candlestick chart of the first 30 records
mpf.plot(df.iloc[:30], type='candle')

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

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

В коде установка mav=7 создает линейный график скользящего среднего за 7 дней, сглаживая краткосрочные колебания и выделяя основные тенденции. Кроме того, вы можете применять несколько скользящих средних одновременно (например, mav=(7,10,20)) , расширяя свой анализ дополнительной информацией.

mpf.plot(df, type='line', mav=7)

Альтернативная диаграмма, которую можно построить, — это ренко.

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

mpf.plot(df, type='renko')

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

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

mpf.plot(df.iloc[:120], type='candle',
         title='Candlestick Chart',
         ylabel='Price',
         mav=10,
         volume=True,
         show_nontrading=False,
         datetime_format='%Y-%m-%d',
         figscale=1.2,
         figratio=(16, 9))

Ваш набор инструментов ждет: полный блокнот у вас под рукой

Вы можете использовать возможности этой образовательной экспедиции, получив доступ к полной записной книжке, удобно расположенной в моем репозитории GitHub.

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

Расширение возможностей через мастерство: прокладывая свою крипто-одиссею

Пока мы расходимся, помните, что горизонт, с которым вы сталкиваетесь, полон возможностей. Вооружившись API Binance и художественными возможностями mplfinance, вы сможете превратить финансовые данные в шедевр тенденций, закономерностей и идей.

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