Tinkoff/invest-python

[Bug] Возвращаемые данные об облигации не соответствуют действительности

vovabush opened this issue · 2 comments

Что случилось?

При запросе данных об облигации RU000A101228 возвращается поле floating_coupon_flag равное False, подразумевая, что купон у облигации постоянный:

Возвращаемый ответ Bond(figi='BBG00QXGFHS6', ticker='RU000A101228', class_code='TQCB', isin='RU000A101228', lot=1, currency='rub', klong=Quotation(units=0, nano=0), kshort=Quotation(units=0, nano=0), dlong=Quotation(units=0, nano=0), dshort=Quotation(units=0, nano=0), dlong_min=Quotation(units=0, nano=0), dshort_min=Quotation(units=0, nano=0), short_enabled_flag=False, name='МОЭК выпуск 3', exchange='MOEX', coupon_quantity_per_year=2, maturity_date=datetime.datetime(2025, 11, 7, 0, 0, tzinfo=datetime.timezone.utc), nominal=MoneyValue(currency='rub', units=1000, nano=0), initial_nominal=MoneyValue(currency='rub', units=1000, nano=0), state_reg_date=datetime.datetime(2019, 11, 13, 0, 0, tzinfo=datetime.timezone.utc), placement_date=datetime.datetime(2019, 11, 15, 0, 0, tzinfo=datetime.timezone.utc), placement_price=MoneyValue(currency='rub', units=1000, nano=0), aci_value=MoneyValue(currency='rub', units=22, nano=170000000), country_of_risk='RU', country_of_risk_name='Российская Федерация', sector='energy', issue_kind='documentary', issue_size=5000000, issue_size_plan=5000000, trading_status=, otc_flag=False, buy_available_flag=True, sell_available_flag=True, floating_coupon_flag=False, perpetual_flag=False, amortization_flag=False, min_price_increment=Quotation(units=0, nano=10000000), api_trade_available_flag=True, uid='c8312d21-c30c-4415-a393-e54f068e9538', real_exchange=, position_uid='48af59c0-e849-434c-8a90-dd52400bd4aa', for_iis_flag=True, for_qual_investor_flag=False, weekend_flag=False, blocked_tca_flag=False, first_1min_candle_date=datetime.datetime(2019, 11, 15, 15, 8, tzinfo=datetime.timezone.utc), first_1day_candle_date=datetime.datetime(2019, 11, 15, 7, 0, tzinfo=datetime.timezone.utc))

Если посмотреть в мобильном приложении Тинькофф на историю выплаты купонов, и, например, сюда, становится видно, что купон плавающий.

Думаю, ошибка на стороне сервера или БД, нежели библиотеки. Но было бы неплохо исправить, если я все правильно понял.

Воспроизведение

from tinkoff.invest import Client


with Client(TOKEN) as client:
    bond = client.instruments.bond_by(id_type=1, id='BBG00QXGFHS6')
    print(bond)

Tinkoff Invest Version

0.2.0-beta47

Python Version

3.10

OS

Windows

Логи

No response

При запросе данных об облигации RU000A101228 возвращается поле floating_coupon_flag равное False, подразумевая, что купон у облигации постоянный

Если floating_coupon_flag равняется False, то это вовсе не означает, что купоны у облигации постоянные.

Если посмотреть в мобильном приложении Тинькофф на историю выплаты купонов, и, например, сюда, становится видно, что купон плавающий.

Если посмотреть на историю выплаты купонов в мобильном приложении, то видно, что величина купонов изменилась, но это не значит, что купон плавающий. По приведённой вами ссылке видно, что купон переменный. Соответственно, никакой ошибки нет. Если воспользоваться GetBondCoupons, то можно получить купоны по облигации и увидеть их тип. У облигации RU000A101228 все купоны имеют переменный тип. Все возможные типы купонов в Tinkoff API можно посмотреть в документации.

Спасибо, разобрался, исправил, Issue можно тогда закрыть.