Skip to content

Commit

Permalink
#7 Examples how to work with --search key were added to readmes
Browse files Browse the repository at this point in the history
  • Loading branch information
Tim55667757 committed Aug 11, 2022
1 parent e96f3f4 commit d7fb804
Show file tree
Hide file tree
Showing 2 changed files with 189 additions and 11 deletions.
112 changes: 107 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
- [Получить справку по ключам](#Получить-справку-по-ключам)
- [Локальный кэш данных](#Локальный-кэш-данных)
- [Получить список всех доступных для торговли инструментов](#Получить-список-всех-доступных-для-торговли-инструментов)
- [Найти инструмент](#Найти-инструмент)
- [Получить информацию по инструменту](#Получить-информацию-по-инструменту)
- [Запросить стакан цен с заданной глубиной](#Запросить-стакан-цен-с-заданной-глубиной)
- [Запросить таблицу последних актуальных цен для списка инструментов](#Запросить-таблицу-последних-актуальных-цен-для-списка-инструментов)
Expand Down Expand Up @@ -187,14 +188,17 @@ TKSBrokerAPI позволяет автоматизировать рутинны

### Основные возможности

На момент последнего актуального релиза инструмент TKSBrokerAPI умеет:
На момент [последнего релиза](https://pypi.org/project/tksbrokerapi/) инструмент TKSBrokerAPI умеет:

- Кэшировать по умолчанию все данные по всем торгуемым инструментам в файл `dump.json` и использовать его в дальнейшем, что позволяет уменьшить число обращений на сервер брокера;
- ключ `--no-cache` отменяет использование локального кэша, данные запрашиваются с сервера при каждом запуске;
- API-метод: [`DumpInstruments()`](https://tim55667757.github.io/TKSBrokerAPI/docs/tksbrokerapi/TKSBrokerAPI.html#TinkoffBrokerServer.DumpInstruments).
- Получать с сервера брокера список всех доступных для указанного аккаунта инструментов: валют, акций, облигаций, фондов и фьючерсов;
- ключ `--list` или `-l`;
- API-метод: [`Listing()`](https://tim55667757.github.io/TKSBrokerAPI/docs/tksbrokerapi/TKSBrokerAPI.html#TinkoffBrokerServer.Listing).
- Выполнять поиск инструментов, указав только часть их имени, тикера или FIGI идентификатора, либо задав регулярное выражение;
- ключ `--search` или `-s`;
- API-метод: [`SearchInstruments()`](https://tim55667757.github.io/TKSBrokerAPI/docs/tksbrokerapi/TKSBrokerAPI.html#TinkoffBrokerServer.SearchInstruments).
- Запрашивать у брокера информацию об инструменте, зная его тикер или идентификатор FIGI;
- ключ `--info` или `-i`;
- API-методы: [`SearchByTicker()`](https://tim55667757.github.io/TKSBrokerAPI/docs/tksbrokerapi/TKSBrokerAPI.html#TinkoffBrokerServer.SearchByTicker), [`SearchByFIGI()`](https://tim55667757.github.io/TKSBrokerAPI/docs/tksbrokerapi/TKSBrokerAPI.html#TinkoffBrokerServer.SearchByFIGI) и [`ShowInstrumentInfo()`](https://tim55667757.github.io/TKSBrokerAPI/docs/tksbrokerapi/TKSBrokerAPI.html#TinkoffBrokerServer.ShowInstrumentInfo).
Expand Down Expand Up @@ -352,10 +356,10 @@ https://github.com/Tim55667757/TKSBrokerAPI/blob/master/README_EN.md#Usage-examp
и некоторую информацию по ним с сервера брокера. Также можно
задать ключ `--output`, чтобы сохранить список инструментов
в файл, по умолчанию: `instruments.md`.
--dump Команда: получить и сохранить сырые данные по инструментам
с сервера брокера для повторного использования. Требуется указать
ключ `--output`, чтобы сохранить дамп инструментов, по умолчанию:
`iListDump.json`.
--search SEARCH, -s SEARCH
Команда: найти инструмент по части его имени, тикера
или FIGI. Также можно задать ключ `--output`, чтобы сохранить
результаты поиска в файл, по умолчанию: `search-results.md`.
--info, -i Команда: получить информацию с сервера брокера по конкретному
инструменту, зная его тикер или FIGI. Ключ `--ticker` или
ключ `--figi` должны быть заданы!
Expand Down Expand Up @@ -526,6 +530,104 @@ TKSBrokerAPI.py L:3042 DEBUG [2022-07-26 22:04:41,215] TKSBrokerAPI module

</details>

#### Найти инструмент

Чтобы работать с биржевыми инструментами, получать информацию по ним, запрашивать цены и совершать сделки, обычно требуется указать тикер (ключ `--ticker`) или FIGI (ключ `--figi`). Но вряд ли есть много людей, кто знает их наизусть. Чаще всего имеется лишь предположение о части символов тикера или примерного названия компании. В этом случае можно воспользоваться поиском по паттерну: части имени, тикера или FIGI, либо указав регулярное выражение. Поиск осуществляется стандартным python модулем [`re`](https://docs.python.org/3/library/re.html#re.compile), без учёта регистра.

Начиная с версий TKSBrokerAPI v1.2.* добавлен ключ `--search`, после которого нужно указать паттерн. Например, требуется найти все инструменты группы компаний Сбер, тогда можно попробовать задать часть слова: `tksbrokerapi --search "sbe"` (или по-русски `"сбер"`). Или же хочется узнать все инструменты компаний, в названии которых встречаются слова "Российские", "акции" и "облигации". В этом случае можно попробовать скомбинировать слова и задать регулярное выражение: `tksbrokerapi --search "(Росс.*).*(?:.*ции)"`.

Дополнительно к ключу `--search` можно указать ключ `--output` и задать имя файла, куда сохранить результаты поиска. По умолчанию полные результаты поиска сохраняются в `search-results.md`. В консоли отображаются только первые 5 найденных инструмента каждого типа.

После того как нужный инструмент был найден и стали известны его тикер и FIGI, посмотреть более подробную информацию можно командой `tksbrokerapi -t TICKER --info` или `tksbrokerapi -f FIGI --info` ([подробнее](https://github.com/Tim55667757/TKSBrokerAPI#Получить-информацию-по-инструменту)).

<details>
<summary>Команда для поиска инструмента по части названия</summary>

```commandline
$ tksbrokerapi --search "сбер"
TKSBrokerAPI.py L:1065 INFO [2022-08-11 22:00:31,171] # Search results
* **Search pattern:** [сбер]
* **Found instruments:** [21]
**Note:** you can view info about found instruments with key `--info`, e.g.: `tksbrokerapi -t TICKER --info` or `tksbrokerapi -f FIGI --info`.
### Shares: [2]
| Type | Ticker | Full name | FIGI |
|------------|--------------|----------------------------------------------------------------|--------------|
| Shares | SBER | Сбер Банк | BBG004730N88 |
| Shares | SBERP | Сбер Банк - привилегированные акции | BBG0047315Y7 |
### Bonds: [8]
| Type | Ticker | Full name | FIGI |
|------------|--------------|----------------------------------------------------------------|--------------|
| Bonds | RU000A101QW2 | Сбер Банк | BBG00V9STNC5 |
| Bonds | RU000A103YM3 | Сбер Банк 002P выпуск 1 | BBG013J0F816 |
| Bonds | RU000A101C89 | Сбер Банк 001P-SBER15 | BBG00RKBQ4D2 |
| Bonds | RU000A102FR3 | Сбербанк | BBG00YHVQ768 |
| Bonds | RU000A103G75 | Сбер Банк 001P-SBER32 | BBG0122KNFZ0 |
| ... | ... | ... | ... |
### Etfs: [1]
| Type | Ticker | Full name | FIGI |
|------------|--------------|----------------------------------------------------------------|--------------|
| Etfs | RU000A104172 | ЗПИФ ПАРУС-Сберлог | TCS00A104172 |
### Futures: [10]
| Type | Ticker | Full name | FIGI |
|------------|--------------|----------------------------------------------------------------|--------------|
| Futures | SPH2 | SBPR-3.22 Сбер Банк (привилегированные) | FUTSBPR03220 |
| Futures | SRU2 | SBRF-9.22 Сбер Банк (обыкновенные) | FUTSBRF09220 |
| Futures | SRH3 | SBRF-3.23 Сбер Банк (обыкновенные) | FUTSBRF03230 |
| Futures | SRH2 | SBRF-3.22 Сбер Банк (обыкновенные) | FUTSBRF03220 |
| Futures | SPM2 | SBPR-6.22 Сбер Банк (привилегированные) | FUTSBPR06220 |
| ... | ... | ... | ... |
TKSBrokerAPI.py L:1066 INFO [2022-08-11 22:00:31,172] You can view info about found instruments with key `--info`, e.g.: `tksbrokerapi -t IBM --info` or `tksbrokerapi -f BBG000BLNNH6 --info`
TKSBrokerAPI.py L:1072 INFO [2022-08-11 22:00:31,172] Full search results were saved to file: [search-results.md]
```

</details>

<details>
<summary>Команда для поиска инструмента по регулярному выражению</summary>

```commandline
$ tksbrokerapi --search "(Росс.*).*(?:.*ции)"
TKSBrokerAPI.py L:1067 INFO [2022-08-11 22:41:39,039] # Search results
* **Search pattern:** [(Росс.*).*(?:.*ции)]
* **Found instruments:** [5]
**Note:** you can view info about found instruments with key `--info`, e.g.: `tksbrokerapi -t TICKER --info` or `tksbrokerapi -f FIGI --info`.
### Shares: [1]
| Type | Ticker | Full name | FIGI |
|------------|--------------|----------------------------------------------------------------|--------------|
| Shares | RSTIP | Российские сети - акции привилегированные | BBG000KTF667 |
### Etfs: [4]
| Type | Ticker | Full name | FIGI |
|------------|--------------|----------------------------------------------------------------|--------------|
| Etfs | AMRE | АТОН Российские акции + | TCS00A102XX4 |
| Etfs | AMRB | АТОН Российские облигации + | TCS00A102XY2 |
| Etfs | SBCB | Первая - Фонд Российские еврооблигации | BBG00NB6KGN0 |
| Etfs | AKME | Альфа-Капитал Управляемые Российские Акции | BBG00YRW4B42 |
TKSBrokerAPI.py L:1068 INFO [2022-08-11 22:41:39,039] You can view info about found instruments with key `--info`, e.g.: `tksbrokerapi -t IBM --info` or `tksbrokerapi -f BBG000BLNNH6 --info`
TKSBrokerAPI.py L:1074 INFO [2022-08-11 22:41:39,040] Full search results were saved to file: [search-results.md]
```

</details>

#### Получить информацию по инструменту

Используется ключ `--info` (`-i`), а также необходимо указать одно из двух: тикер инструмента, либо его FIGI идентификатор. Они задаются ключами `--ticker` (`-t`) и `--figi` (`-f`) соответственно. Выводимая пользователю информация при этом не отличается для обоих ключей. Разница имеется в содержании и количестве полей, отображаемых в информационной таблице, в зависимости от типа найденного инструмента: это валюта, акция, облигация, фонд или фьючерс.
Expand Down
Loading

0 comments on commit d7fb804

Please sign in to comment.