Найти тему
Иван Карпов

Курсы валют через Power Query

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

Основным источником данных о котировках будут служить биржи — Kraken, Binance, Poliniex, Bitterex и прочие. Что их объединяет? Ответ прост — API (application programming interface, программный интерфейс приложения, если по-русски).

Самое забавное, что к этому интерфейсу нельзя обратиться с помощью простого web запроса в Excel. Как мы это делали раньше. Выход есть — использовать Power Query.

Power Query — это специальная технология получения и анализа данных от компании Microsoft. Для Excel 2016, 2019, Office365 её отдельная установка не требуется (пакет уже включён в программу), для всех остальных версий придётся качать отдельно, также нужно обратить внимание на разрядность вашего офиса (х32, х64). 

ССЫЛКА

Скачали, установили и теперь в Excel появится новая вкладка — POWER QUERY.

Вкладка выглядит следующим образом:

-2

В принципе можно рассматривать Power Query как надстройку над вкладкой «Данные», так как у нас расширяется выбор источников получения данных.

Ну что ж, теперь перейдём непосредственно к загрузке. Цель — получить соотношение покупки продажи криптвалютных пар (ETH/BTC). К примеру, нужно загрузить курс с биржи Binance. 

Весь труд будет в следующем — найти API биржи и его «руководство пользователя». Для нашей биржи оно находится по адресу:

https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md

Базовой точкой входа будет:

https://api.binance.com/

И далее идёт пространное описание возможностей синтаксиса. Экспериментальным путём и опираясь на это руководство пользователя, выяснилось следующее: для получения данных по конкретной паре валют необходимо указать путь до «бегущей строки» биржи и прописать символьное обозначение пары.

Вот так:

https://api.binance.com/api/v3/ticker/price?symbol=ETHBTC

  • v3 — версия api биржи;
  • ticker — «бегущая строка» котировок;
  • price?symbol=ETHBTC — текущая стоимость продажи.

Воспользуемся полученной ссылкой. Переходим на вкладку «Power Query» и нажимаем кнопку «Из интернета» (она самая первая). Перед нами появится окно с запросом источника загрузки данных, в поле «URL адрес» записываем адрес интересующей  пары. Для загрузки остальных нужно просто поменять краткие названия криптовалют в конце строки.

-3

Нажимаем «ОК» и попадаем в редактор запроса и представления на листе Excel.

-4

Видим, появился редактор, данные и параметры запроса. Мы находимся на вкладке «Конвертировать». Перейдём на вкладку «Просмотр» и поставим галку «Строка формул», чтобы видеть запрос в привычном представлении.

-5

Возвращаемся на вкладку «Конвертировать» и нажимаем кнопку «В таблицу».

-6

Поскольку нам ничего пока больше не нужно, в появившемся окне нажимаем «Закрыть и загрузить», чтобы данный запрос появился на листе.

-7

В результате получим вот такую картину.

-8

Цель достигнута, курсы подгрузились. Теперь нужно настроить их на автоматическое обновление. Справа у нас есть столбец «Параметры запроса», щелкаем правой кнопкой мышки по нашем запросу и выбираем «Свойства», ставим галку «Быстрая загрузка» -> Ок.

-9

Далее мы оказываемся на вкладке «Конструктор», в блоке кнопок «Данные из внешней таблицы» щёлкаем по треугольнику после кнопки «Обновить», затем выбираем пункт «Свойства подключения». В следующем окне нужно настроить время обновления нашего запроса.

-10

Проставляем галки как на рисунке. Тем самым мы добиваемся автоматического обновления котировок в течение одной минуты, а если нам нужно — можем обновить сами по нажатию кнопки. Нажимаем «ОК».

Готово! Ждём минуту, курс обновляется сам. Теперь котировки будут подгружаться автоматически.

Единственный минус — для большого количества запросов придётся всё создавать ручками, что в свою очередь будет сильно нагружать программу Excel при обновлении курсов криптовалют.