Данный проект представляет собой инструментарий на языке Free Pascal (FPC) для работы с REST-интерфейсом торговой платформы Т Инвестиции.
- Реализованы только унарные запросы. Поддержка стрим-соединений отсутствует .
- Предусмотрена работа как в продовом контуре, так и в песочнице.
- В передаваемых и возвращаемых параметрах предусмотрено автоматическое конвертирование типов данных units/nano в double и обратно.
- Во всех методах присутствует проверка на превышение лимитов.
- В ответах всех методов есть служебное поле x-tracking-id, которое может пригодится при обращении в службу поддержки.
Исходный код написан на FPC. Компиляция и тестирование проводились в среде разработки Lazarus. Модуль tinvest_api_unit.pas содержит все необходимые структуры и методы API. Каждое поле структур для удобства дополнительно прокомментировано в соответствии с официальной документацией. Все названия структур и их полей имеют префиксы по первым буквам соответствующих методов. Общая схема вызова любого метода: Метод_API (входные параметры; выходные параметры). Пример вызова:
var
ga_in : ga_request;
ga_out : ga_response;
begin
// код инициализации входной структуры
ga_in.ga_token := 'ваш_токен';
ga_in.ga_status := 'ACCOUNT_STATUS_ALL'; // в данном случае выведутся все счета клиента
ga_in.ga_is_sandbox_flag := true; // опциональное поле для переключения на песочницу
GetAccounts(ga_in, ga_out);
// в ga_out будет массив счетов (в зависимости от выбранного контура)
При этом, в запросе для каждого метода необходимо обязательно передавать токен.
В модуле additional_unit.pas содержатся дополнительные структуры и процедуры для облегчения разработки робота, такие как:
- функция генерирования UUID (применяется в некоторых методах, например в PostOrder);
- функция-фильтр для получения только биржевых свечек;
- функции перевода времени из московского в UTC и обратно;
- функции некоторых индикаторов (некоторые из них присутствуют в методе GetTechAnalysis);
Подробную документацию по T-Invest API можно найти по ссылке.
Для работы с T-Invest API необходимо выпустить соответствующий токен. В новых версиях API есть поддержка перевода средств между счетами, поэтому необходим токен с поддержкой торговли и переводов.
Все методы API работают по безопасному соединению через HTTPS, поэтому необходимо скачать самую актуальную версию библиотеки для работы с SSL в соответствии с разряднойстью рабочей платформы и поместить все .dll-файлы в папку с проектом.
Для работы с SDK необходимо добавить модули в раздел uses своего проекта.
При необходимости работы с песочницей используются методы OpenSandboxAccount, CloseSandboxAccount и SandboxPayIn для создания и пополнения счета, а также его закрытия. Кроме указанных методов работу с песочницей поддерживают
некоторые другие методы, например, PostOrder. Для явной смены контура в request-структурах предусмотрено опциональное поле is_sandbox_flag. По умолчанию все методы работают в продовом контуре.
В каталоге example находится графический пример для работы с SDK в среде Lazarus. Кроме графического, в каталоге example_console представлен консольный пример простейшего приложения для получения свечек.