Интеграция 1С с TINKOFF INVEST API и API МОСБИРЖИ: первые рабочие наброски

Всем привет! Производя учет финансов в своей 1С-ке, я часто задавался вопросом – как мне учитывать стоимость ценных бумаг? С депозитами, банковскими счетами, наличностью проблем нет – все всегда известно и актуально, но вот с инвестициями мне всегда приходилось делать срез на какую-то дату. Грубо говоря, через минуту у меня стоимость активов могла стать больше или меньше, а от этого страдала достоверность отображаемой информации.

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

Недавно я наткнулся на такую вещь, как TINKOFF INVEST API, которая позволяет делать запросы к инструментам сервиса Тинькофф Инвестиции. У меня как раз ценные бумаги размещаются на этой площадке, так что я очень обрадовался и принялся изучать API. Первой задачей было – организовать получение стоимости своего портфеля. К моему удивлению, это оказалось довольно просто.

Начало

Для начала я организовал возможность удобного взаимодействия 1С с HTTP. Для этого я добавил КоннекторHTTP – Коннектор – библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.
Далее в личном кабинете Тинькофф-Инвестиции я выпустил токен, который понадобится для получения сведений из своего инвестиционного счета. Я выпустил токен только для чтения, так как возможности API широкие и позволяют в том числе осуществлять торговлю своими активами, но я пока решил только брать информацию.

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

Поле Тип Описание
total_amount_shares MoneyValue Общая стоимость акций в портфеле.
total_amount_bonds MoneyValue Общая стоимость облигаций в портфеле.
total_amount_etf MoneyValue Общая стоимость фондов в портфеле.
total_amount_currencies MoneyValue Общая стоимость валют в портфеле.
total_amount_futures MoneyValue Общая стоимость фьючерсов в портфеле.
expected_yield Quotation Текущая относительная доходность портфеля, в %.
positions Массив объектов PortfolioPosition Список позиций портфеля.
account_id string Идентификатор счёта пользователя.
total_amount_options MoneyValue Общая стоимость опционов в портфеле.
total_amount_sp MoneyValue Общая стоимость структурных нот в портфеле.
total_amount_portfolio MoneyValue Общая стоимость портфеля.
virtual_positions Массив объектов VirtualPortfolioPosition Массив виртуальных позиций портфеля.

Интересующий меня параметр positions – это массив PortfolioPosition, у которого имеются следующие поля:

Поле Тип Описание
figi string Figi-идентификатора инструмента.
instrument_type string Тип инструмента.
quantity Quotation Количество инструмента в портфеле в штуках.
average_position_price MoneyValue Средневзвешенная цена позиции. Возможна задержка до секунды для пересчёта.
expected_yield Quotation Текущая рассчитанная доходность позиции.
current_nkd MoneyValue Текущий НКД.
average_position_price_pt Quotation Deprecated Средняя цена позиции в пунктах (для фьючерсов). Возможна задержка до секунды для пересчёта.
current_price MoneyValue Текущая цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
average_position_price_fifo MoneyValue Средняя цена позиции по методу FIFO. Возможна задержка до секунды для пересчёта.
quantity_lots Quotation Deprecated Количество лотов в портфеле.
blocked bool Заблокировано на бирже.
blocked_lots Quotation Количество бумаг, заблокированных выставленными заявками.
position_uid string position_uid-идентификатора инструмента
instrument_uid string instrument_uid-идентификатора инструмента
var_margin MoneyValue Вариационная маржа
expected_yield_fifo Quotation Текущая рассчитанная доходность позиции.
     

Figi-идентификатор инструмента имеет тип данных строка и его я легко смог вывести в таблицу, но вот следующий параметр “тип инструмента”, несмотря на то, что имеет тоже строковый тип данных, в таблицу уже не заносится. Пока я с этим разобраться не могу. А уж числовые параметры имеют составные типы данных и чтобы добраться до чисел нужно делать запрос вплоть до “units”.

0 Responses to “Интеграция 1С с TINKOFF INVEST API и API МОСБИРЖИ: первые рабочие наброски”


  • No Comments

Leave a Reply

Сентябрь 2025
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
2930  

Анонс:


1. Настройка системы мониторинга с чтением параметров по snmp и отправкой уведомлений

Разделы:

Свежие комментарии