класс взят из примера
public class SmaStrategy : Strategy
{
private void ProcessCandle(Candle candle)
{
...
// добавляем новую свечку
LongSma.Process(candle);
ShortSma.Process(candle); // Здесь выкидывает ошибка, {"Коллекция была изменена; невозможно выполнить операцию перечисления."}
// вычисляем новое положение относительно друг друга
var isShortLessThenLong = ShortSma.GetCurrentValue() < LongSma.GetCurrentValue();
...
}
}
При том что лонг отрабатывает, а шорт выкидывает ошибку, не могу разобраться какая коллекция изменена и кем это происходит при чтении из квика. подскажите какая коллекция изменена?
评论 (7)
登录 或 创建账户, 登录或注册以发表评论
Ошибка вылазит в других кусках, но в том же месте:
ошибка: <mark>Collection was modified; enumeration operation may not execute.</mark>
здесь наверное баг, что-то идет не так, наверное буфер кидает или что-то не то, помогите разобраться, может слишком большая история, но оно не доходит до ограничения, всего 31 000
screen: http://prntscr.com/1cx4mx
У меня такая же проблема. Решили ли вы свою? Если да, то не могли бы подсказать?
Какая версия S#?
версия 4.2.1.3
Приведите текст ошибки
текст. таймфрейм 1 тик, если это важно
вроде решил задачу удалением из стратегии строчек LongSma.Process(candle); ShortSma.Process(candle);