Skip to content

release-1.2.62

Choose a tag to compare

@Tim55667757 Tim55667757 released this 23 Aug 17:15
· 781 commits to master since this release
358b8c2

Release notes (in english)
Issues included in the release

PyPI: 1.2.62 (2022-08-23)

Новая функциональность

  • #13 Для уменьшения количества запросов к серверу, добавлена возможность кэширования данных по биржевым инструментам. Кэш используется по умолчанию при первичной инициализации класса TinkoffBrokerServer, но это действие можно отменить через переменную класса useCache=False или используя ключ --no-cache в консоли. Добавлен метод DumpInstruments(), с помощью которого можно создать дамп данных с сервера. В класс TinkoffBrokerServer также добавлена переменная iListDumpFile (путь до кэша, по умолчанию dump.json). Кэш автоматически обновляется, если идёт другой день, чем день последнего изменения файла dump.json. Примечание: все даты используются в UTC-формате.
  • #7 Добавлена возможность поиска инструмента по части названия, тикера или FIGI с помощью ключа --search (или -s). Реализован метод для поиска SearchInstruments(), которому на вход можно передать поисковый паттерн: часть слова или строку с регулярным выражением. В качестве результата метод возвращает словарь словарей, похожий на переменную iList, но содержащий только найденные инструменты (примеры).
  • Был добавлен новый метод IsInPortfolio(). Он проверяет на наличие инструмента в портфеле пользователя. Инструмент должен быть задан через self.ticker (приоритетно) или через self.figi. Метод возвращает True, если портфель содержит открытую позицию по инструменту, в противном случае возвращает False.
  • Был добавлен новый метод GetInstrumentFromPortfolio(). Он возвращает данные по инструменту, если он есть в портфеле пользователя. Инструмент должен быть задан через self.ticker (приоритетно) или через self.figi.

Улучшения

  • #12 В общую информацию о состоянии портфеля (ключ --overview или -o), добавлен раздел "Распределение портфеля по странам" (пример).
  • #8 Добавлен ключ --no-cancelled и переменная showCancelled в методе Deals(), чтобы регулировать отображение информации об отменённых операциях при использовании ключа --deals (или -d). Изменено имя файла с отчётом по умолчанию: вместо report.md теперь используется deals.md.
  • #42 Добавлен пример реализации абстрактного торгового сценария.
  • В секцию stat результатов, выдаваемых методом Overview(), было добавлено поле funds. Теперь в нём хранится словарь доступных для торговли средств по каждой валюте (всего средств - заблокированные средства), например, {"rub": {"total": 10000.99, "totalCostRUB": 10000.99, "free": 1234.56, "freeCostRUB": 1234.56}, "usd": {"total": 250.55, "totalCostRUB": 15375.80, "free": 125.05, "freeCostRUB": 7687.50}}.

Баг-фиксы

  • Исправлен тип данных для облигаций (неправильно: iJSON["type"] == "Bond", правильно: iJSON["type"] == "Bonds").
  • Исправлена ошибка с JSON-декодером: TypeError: JSONDecoder.__init__() got an unexpected keyword argument 'encoding'. Ошибка была из-за изменений в Python 3.9: аргумент encoding был удалён. Смотрите: https://docs.python.org/3/library/json.html#json.loads
  • Исправлена ошибка с неверным расчётом оставшихся свободных средств в рублях: Overview()["stat"]["funds"]["rub"].