Данный проект представляет собой инструментарий на языке 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.