Skip to content

Commit

Permalink
update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jstalex committed May 31, 2023
1 parent fcf5442 commit 833210d
Showing 1 changed file with 46 additions and 8 deletions.
54 changes: 46 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,52 @@ SDK предназначен для упрощения работы с API Ти

Для непосредственного взаимодействия с INVEST API нужно создать клиента.
Примеры использования SDK находятся в директории examples:
* md_stream.go, orders_stream.go, operations_stream.go - примеры работы со стримами
* instruments.go - примеры работы с сервисом инструментов
* marketdata.go - примеры работы с сервисом котировок
* operations.go - примеры работы с сервисом операций
* orders.go - примеры работы с сервисом торговых поручений
* stop_orders - примеры работы с сервисом стоп-заявок
* users.go - примеры работы с сервисом счетов
* sandbox.go - пример работы с песочницей
* `md_stream.go`, orders_stream.go, operations_stream.go - примеры работы со стримами
* `instruments.go` - примеры работы с сервисом инструментов
* `marketdata.go` - примеры работы с сервисом котировок
* `operations.go` - примеры работы с сервисом операций
* `orders.go` - примеры работы с сервисом торговых поручений
* `stop_orders` - примеры работы с сервисом стоп-заявок
* `users.go` - примеры работы с сервисом счетов
* `sandbox.go` - пример работы с песочницей
* `order_book_download/order_book.go` - пример сохранения стаканов из стрима маркетдаты в sqlite или json

#### Конфигурация SDK
```go
type Config struct {
// EndPoint - Для работы с реальным контуром и контуром песочницы нужны разные эндпоинты.
// По умолчанию = sandbox-invest-public-api.tinkoff.ru:443
// https://tinkoff.github.io/investAPI/url_difference/
EndPoint string `yaml:"EndPoint"`
// Token - Ваш токен для Tinkoff InvestAPI
Token string `yaml:"APIToken"`
// AppName - Название вашего приложения, по умолчанию = tinkoff-api-go-sdk
AppName string `yaml:"AppName"`
// AccountId - Если уже есть аккаунт для апи можно указать напрямую,
// для песочницы создастся и запишется автоматически
AccountId string `yaml:"AccountId"`
// DisableResourceExhaustedRetry - Если true, то сдк не пытается ретраить, после получения ошибки об исчерпывании
// лимита запросов, если false, то сдк ждет нужное время и пытается выполнить запрос снова. По умолчанию = false
DisableResourceExhaustedRetry bool `yaml:"DisableResourceExhaustedRetry"`
// DisableAllRetry - Отключение всех ретраев
DisableAllRetry bool `yaml:"DisableAllRetry"`
// MaxRetries - Максимальное количество попыток переподключения, по умолчанию = 3
// (если указать значение 0 это не отключит ретраи, для отключения нужно прописать DisableAllRetry = true)
MaxRetries uint `yaml:"MaxRetries"`
}
```
Для проверки достаточно указать токен и запустить пример `sandbox.go`

### Дополнительные возможности
* **Загрузка исторических данных.** В рамках сервиса `Marketdata`, метод `GetHistoricCandles` возвращает список
свечей в интервале (from - to), метод `GetAllHistoricCandles` возвращает все доступные свечи.
* **Получение метеданных.** В теле ответа Unary - методов присутствует `grpc.Header`, при момощи методов
`investgo.MessageFromHeader` и `investgo.RemainingLimitFromHeader` вы можете получить сообщение ошибки,
и текущий остаток запросов соответсвенно. Подробнее про заголовки [тут](https://tinkoff.github.io/investAPI/grpc/)
* **Переподключение.** По умолчанию включен ретраер, который при получении ошибок от grpc пытается выполнить запрос повторно,
а в случае со стримами переподклчается и переподписывает стрим на всю подписки. Отдельно можно
отключить ретраер для ошибки `ResourceExhausted`, по умолчанию он включен и в случае превышения лимитов Unary - запросов,
ретраер ждет нужное время и продолжает выполнение, *при этом никакого сообщения об ошибке для клиента нет*.

#### Пример использования MarketDataStreamService
```go
Expand Down

0 comments on commit 833210d

Please sign in to comment.