Данные binance в excel


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

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

Вот простой пример получения текущей цены торгуемой пары EOS/ETH с биржи Binance:

Private Sub Workbook_Open()
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    XMLHTTP.Open "GET", "https://api.binance.com/api/v3/ticker/price?symbol=EOSETH", False
    
    XMLHTTP.Send
    If XMLHTTP.statustext = "OK" Then
        txt = XMLHTTP.responseText
        Cells(2, 5) = txt
        txt = Mid(txt, 29, 10)
        Cells(2, 3) = txt
    End If
    XMLHTTP.abort
    Set XMLHTTP = Nothing

End Sub

Эта простенькая программа считываемую строку, для примера, выводит в ячеку MS Excel вот в таком виде:

{«symbol»:»EOSETH»,»price»:»0.02672500″}

Ну а дальше вырезает текущую цену с помощью функции VBA MID начиная с 29 символа и длиной 10 и вставляет в другую ячейку Excel.

Можно конечно нужное значение строки вырезать и другими функциями VBA, например Replace, заменяя ненужные символы пустой строкой, но это дело вкуса каждого.

Например так, в два этапа

txt = Replace(txt,"{""symbol"":""EOSETH"",""price"":""", "")

txt = Replace(txt, """}", "")

Вот таким простым способом можно взаимодействовать с криптовалютными биржами через MS Excel на VBA.

Комментарии закрыты

Data results output in Excel

Binance is the biggest cryptocurrency exchange in the world. Use this connector in Excel to access public exchange information, as well as your personal trading data.

Exchange Info

List all available trading pairs on the exchange, as well as additional trading info for each pair.

Fields

  • Symbol — symbol for the trading pair, e.g. ETHBTC
  • Status — trading status for the pair — PRETRADING / TRADING / POSTTRADING / ENDOFDAY / HALT / AUCTION_MATCH /BREAK.
  • Base Asset — base asset that is the quantity of a symbol, e.g. ETH.
  • Base Asset Precision — number of digits
  • Quote Asset — quote asset that is the price of a symbol, e.g. BTC.
  • Quote Asset Precision — number of digits
  • Minimum Notional — minimum notional value allowed for an order on a symbol. An order’s notional value is the price * quantity.
  • Minimum Price — minimum price allowed.
  • Maximum Price — maximum price allowed.
  • Tick Size — intervals that a price / stop price can be increased/decreased by.
  • Minimum Quantity — minimum quantity allowed.
  • Maximum Quantity — maximum quantity allowed.

Order Book

List of open orders for specified symbol (e.g., ETHBTC)

Parameters

  • Symbol (required) — symbol for the trading pair (e.g. ETHBTC)
  • Limit — limit of orders to retrieve.

Recent Trades List

List most recent orders for a specified currency pair.

Parameters

  • Symbol (required) — symbol for the trading pair (e.g. ETHBTC)
  • Limit — limit of orders to retrieve

Aggregate Trades List

List compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.

Parameters

  • Symbol (required) — symbol for the trading pair (e.g. ETHBTC)
  • Limit — limit of orders to retrieve

24 hour ticker price change statistics for symbol

24 hour price change statistics for selected symbol.

Parameters

  • Symbol (required) — symbol for the trading pair (e.g. ETHBTC)

24 hour ticker price change statistics (all symbols)

Same as above, but for for all available symbols.

Candlestick Data

Trading data for candlestick/k-line charts.

Parameters

  • Symbol — Trading pair symbol (e.g. ETHBTC)

Generating candlestick charts with retrieved data

Follow these steps to generate candlestick charts with Excel:

  1. Select Open time, Volume, High, Low and Close fields. Insert the data.
  2. Go to Insert tab in Excel, and click the Insert Waterfall or Stock Chart. Choose Volume-Open-High-Low-Close chart.
    Chart example

Open orders (user data)

Retrieves a list of user’s open orders.
This connector requires API key and secret to be entered.

Parameters

  • Symbol — Trading pair symbol (e.g. ETHBTC)

All orders (user data)

Retrieves a list of user’s orders (up to 500) — active, canceled, or filled.
This connector requires API key and secret to be entered.

Parameters

  • Symbol (required) — Trading pair symbol (e.g. ETHBTC)
  • Limit (requiredd) — Maximum number of orders to retrieve (5-500)

Account information (user data)

Retrieves user’s account information.
This connector requires API key and secret to be entered.

Fields

  • Maker Commision
  • Taker Commission
  • Buyer Commision
  • Seller Commision
  • Can Trade
  • Can Withdraw
  • Can Deposit

Currency Balances (User data)

Lists balances for all user’s currencies.
This connector requires API key and secret to be entered.

Fields

  • Time — Time when balance was checked
  • Asset — Symbol for the asset (e.g. BTC)
  • Free — Amount available to trade.
  • Locked — Amount locked (unavailable to trade).

Access

Add from Manager

The Disqus Connector is available in the Connectors Manager in the top ribbon:
Manager position in main ribbon

Head over to the Finance Category and install Binance:
Connector category in Manager window

Get API keys

To use the Connector you need a Binance API Key. You can create your API Key and Secret in your Account settings.


Contribute

This connector suite is open-sourced on GitHub.


See

Official Documentation

  • Binance API
  • Alpha Vantage

Resources

  • Manager

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

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

Подготовка импорта курсов всех криптовалют в Excel

Импортировать котировки мы будем с крупнейшего в мире агрегатора данных о криптовалютах – CoinGecko, на сайте которого, можно просматривать цены на топовые криптовалюты в реальном времени, графики криптовалют, рыночную капитализацию, объем торгов и многое другое. Так же, можно воспользоваться их сервисом – CoinGecko Crypto Data API. Что мы и сделаем.

1. Заходим на сайт https://www.coingecko.com/ru и регистрируемся

2. После открываем страницу https://www.coingecko.com/ru/api/documentation

Она нам еще не раз пригодится

3. Ищем раздел «GET /coins/list», открываем его, кликая и нажимаем «Try it out»

4. В раскрывшихся настройках нажимаем «Execute» и копируем ссылку ниже «Request URL»

https://api.coingecko.com/api/v3/coins/list

Импорт списка криптовалют из API CoinGecko в Excel

5. Открываем Microsoft Excel и на вкладке «Данные» выбираем «Из Интернета»

6. Вставляем скопированную ссылку «Request URL» и нажимаем «OK»

7. После подключения и загрузки, откроется вкладка «Преобразование». Нажимаем «В таблицу» и «OK»

8. В преобразованной таблице в верхней строке нажимаем на кнопку со стрелочками и «OK»

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

10. Если хотим загрузить таблицу на новый лист, то оставляем галочку «Новый лист», если на открытый, то выбираем «Имеющийся лист» и выбираем на листе ячейку А1. Нажимаем «ОК»

После импорта всех криптовалют из CoinGecko в Excel, мы видим справа в разделе «Запросы и Подключения» количество загруженных строк. Но, это мы загрузили только список криптовалют. Пусть он и большой, более 13.000, но где же цены? Где актуальные курсы?

Импорт курсов криптовалют из CoinGecko в Excel

11. Возвращаемся на открытую страницу https://www.coingecko.com/ru/api/documentation

12. Ищем раздел «GET /coins/markets» и нажимаем на него

13. В раскрывшихся настройках указываем «vs_currency»USD, а в «per_page»250 и нажимаем «Try it out»

14. Ниже нажимаем «Execute» и копируем ссылку ниже «Request URL»

https://api.coingecko.com/api/v3/coins/markets?vs_currency=USD&order=market_cap_desc&per_page=250&page=1&sparkline=false

15. Возвращаемся в Microsoft Excel и на вкладке «Данные» снова выбираем «Из Интернета»

16. Вставляем новую скопированную ссылку «Request URL» и нажимаем «OK»

17. После подключения и загрузки, откроется вкладка «Преобразование». Нажимаем «В таблицу» и «OK»

18. В преобразованной таблице в верхней строке нажимаем на кнопку со стрелочками и «OK»

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

Как видим, на листе появилась полная информация о 250 криптовалютах. Почему только 250? К сожалению, API CoinGecko, может выдать нам список только 250 монет. Что же делать?

Если мы хотим загрузить следующие 250 криптовалют из полного списка CoinGecko, чтобы у нас было их 500, то нам необходимо сделать следующее:

20. На вкладке «Данные» снова выбираем «Из Интернета»

21. Вставляем последнюю (длинную) скопированную ссылку «Request URL» и меняем в ней «page=1» на «page=2», чтобы получилось так

https://api.coingecko.com/api/v3/coins/markets?vs_currency=USD&order=market_cap_desc&per_page=250&page=2&sparkline=false

и нажимаем «OK»

22. После подключения и загрузки, откроется вкладка «Преобразование». Нажимаем «В таблицу» и «OK»

23. В преобразованной таблице в верхней строке нажимаем на кнопку со стрелочками и «OK»

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

25. Выбираем «Имеющийся лист» и кликаем в колонке «А» первую пустую ячейку под таблицей (А252). Нажимаем «ОК»

Теперь у нас в таблице уже 500 монет из рейтинга CoinGecko. Остальные, если нам понадобятся, мы добавим, повторив пункты 20-25, изменяя «page=».

Последний лист, с полной информацией о криптовалютах, рекомендуем сразу переименовать, к примеру, в «Price», а первый, со списком, в «List». И да, не удаляйте «List», «Price» без него работать не будет.

Инвестиционный портфель в Excel

Для своего инвестиционного портфеля, мы создадим новый лист, к примеру, «Portfolio».

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

Создав свою таблицу и прописав в строки имеющуюся у нас криптовалюту, нам нужно “вытащить” из листа «Price» необходимую нам информацию. Самая важная информация для нас находится в колонках «В» – аббревиатура монеты, «С» – название проекта и «Е» – текущая цена. Из них мы и будем собирать информацию в наш инвестиционный криптопортфель.

К примеру, у нас две монеты в таблице: «BTC» и «ETH». Нам нужно в ячейке на пересечении строки «BTC» и колонки «Текущая цена», вставить следующую формулу:

=ИНДЕКС(Price!E:E;ПОИСКПОЗ("BTC";Price!B:B;0))

Она будет искать на листе «Price» в колонке «В» название «BTC» и переносить текущую цену из колонки «Е» в наш «Портфель».

Такую же формулу, по аналогии, нужно вставить и для «ETH», заменив в ней «BTC» на «ETH».

Обновление импорта курсов криптовалют в Excel

Обновление таблиц «List» и «Price» будут происходить в фоновом режиме. Если, по какой-то причине, необходимо обновить прямо сейчас, то сделать это можно принудительно на вкладке «Данные», нажав на «Обновить все».

Надеемся, что данная статья вам хоть в чем-то помогла. Если у вас что-то не получилось, то вы всегда можете задать вопрос в Telegram в группе «CRYPTOвалютчики». Либо, скачать этот образец в формате Excel (.xlsx): Шаблон Криптопортфель, и немножко подглядеть, как должно все работать.

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

На нашем сайте вы также найдете и другие полезные материалы, к примеру, о крупнейшей криптовалютной бирже Binance:

  • Как зарегистрироваться на крупнейшей бирже Binance?
  • Как завести деньги на Binance?
  • Как перевести деньги на Binance без комиссии? Что такое P2P?
  • Как купить криптовалюту на Бинансе?
  • Депозит USDT на Binance: Как приумножить крипту?
  • Стейкинг: Долгосрочные инвестиции в криптовалюту
  • Автостейкинг – новая функция на Binance

И главное! Не забывайте, что криптовалюта – это волатильный актив, который может привести к финансовым убыткам.

 

Уже пятый день бьюсь головой об клавиатуру. Чтобы спарсить курсы валют в эксель таблицу. Пробовал и через PQ и даже что то пробовал через Макросы. Но ничего не получается. Нашел куда идет запрос

https://www.binance.cc/bapi/c2c/v2/friendly/c2c/adv/search

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

Изменено: vikttur28.09.2021 15:28:54

 

Григорий Сперанский,
у меня даже сайт не открывает

 

то что я написал выше это путь куда сайт отправляет запросы, через него парсят курсы, через php. Сам сайт который нужно спарсить — p2p.binance.com

 

doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

 

Alemox

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

#5

29.09.2021 08:44:34

на USD

Код
Sub Parser_USD()
Dim OBJHTTP As Object
Dim Url$, Str$
Set OBJHTTP = CreateObject("MSXML2.XMLHTTP")
Url = "https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search"
With OBJHTTP
    .Open "POST", Url, False
    .setRequestHeader "Accept", "*/*"
    .setRequestHeader "Content-type", "application/json"
    .setRequestHeader "Origin", "https://p2p.binance.com"
    .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
    .send "{""page"":1,""rows"":10,""payTypes"":[],""asset"":""USDT"",""tradeType"":""BUY"",""fiat"":""USD"",""publisherType"":""merchant"",""merchantCheck"":true}"
    Str = .ResponseText
End With
Set OBJHTTP = Nothing
End Sub

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

Я понял, что это способ получения данных. Еще раз благодарю за это. А как полученную информацию перенести в таблицу?

 

Нашел исполнителя. Всех благодарю за внимание. Отдельная благодарность

Alemox

.

 

Андрей Фавунков

Пользователь

Сообщений: 2
Регистрация: 27.05.2022

#8

27.05.2022 04:35:31

Цитата
написал:
Нашел исполнителя. Всех благодарю за внимание. Отдельная благодарность  Alemox .

Доброго времени суток, можете подсказать, как удолось решить эту задачу?

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

#9

27.05.2022 10:56:12

Андрей Фавунков, если в PQ то так:

Код
let
    url = "https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search",
    Head = [
        #"Accept" = "*/*",
        #"Content-type" = "application/json",
        #"Origin" = "https://p2p.binance.com",
        #"User-Agent" = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
   ],
    content = Json.Document("{""page"":1,""rows"":20,""payTypes"":[],""asset"":""USDT"",""tradeType"":""BUY"",""fiat"":""USD"",""publisherType"":""merchant"",""merchantCheck"":true}"),
    Custom1 = Json.Document( Web.Contents(url, [Headers = Head, Content = Json.FromValue( content )] ) ),
    data = Table.FromRecords( Custom1[data] ),
    ExpandedAdv = Table.ExpandRecordColumn(data, "adv", Record.FieldNames(data[adv]{0})),
    ExpandedAdvertiser = Table.ExpandRecordColumn(ExpandedAdv, "advertiser", Record.FieldNames(data[advertiser]{0}))
in
    ExpandedAdvertiser

Вот горшок пустой, он предмет простой…

 

кто подскажет что за болезнь не могу понять в чем ошибка и как её исправить??    

Изменено: Язан Альрифаи02.06.2022 10:39:33

 
 

А как парсить в Google Таблицы? Кто-то разобрался?

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Alex Smirnoff, это лучше спрашивать на форуме по гуглошитсам. Здесь вам не тут.

Вот горшок пустой, он предмет простой…

 

Андрей Фавунков

Пользователь

Сообщений: 2
Регистрация: 27.05.2022

#14

30.05.2022 19:07:43

Цитата
написал:
А как парсить в Google Таблицы? Кто-то разобрался

В ютубе найди: IMPORTXML
Работает и в экселе и в гугл таблицах

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Андрей Фавунков,  ну что за панибратство? (

 

Кирилл Чернышев

Пользователь

Сообщений: 5
Регистрация: 01.06.2022

#16

01.06.2022 04:11:46

Цитата
написал:
Андрей Фавунков, если в PQ то так:

Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15      let          url =   " https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search "  ,          Head = [              #  "Accept"   =   "*/*"  ,              #  "Content-type"   =   "application/json"  ,              #  "Origin"   =   " https://p2p.binance.com "  ,              #  "User-Agent"   =   "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"         ],          content = Json.Document(  "{"  "page"  ":1,"  "rows"  ":20,"  "payTypes"  ":[],"  "asset"  ":"  "USDT"  ","  "tradeType"  ":"  "BUY"  ","  "fiat"  ":"  "USD"  ","  "publisherType"  ":"  "merchant"  ","  "merchantCheck"  ":true}"  ),          Custom1 = Json.Document( Web.Contents(url, [Headers = Head, Content = Json.FromValue( content )] ) ),          data = Table.FromRecords( Custom1[data] ),          ExpandedAdv = Table.ExpandRecordColumn(data,   "adv"  , Record.FieldNames(data[adv]{0})),          ExpandedAdvertiser = Table.ExpandRecordColumn(ExpandedAdv,   "advertiser"  , Record.FieldNames(data[advertiser]{0}))    in          ExpandedAdvertiser   

 

А что нужно добавить в код чтоб можно было сортировать объявления по лимиту?

Изменено: Кирилл Чернышев01.06.2022 04:19:42
(Не верно написал)

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Кирилл Чернышев, расшифруйте, пожалуйста, что за лимиты? Я по этому сайту не шарю, просто затащил запрос из vba выше в pq по тупому.

Вот горшок пустой, он предмет простой…

 

.

Изменено: Кирилл Чернышев04.06.2022 18:27:50
(Удалить данные)

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Кирилл Чернышев, ну, вот тут Николай рассказывает и показывает как затащить параметр с листа в запрос. А дальше уже по аналогии можете подставить полученный параметр в фильтре запроса к апи. Каким образом передается в апи данный параметр от сайта к серверу смотрите в Средствах разработчика браузера. Мне сейчас немножко не до этого.

Вот горшок пустой, он предмет простой…

 

PooHkrd, Я правильно понимаю в эту строчку добавляю
   content = Json.Document(«{«»page»»:1,»»rows»»:20,»»payTypes»»:[],»»asset»»:»»USDT»»,»»tradeType»»:»»BUY»»,»»fiat»»:»»USD»»,»»publisherType»»:»»merchant»»,»»merchantCheck»»:true}»)
параметр в котором лимит указывается?

 

Robert A

Пользователь

Сообщений: 4
Регистрация: 01.06.2022

#21

01.06.2022 21:14:58

Цитата
написал:
на USD

Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16      Sub   Parser_USD()    Dim   OBJHTTP   As   Object    Dim   Url$, Str$    Set   OBJHTTP = CreateObject(  "MSXML2.XMLHTTP"  )    Url =   " https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search "    With   OBJHTTP          .Open   "POST"  , Url,   False          .setRequestHeader   "Accept"  ,   "*/*"          .setRequestHeader   "Content-type"  ,   "application/json"          .setRequestHeader   "Origin"  ,   " https://p2p.binance.com "          .setRequestHeader   "User-Agent"  ,   "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"          .send   "{"  "page"  ":1,"  "rows"  ":10,"  "payTypes"  ":[],"  "asset"  ":"  "USDT"  ","  "tradeType"  ":"  "BUY"  ","  "fiat"  ":"  "USD"  ","  "publisherType"  ":"  "merchant"  ","  "merchantCheck"  ":true}"          Str = .ResponseText    End   With    Set   OBJHTTP =   Nothing    End   Sub   

 

Для особа не шарющих, подскажите пожалуйста куда этот код вставлять надо?)

 

Коля Иванов

Пользователь

Сообщений: 1
Регистрация: 01.06.2022

PooHkrd, Добрый день! а как в запрос добавить способ оплаты?

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Кирилл Чернышев, Коля Иванов, уважаемые товарищи, еще вчера написал, нет у меня щас времени ковыряться с этим вопросом. Используйте

Яндекс

, там все есть. Когда увидите что именно отправляет на сервер браузер, подкорректируйте пример моего запроса под ваш случай.

Вот горшок пустой, он предмет простой…

 

PooHkrd, Спасибо, вчера разобрался как это сделать, все просто оказалось, в Исходном коде все есть.

 

.

Изменено: Кирилл Чернышев04.06.2022 18:28:37
(Удалить)

 

Антон Шишков

Пользователь

Сообщений: 1
Регистрация: 04.06.2022

#27

04.06.2022 16:07:01

Цитата
написал:
PooHkrd, есть сайт  https://p2p.binance.com/ru/trade/Tinkoff/USDT?fiat=RUB
Скрин с сайта Бинанс    
Тоже самое Excel    

а нужно какой-то фильтр сделать чтоб можно было сортировать объявления вот как на скрине с бинанса выставил от 500р и он показывает      

привет, как в итоге смог сделать? подскажи пожалуйста

 

Валерий Ежов

Пользователь

Сообщений: 1
Регистрация: 05.06.2022

#28

05.06.2022 10:32:27

Цитата
написал:
на USD

Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16      Sub   Parser_USD()    Dim   OBJHTTP   As   Object    Dim   Url$, Str$    Set   OBJHTTP = CreateObject(  "MSXML2.XMLHTTP"  )    Url =   " https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search "    With   OBJHTTP          .Open   "POST"  , Url,   False          .setRequestHeader   "Accept"  ,   "*/*"          .setRequestHeader   "Content-type"  ,   "application/json"          .setRequestHeader   "Origin"  ,   " https://p2p.binance.com "          .setRequestHeader   "User-Agent"  ,   "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"          .send   "{"  "page"  ":1,"  "rows"  ":10,"  "payTypes"  ":[],"  "asset"  ":"  "USDT"  ","  "tradeType"  ":"  "BUY"  ","  "fiat"  ":"  "USD"  ","  "publisherType"  ":"  "merchant"  ","  "merchantCheck"  ":true}"          Str = .ResponseText    End   With    Set   OBJHTTP =   Nothing    End   Sub   

 

Подскажи пожалуйста, в Google Sheets через какой инструмент вставлять этот код?)

 

Tony Srgv

Пользователь

Сообщений: 6
Регистрация: 04.06.2022

Всем привет! Истратил неделю. Что делал:
1. Вставил Код в Макрос Excel —  понимаю что запрос выполнен, но выгрузки в файл не провел.
2. Вставил Код в Power Query — ругается на Json.FromValue (не может распознать)
3. Попробовал через Google Sheets — importApi — не может вернуть нормальный запрос.

Прошу помочь с PowerQuery

 

Tony Srgv

Пользователь

Сообщений: 6
Регистрация: 04.06.2022

#30

06.06.2022 18:53:54

Вопрос решил по PQ — решение было установкой обновления на PQ

Курсы валют через 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

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

курсы валют через 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 адрес» записываем адрес интересующей  пары. Для загрузки остальных нужно просто поменять краткие названия криптовалют в конце строки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Данные вводимые в ячейку таблицы excel полностью отражаются
  • Данное расширение нельзя использовать с выбранным типом файла excel
  • Данные в электронных таблицах excel это только тест
  • Данные в электронной таблице microsoft excel могут быть
  • Данное имя конфликтует с допустимым адресом диапазона excel