Эта автоматизация является бессерверной и использует API CoinMarketCap Free Tier.

Привет, я написал это руководство, потому что, как и многие держатели криптовалюты, я тратил слишком много времени на копирование и вставку данных о ценах на криптовалюту вручную в трекеры портфолио Google Sheet. Я подумал, что кто-то, должно быть, уже автоматизировал это, верно?

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

Итак, я сделал то, что сделал бы любой специалист по электронным таблицам: я закодировал решение, используя волшебство Google Apps и API уровня бесплатного пользования от CoinMarketCap… и вуаля, вы можете увидеть мое доказательство концепции ниже:

Если вы просто хотите использовать VLOOKUP и IMPORTRANGE для получения ежедневных данных о ценах в свои Google Таблицы, вот 5 распространенных криптовалютных пар, которые я создал для себя и других:

Вышеупомянутые листы запускаются один раз в день, каждое утро в 6:00 по тихоокеанскому стандартному времени.

«Это здорово и все такое, но что, если я хочу, чтобы он запускался чаще, чем 1 раз в день, или в разных валютах?»

Хороший вопрос! Для этого вам нужно немного изменить код. Читай дальше…

1) Во-первых, получите себе учетную запись разработчика на CoinMarketCap.

CoinMarketCap API — это тот же API, который Coinbase использует для своих неподдерживаемых цен на монеты и токены (я думаю), поэтому, если он достаточно хорош для них, он достаточно хорош и для меня :)

Получите ключ API, создав учетную запись здесь: coinmarketcap.com/api/

2) Затем создайте новый Google Sheet из sheets.google.com.

Дайте ему запоминающееся имя, например CoinMarketCap + Google Sheets.

3) Отсюда откройте Сценарий Google Apps в разделе Расширения › Сценарий приложений.

Также дайте вашему скрипту имя, например CoinMarketCap + API Google Sheets.

4) Мы собираемся добавить пользовательское меню на наш лист и способ безопасного хранения API-ключа Coin Market Cap (например, не в виде открытого текста)

  • Они добавляют пользовательские меню в ваш Google Sheet с помощью библиотеки getUI().
  • @OnlyCurrentDoc делает так, что скрипт может получить доступ только к листу, с которым он связан.
  • Они дают скрипту определенные вспомогательные функции, используя встроенный в Apps Script PropertiesService. Это сохранит ключ API в вашей учетной записи Google как свойство пользователя, которое будет вызываться позже с помощью пункта меню Выполнить запрос.

Причина, по которой я решил использовать свойства пользователя, заключается в том, что это было более безопасно, чем просто хранить ключ API в коде. Я также хочу, чтобы каждый «пользователь» электронной таблицы использовал свой собственный ключ API, а не делился им.

5) Далее давайте напишем код, необходимый для запроса API CoinMarketCap.

  • queryCoinMarketCapEndpointиспользует библиотеку Apps Scripts’s URLFetchApp для запроса конечной точки API через HTTP-запрос. Вы можете использовать это для любого API на самом деле из скрипта Google Apps. У них даже есть поддерживаемая библиотека OAuth, если ваш API требует OAuth!

Полезные советы:

  1. Вы можете настроить PARAMETERS, если хотите, но я просто взял 5000 лучших монет и попросил котировки только в долларах США.
  2. Замените доллары США своей валютой, если она вам нужна в другом виде.

6) Теперь, когда конечная точка работает, запишите возвращенные данные в свой лист Google.

  • Не забудьте заменить здесь «USD», если вам нужны котировки в другой валюте.
  • Убедитесь, что в вашей таблице Google есть лист с названием ImportedData, а заголовки, начинающиеся с ячейки A1, совпадают с заголовками в коде!
symbol,name,price,volume_24h,volume_change_24h,percent_change_1h,percent_change_24h,percent_change_7d, market_cap,market_cap_dominance,fully_diluted_market_cap,last_updated

7) Теперь запустите свой скрипт

Google сообщит вам, что приложение не было проверено. Вы должны авторизовать приложение, используя ссылку «Дополнительно».

Поскольку вы разработчик, вы можете доверять ему/ей/им, но, очевидно, не запускайте вслепую скрипты в Интернете, если вам неудобно.

8) Новое пользовательское меню появится в вашем листе Google после обновления окна браузера или если вы запустите OnOpen() вручную.

9) Добавьте свой API-ключ CoinMarketCap

Это можно сделать из Google Sheet через CMC API > Set API Key

10) После того, как вы установили ключ API, запустите запрос

Это можно сделать через CMC API > Run Query. Если вы все настроили правильно, данные должны загрузиться и выглядеть так, как показано ниже:

11) Используйте формулы Google Таблиц для объединения источников данных

Чтобы добавить эти данные в свою личную электронную таблицу, используйте IMPORTRANGE() на новой вкладке существующей электронной таблицы. Это будет выглядеть примерно так:

=IMPORTRANGE({{SPREADSHEET_URL}},ImportedData!A:J)
//This ImportRange() brings data from one spreadsheet to another. Afterward, you can manipulate or query the data from your own portfolio tracker or move it where you want it the screenshot below:

Как только данные из CoinMarketCap окажутся в вашей личной электронной таблице, это еще не все. Вам нужно найти способ «присоединить» данные вашего портфеля к данным о ценах. Для этого создайте новый столбец в моей электронной таблице и заполните его VLOOKUP(). Настройте в соответствии с вашими потребностями, используя что-то вроде этого:

=VLOOKUP({{SYMBOL}},ImportedData!A:J,3,FALSE)
//This Vlookup searches the ImportedData range and returns the 3rd column using {{SYMBOL}} as its search key.

Используя эту формулу, вы можете запросить символы,BTC, ETH, SOL или любые другие монеты или токены, которые вы хотите «присоединить» к данным вашего портфеля вместе с ценовыми данными. В качестве альтернативы, если вы знакомы с справочным синтаксисом Google Sheets, вы можете сопоставить значения столбцов вместо жесткого кодирования символа, как на снимке экрана ниже:

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

12) Запланируйте свой код для запуска сам по себе

Вы можете использовать Триггеры Google Apps на основе времени или действия, чтобы автоматически обновлять таблицу с данными в реальном времени. Просто следите за тем, чтобы не превысить ограничение бесплатного API в 333 вызова в месяц.

13) Настройка скрипта для получения других данных (необязательно)

Я закончу здесь, но я включил в репозиторий github еще одно место, где вы можете настроить результаты API, под названием parameters. Настройка результатов вашего API задокументирована на https://coinmarketcap.com/api/documentation/v1/.

Тем не менее, если вы вносите изменения в параметры, будьте готовы изменить остальную часть скрипта, в частности, изменить поля, возвращаемые в строках 40, и то, как они сопоставляются с таблицей Google:

Исходный код



Чтобы узнать больше о моих статьях о личных финансах, ознакомьтесь с Индексом статей Дэна Фама о личных финансах и подпишитесь на меня :) https://danphamx.medium.com/index-of-dan-phams-personal-finance-articles-290f7a3fad98

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