← 返回

Клиринг

Столкнулся со след. проблемой: мне нужно по открытию новой свечи произвести сделку. то есть например на часовиках текущая свеча 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 - но клиринг РЕАЛЬНО еще не закончился(вчера так получилось).