Доброго времени суток
После обновления на версию 4.0.6, перестал работать вот такой код
this
.When(CandleToken.CandlesStarted())
.Do<IEnumerable<Candle>>(candles =>
{
var candle = candles.ElementAt(0);
};
Ошибка 1 Делегат "System.Func<StockSharp.Algo.Strategies.StrategyRule<System.Collections.Generic.IEnumerable<StockSharp.Algo.Candles.Candle>>,System.Collections.Generic.IEnumerable<StockSharp.Algo.Candles.Candle>,System.Collections.Generic.IEnumerable<StockSharp.Algo.Candles.Candle>>" не принимает "1" аргументов C:\VS2010\AmBot\Strategy.cs 53 42 AmBot
评论 (18)
登录 或 创建账户, 登录或注册以发表评论
Попробуйте так
this .When(CandleToken.CandlesStarted()) .Do(candles => ;
Вот это еще интересно
Обновите все либы, перекомпилируйте проект. всё очень смахивает на локальные баги
Проверил - всё работает как прежде. Нужно пересобрать всё локально Проверял на таком примере:
Я новичек в с#. Не совсем понимаю, что значит пересобрать локально. Но, надеюсь, делаю правильно.
Если просто вставить ваш пример, то да ошибок не выдает (что уже плюс). Но если поставить точку после trades в теле Do, то все равно выдает методы StrategyRule в автокомплите. У вас нет? Я приложил скрин, может проблема в этой перегрузке?
Он у вас подсказку выдаёт для метода Do. candle тут не при чём.
Подсказку я имею ввиду внутри Do а не на самом Do, как в первом моем скриншоте
Разве так должно быть? В версии 4.0.5 такого не было, выдавались методы для коллекции IEnumerable<Candle> ...
Убедили :)
Вот так работает:
У меня и вот такой работает:
this .When(order.NewTrades()) .Do(trades => { trades.ElementAt(0); });
Что-то видимо не до конца указываете. Можете прислать проектный файл целиком с минимальным не компилирующимся кодом.
Работать то у меня работают и те примеры, что вы указали. Но это если их просто скопировать и вставить. А когда начинаешь там что-то менять - добавлять, студия сходит с ума.
Но если определение Do делать, как указал Александр, то все в порядке
У меня то не сходит.
приложите проект. может дело в юзингах \ референсах. дайте посмотреть, лучше сейчас разобраться чем откладывать.
Александр, Михаил
Отправил вам проект в личку. Файл TurtleStrategy.cs
Пробую на двух машинах - домашней и рабочей. Результат одинаковый Референсес все качал из 4.0.6 - Sources c SourceForge Проект перестраивал, юсинги все неиспользуемые удалял. Сыылки тоже все по одной передобавил только те, что были нужны.
Так же пробовал создать чистый проект и вставил туда только те либы, которые нужны были для запуска примера. Результат тот же..
Действительно студия себя ведет неадекватно..
К сообщению прикрепляю файл - всё ок. Ничего не менял в проектах, просто вписал это правило вместо того что там было.
Узнал что это нормально когда студия по нажатию . (интелли сенс) думает что candles - StrategyRule. Тип-то не знает. А он действительно может быть StrategyRule. Допишите руками ElementAt(0) и всё нормально.
в общем - удалите старые файлы, перекомпилируйте - и в бой :)
Значит не глюк.. Видимо просто добавили перегрузку и теперь оно может быть и StrategyRule тоже. Раньше видимо не могло в предыдущих версиях. Ладно, тогда мылю лыжи и в перед к новым подвигам. Хорошо что разобрались 😎