← Voltar

4.2.20 перестал работать GetCandleBounds()

Версия 4.2.20, перестал работать метод GetCandleBounds() Вот кусов кода из стратегии (на .16 все работает):


var time = timeFrame.GetCandleBounds(Security).Min - timeFrame;

Начиная с .19 выдает следующие ошибки:

Error 1 'System.TimeSpan' does not contain a definition for 'GetCandleBounds' and the best extension method overload 'StockSharp.Algo.Candles.CandleHelper.GetCandleBounds(System.TimeSpan, System.DateTime)' has some invalid arguments Error 2 Argument 2: cannot convert from 'StockSharp.BusinessEntities.Security' to 'System.DateTime'

Este tópico foi útil?

Compartilhar tópico

Comentários (6)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

esper
esper

Поиск по форуму может творить чудеса.

devruss
devruss Autor

esper: Поле Connector для инструмента и стакана больше не заполняется, т.о. невозможно получить текущее время для инструмента, необходимо вручную передавать Connector.CurrentTime.

Не понял из этого ни слова... Как нужно изменить код, чтобы он заработал?

Хочу напомнить, что мы тут не программированием занимаемся, а торгуем с помощью S#, и если вы меняете часть функциональности, то было бы круто

  1. Оповещать об этом заранее
  2. Предоставлять вариант transition кода, чтобы можно было легко код для старых версий поменять под новый билд
JaguarFX
JaguarFX

Ну не будь таким лентяем: http://stocksharp.com/forum/4688/&=

devruss
devruss Autor

lebedevsrg: Ну не будь таким лентяем: http://stocksharp.com/forum/4688/&=

Был уже там, 2 поста выше, я процетировал ответ из твоей темы.

Несмотря на наличие ответа, мне все равно до конца не ясно, что можно изменить. Connector.CurrentTime по ссылке в стратегию не передается, только значение... значит надо постоянно обновлять, а это совсем неправильно...

Как нужно изменить код, чтобы он заработал?

JaguarFX
JaguarFX

У стратегии есть Connector, его и можно запрашивать при обработке каждой свечи в ProcessCandle. Код я переписал так и все прекрасно работает


            var timeFrame = (TimeSpan)candle.Arg;
            var time = Connector.CurrentTime - timeFrame;
	    if (candle.OpenTime < time) return;

devruss kornego Slepoy
devruss
devruss Autor

lebedevsrg: У стратегии есть Connector, его и можно запрашивать при обработке каждой свечи в ProcessCandle. Код я переписал так и все прекрасно работает

        var timeFrame = (TimeSpan)candle.Arg;
        var time = Connector.CurrentTime - timeFrame;
    if (candle.OpenTime < time) return;

Спасибо, все опять работает!