Skip to content

[Bug] Незакрытые свечи в SubscribeCandlesRequest #236

Open
Stark-lnk opened this issue Jul 3, 2023 · 2 comments
Open

[Bug] Незакрытые свечи в SubscribeCandlesRequest #236

Stark-lnk opened this issue Jul 3, 2023 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@Stark-lnk
Copy link

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

Добрый день!

Столкнулся с багом когда при подписке на стрим свечей с указанием waiting_close=True приходят незакрытые свечи (см скриншот). Т.е приходят данные за 8:36 в нулевую секунду этой свечи (в 8:36:00 вместо 8:36:59).
Свеча может придти не только в самом начале самой себя, но и середине и за 5 секунд до конца).

image

При использовании
market_data_stream: AsyncMarketDataStreamManager = (client.create_market_data_stream()) market_data_stream.candles.waiting_close().subscribe(figi_instruments)
Аналогичная проблема(

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

import asyncio

from tinkoff.invest import (
    AsyncClient,
    SubscriptionInterval,
)
from tinkoff.invest import CandleInstrument, MarketDataRequest, SubscribeCandlesRequest, SubscriptionAction

INSTRUMENTS = [
    {"ticker": "SBER", "figi": "BBG004730N88"},
]


async def request_iterator(instruments):
    figi_instruments = list(map(lambda instrument: CandleInstrument(instrument["figi"],
                                                                    interval=SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_MINUTE),
                                instruments))

    yield MarketDataRequest(
        subscribe_candles_request=SubscribeCandlesRequest(
            waiting_close=True,
            subscription_action=SubscriptionAction.SUBSCRIPTION_ACTION_SUBSCRIBE,
            instruments=figi_instruments,
        )
    )
    while True:
        await asyncio.sleep(1)


async def update_data_and_start_strategy(client):
    async for marketdata in client.market_data_stream.market_data_stream(
            request_iterator(INSTRUMENTS)):
        print(marketdata)


async def main():
    async with AsyncClient(TOKEN) as client:
        tasks = [asyncio.ensure_future(update_data_and_start_strategy(client))]
        await asyncio.wait(tasks)

Tinkoff Invest Version

0.2.0-beta58

Python Version

3.11

OS

Mac OS (m1)

Логи

No response

@Stark-lnk Stark-lnk added the bug Something isn't working label Jul 3, 2023
@Stark-lnk Stark-lnk changed the title [Bug] Незакртые свечи в SubscribeCandlesRequest [Bug] Незакрытые свечи в SubscribeCandlesRequest Jul 3, 2023
@AlexanderVolkovTCS
Copy link
Contributor

Да, воспроизвели и получили лишнюю свечу при waiting_close=True
Баг в API, поправим, отпишусь тут.
Спасибо за репорт.

@Stark-lnk
Copy link
Author

Так же обнаружил что свеча может придти с последней сделкой в середине минуты, второй свечи с верными данными в таком случае не будет.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants