Данный проект представляет собой инструментарий на языке C# для работы с grpc-интерфейсом торговой платформы Тинькофф Инвестиции.
SDK доступен на nuget.org, для подключения добавьте в проект зависимость Tinkoff.InvestApi.
Если вы хотите сами собрать пакет из исходников, а не использовать Nuget, вам понадобится:
- git
- dotnet SDK 6.0.
Основной код сервисов генерируется по .proto файлам при сборке, для этого используются source generators. Proto файлы лежат в submodule. Поэтому необходимо клонировать репозиторий вместе с submodule, это можно сделать командой:
git clone --recurse-submodules https://github.com/Tinkoff/invest-api-csharp-sdk.git
Затем перейдите в директорию проекта и выполните следующую команду:
dotnet build -c Release
Подробную документацию по InvestApi можно найти по ссылке.
Для взаимодействия к InvestApi используется класс InvestApiClient
, который является фасадом для grpc сервисов. Есть несколько способов его создания.
Этот способ подходит для быстрого старта или для приложений без Generic Host, например WinForms или консольные приложения в старом стиле.
var client = InvestApiClientFactory.Create("<token>");
Для проектов, использующих Generic Host, например AspNetCore или консольные приложения в новом стиле, можно зарегистрировать InvestApiClient в DI.
public void ConfigureServices(IServiceCollection services)
{
services.AddInvestApiClient((_, settings) => settings.AccessToken = "<token>");
}
Далее InvestApiClient можно внедрить непосредственно в места использования.
class TradingBot
{
public TradingBot(InvestApiClient investApiClient)
{
}
}
Перед запуском, нужно добавить токен в переменную окружения TOKEN
Проект Tinkoff.InvestApi.Sample является примером использования SDK. При запуске будут использованы методы InvestApi, результаты будут выведены в консоль. Перед запуском сохраните свой токен в user secrets:
cd Tinkoff.InvestApi.Sample
dotnet user-secrets set "AccessToken" "<token>"
В разделе инвестиций вашего личного кабинета tinkoff
- Перейдите в настройки
- Проверьте, что функция “Подтверждение сделок кодом” отключена
- Выпустите токен для торговли на бирже и режима “песочницы” (sandbox)
- Скопируйте токен и сохраните, токен отображается только один раз, просмотреть его позже не получится, тем не менее вы можете выпускать неограниченное количество токенов
Основной репозиторий с документацией — в нем вы можете задать вопрос в Issues и получать информацию о релизах в Releases. Если возникают вопросы по данному SDK, нашёлся баг или есть предложения по улучшению, то можно задать его в Issues.