← Назад

Клиринг

Столкнулся со след. проблемой: мне нужно по открытию новой свечи произвести сделку. то есть например на часовиках текущая свеча 13-00. когда наступает 14-00 по идее срабатывает условие isTradeTime == false и программа прогоняется в холостую. а затем сразу после того, как isTradeTime == true. должна произойти покупка. в итоге в 14-03 отправляется заявка, но реально клиринг еще не закончился и в итоге выкидывается исключение "попытка совершить .... в клиринг". Я так понимаю метод isTradeTime проверяет заранее заданные интервалы? Или я ошибаюсь? Можно ли как то гарантировано определить идет ли торговля?

Комментарии (6)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

xaxa: Столкнулся со след. проблемой: мне нужно по открытию новой свечи произвести сделку. то есть например на часовиках текущая свеча 13-00. когда наступает 14-00 по идее срабатывает условие isTradeTime == false и программа прогоняется в холостую. а затем сразу после того, как isTradeTime == true. должна произойти покупка. в итоге в 14-03 отправляется заявка, но реально клиринг еще не закончился и в итоге выкидывается исключение "попытка совершить .... в клиринг". Я так понимаю метод isTradeTime проверяет заранее заданные интервалы? Или я ошибаюсь? Можно ли как то гарантировано определить идет ли торговля?

Exchange.WorkingTime

xaxa
xaxa Автор

Михаил, не совсем понял а как с помощью Exchange.WorkingTime можно гарантировано определить идет ли торговля?

Mikhail Sukhov
Mikhail Sukhov

xaxa: Михаил, не совсем понял а как с помощью Exchange.WorkingTime можно гарантировано определить идет ли торговля?

У WorkingTime есть расписание работы. По нему сверяется текущее биржевое время.

xaxa
xaxa Автор

А рез-т работы base.Security.Exchange.IsTradeTime(base.Trader) разве будет не эквиваленетен base.Security.Exchange.WorkingTime.IsTradeTime(base.Trader.MarketTime) ?

Mikhail Sukhov
Mikhail Sukhov

xaxa: А рез-т работы base.Security.Exchange.IsTradeTime(base.Trader) разве будет не эквиваленетен base.Security.Exchange.WorkingTime.IsTradeTime(base.Trader.MarketTime) ?

Первое вызывает второе.

xaxa
xaxa Автор

Так у меня как раз и сложилась ситуация, когда я использую этот метод :) То есть:

  if (base.Security.Exchange.IsTradeTime(base.Trader) == false)
            {
                return StrategyProcessResults.Continue;
            }
    // далее покупка по открытию свечи

И в итоге получилось что он попытался купить в 14:03 - но клиринг РЕАЛЬНО еще не закончился(вчера так получилось).