Данный Google Apps Script предназначен для импорта сделок из Тинькофф Инвестиций прямо в Google таблицы, для последующего анализа.
Я сделал этот скрипт для автоматизации ручного вбивания данных из приложения тинькофф, и надеюсь он окажется полезен кому-нибудь ещё :)
- Создать или открыть документ Google Spreadsheets https://docs.google.com/spreadsheets/
- В меню "Tools" выбрать "Script Editor"
- Дать проекту имя, например
TinkoffTrades
- Скопировать код из Code.gs и заменить им дефолтный текст скрипта.
- Получить OpenApi-токен Тинькофф
- Добавить свойство
OPENAPI_TOKEN
в разделеProject properties -> Script properties
со значением токена, полученным выше. - Сохранить скрипт 💾
- В документе Google Spreadsheets выбрать любую ненужную ячейку и присвоить ей имя
UPDATE_DATE
с помощью менюData
->Named ranges
->Add named range
. В эту ячейку по команде меню TI->Обновить вставляется текущая дата. Данная ячейка может использоваться в качестве необязательного параметраUPDATE_DATE
любой функции для принудительного обновления формул. Например, при использовании функцииTI_GetLastPriceByFigi("BBG004730RP0",UPDATE_DATE)
можно реализовать обновление цены акции "Газпром" по команде меню TI->Обновить.
На этом всё. Теперь при работе с этим документом на всех листах будут доступны функции:
- API v2:
TI_GetAccounts()
,TI_GetAccountID()
,TI_GetInstrumentsID()
,TI_GetLastPriceByFigi()
,TI_GetPortfolio()
,TI_GetOperations()
,TI_GetBidAskSpread()
иTI_GetLastPrice()
(использует API v1 и может перестать работать) - API v1:
getPriceByTicker()
,getTrades()
,getPortfolio()
,getMaxBidByTicker()
,getMinAskByTicker()
иgetBidAskSpread()
-
TI_GetAccounts()
- получение информации по счетам (идентификатор, тип, название, статус, дата открытия, права доступа). -
TI_GetAccountID(accountNum)
- возвращает идентификатор счета по его порядковому номеру (начиная с 0). -
=TI_GetLastPriceByFigi(FIGI, UPDATE_DATE)
- требует на вход FIGI инструмента (может быть получен через=VLOOKUP()
по отдельной вкладке с информацией по всем инструментам, полученной вызовомTI_GetInstrumentsID()
) и опциональный параметр с именем ячейкиUPDATE_DATE
, которая будет обновлятся через меню TI->Обновить). -
=TI_GetInstrumentsID()
- выводит информацию по всем инструментам, включая их тикер, FIGI, класс, биржу, валюту и ISIN. -
=TI_GetOperations(accountId, from, to)
- выводит операции по заданному идентификатору счета (можно получить через функциюTI_GetAccounts()
) и, опционально, фильтрацию по времени. Параметрыfrom
иto
являются ссылками на ячейки с типом Дата. -
=TI_GetPortfolio(accountId)
- выводит портфель по заданному идентификатору счета (можно получить через функциюTI_GetAccounts()
.
-
=getPriceByTicker(ticker, UPDATE_DATE)
- требует на вход тикер, и опциональный параметр с именем ячейкиUPDATE_DATE
, которая будет обновлятся через меню TI->Обновить). -
=getTrades(ticker, from, to)
- требует на вход тикер, и опционально фильтрацию по времени. Параметрыfrom
иto
являются строками и должны быть в ISO 8601 формате -
=getPortfolio()
- выводит портфель.
- Среди настроек скрипта есть
TRADING_START_AT
- дефолтная дата, начиная с которой фильтруются операцииgetTrades
. По умолчанию этоApr 01, 2020 10:00:00
, но данную константу можно в любой момент поменять в исходном коде.
=getPriceByTicker("V", UPDATE_DATE) # Возвращает текущую цену акции Visa
=getPriceByTicker("FXMM", UPDATE_DATE) # Возвращает текущую цену фонда казначейских облигаций США
=getTrades("V")
# Вернёт все операции с акцией Visa, которые произошли начиная с TRADING_START_AT и по текущий момент.
=getTrades("V", "2020-05-01T00:00:00.000Z")
# Вернёт все операции с акцией Visa, которые произошли начиная с 1 мая и по текущий моментs.
=getTrades("V", "2020-05-01T00:00:00.000Z", "2020-05-05T23:59:59.999Z")
# Вернёт все операции с акцией Visa, которые произошли в период с 1 и по 5 мая.