Лонгрид 2 из 13Курс
Как устроен Trade API
Содержание
Finam Trade API — программный доступ к брокерскому счёту и биржевым данным. Вместо действий в терминале программа вызывает метод API, получает структурированный ответ и принимает следующее решение в коде.
Что доступно
Область | Примеры задач |
|---|---|
Счёт | Позиции, деньги, оценка портфеля, сделки, транзакции, отчёты |
Инструменты | Акции, облигации, валюты, фонды, фьючерсы, опционы, расписание торгов |
Рыночные данные | Котировки, стакан, свечи, последние сделки |
Торговля | Рыночные, лимитные, стоп- и стоп-лимитные заявки, SL/TP, отмена заявки |
События | Изменение цены, заявки, сделки и состояния счёта |
API не расширяет права счёта. Доступность инструмента зависит от типа счёта, торгового режима, пройденных тестов и статуса квалифицированного инвестора.
REST, WebSocket или gRPC
Интерфейс | Модель | Используйте, когда |
|---|---|---|
REST | один запрос — один ответ | Нужно прочитать снимок состояния или выполнить разовое действие |
WebSocket | одно соединение — много JSON-событий | Нужны котировки, стакан, свечи, заявки или сделки в реальном времени |
gRPC | типизированные unary- и streaming-методы | Нужны сгенерированные модели, строгие типы и полноценный прикладной клиент |
secret_key и access_key — разные ключи
В курсе встречаются два токена, и путать их дорого.
secret_key выпускается на портале в разделе Токены и живёт долго. Это ключ от доступа: храните его как пароль и не кладите в код.
access_key приложение получает в обмен на secret_key и прикладывает к рабочим запросам. access_key живёт около 15 минут, поэтому его не хранят — его получают заново.
В REST-примерах курса используется стандартная запись:
Можно ли обойтись без префикса Bearer
API принимает и заголовок, в котором передан только access_key без префикса. Оба варианта допустимы, но в одном приложении держитесь одного формата: иначе диагностика усложняется на ровном месте.
В WebSocket токен можно передать в заголовке при подключении или в поле token команды подписки. В курсе используется второй вариант: он одинаково выглядит во всех трёх языках.
Ограничения, которые влияют на архитектуру
Согласно актуальным карточкам REST-методов, доступный лимит — 200 запросов в минуту на метод. При превышении сервер отвечает
429.Доступная глубина истории зависит от таймфрейма.
Проверьте себя
Какой интерфейс подходит для разового получения портфеля?
REST или unary-вызов gRPC: нужен снимок состояния, а не поток изменений.
Почему постоянный REST опрос котировки хуже подписки?
Опрос расходует лимит запросов и пропускает всё, что изменилось между двумя обращениями. Подписка присылает изменения сама.
Что из двух нужно хранить как долгоживущий ключ: secret_key или access_key?
secret_key. access_key живёт около 15 минут и получается заново в обмен на него.
Конец лонгрида