Курсы валют через Power Query
Добрый день, уважаемые читатели блога! Сегодня речь пойдёт снова о загрузке курсов валют, только теперь мы обратимся к криптовалютам.
Основным источником данных о котировках будут служить биржи - Kraken, Binance, Poliniex, Bitterex и прочие. Что их объединяет? Ответ прост - API (application programming interface, программный интерфейс приложения, если по-русски).
Самое забавное, что к этому интерфейсу нельзя обратиться с помощью простого web запроса в Excel. Как мы это делали раньше. Выход есть - использовать Power Query.
Power Query - это специальная технология получения и анализа данных от компании Microsoft. Для Excel 2016 её отдельная установка не требуется (пакет уже включён в программу), для всех остальных версий придётся качать отдельно, также нужно обратить внимание на разрядность вашего офиса (х32, х64).
Скачали, установили и теперь в Excel появится новая вкладка - POWER QUERY.
Вкладка выглядит следующим образом:
В принципе можно рассматривать 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 адрес" записываем адрес интересующей пары. Для загрузки остальных нужно просто поменять краткие названия криптовалют в конце строки.
Нажимаем "ОК" и попадаем в редактор запроса и представления на листе Excel.
Видим, появился редактор, данные и параметры запроса. Мы находимся на вкладке "Конвертировать". Перейдём на вкладку "Просмотр" и поставим галку "Строка формул", чтобы видеть запрос в привычном представлении.
Возвращаемся на вкладку "Конвертировать" и нажимаем кнопку "В таблицу".
Поскольку нам ничего пока больше не нужно, в появившемся окне нажимаем "Закрыть и загрузить", чтобы данный запрос появился на листе.
В результате получим вот такую картину.
Цель достигнута, курсы подгрузились. Теперь нужно настроить их на автоматическое обновление. Справа у нас есть столбец "Параметры запроса", щелкаем правой кнопкой мышки по нашем запросу и выбираем "Свойства", ставим галку "Быстрая загрузка" -> Ок.
Далее мы оказываемся на вкладке "Конструктор", в блоке кнопок "Данные из внешней таблицы" щёлкаем по треугольнику после кнопки "Обновить", затем выбираем пункт "Свойства подключения". В следующем окне нужно настроить время обновления нашего запроса.
Проставляем галки как на рисунке. Тем самым мы добиваемся автоматического обновления котировок в течение одной минуты, а если нам нужно - можем обновить сами по нажатию кнопки. Нажимаем "ОК".
Готово! Ждём минуту, курс обновляется сам. Теперь котировки будут подгружаться автоматически.
Единственный минус - для большого количества запросов придётся всё создавать ручками, что в свою очередь будет сильно нагружать программу Excel при обновлении курсов криптовалют.