4.2.20 перестал работать GetCandleBounds()
Atom Ответить
25.08.2014


Версия 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'

Теги:


Спасибо:




6 Ответов
esper

Фотография
Программист
Дата: 26.08.2014
Ответить


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

devruss

Фотография
Курсы
Дата: 26.08.2014
Ответить


esper Перейти

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


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

Хочу напомнить, что мы тут не программированием занимаемся, а торгуем с помощью S#, и если вы меняете часть функциональности, то было бы круто
1. Оповещать об этом заранее
2. Предоставлять вариант transition кода, чтобы можно было легко код для старых версий поменять под новый билд
Автор топика
Спасибо:

JaguarFX

Фотография
Курсы
Дата: 26.08.2014
Ответить


Ну не будь таким лентяем:
https://stocksharp.ru/forum/4688/&=
Спасибо:

devruss

Фотография
Курсы
Дата: 26.08.2014
Ответить


lebedevsrg Перейти
Ну не будь таким лентяем:
https://stocksharp.ru/forum/4688/&=


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

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

Цитата:

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



Автор топика
Спасибо:

JaguarFX

Фотография
Курсы
Дата: 26.08.2014
Ответить


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

var timeFrame = (TimeSpan)candle.Arg;
var time = Connector.CurrentTime - timeFrame;
     if (candle.OpenTime < time) return;
Спасибо: devruss kornego Slepoy

devruss

Фотография
Курсы
Дата: 26.08.2014
Ответить


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

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


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy