Стратегия из примера кидает ошибку


Стратегия из примера кидает ошибку
Atom
6/27/2013


класс взят из примера

Code
public class SmaStrategy : Strategy
{  
      private void ProcessCandle(Candle candle)
        {
            ...

            // добавляем новую свечку
            LongSma.Process(candle);
            ShortSma.Process(candle); // Здесь выкидывает ошибка, {"Коллекция была изменена; невозможно выполнить операцию перечисления."}

            // вычисляем новое положение относительно друг друга
            var isShortLessThenLong = ShortSma.GetCurrentValue() < LongSma.GetCurrentValue();

            ... 
        }
}

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

Tags:


Thanks:


Andrii

Avatar
Date: 7/1/2013
Reply


Ошибка вылазит в других кусках, но в том же месте:

Code
 //вычисляем значение лонга
var longValue = candle.State == CandleStates.Finished ? new ChartIndicatorValue(Strategy.LongSma, Strategy.LongSma.Process(candle)) : null;

ошибка:
Collection was modified; enumeration operation may not execute.

здесь наверное баг, что-то идет не так, наверное буфер кидает или что-то не то, помогите разобраться, может слишком большая история, но оно не доходит до ограничения, всего 31 000

screen: http://prntscr.com/1cx4mx
Thanks:

duzers

Avatar
Date: 1/19/2014
Reply


У меня такая же проблема. Решили ли вы свою? Если да, то не могли бы подсказать?
Thanks:

Mikhail Sukhov

Avatar
Date: 1/19/2014
Reply


duzers Go to
У меня такая же проблема. Решили ли вы свою? Если да, то не могли бы подсказать?


Какая версия S#?
Thanks:

duzers

Avatar
Date: 1/20/2014
Reply


версия 4.2.1.3
Thanks:

Mikhail Sukhov

Avatar
Date: 1/20/2014
Reply


Приведите текст ошибки
Thanks:

duzers

Avatar
Date: 1/20/2014
Reply


текст. таймфрейм 1 тик, если это важно
Thanks:

duzers

Avatar
Date: 1/22/2014
Reply


вроде решил задачу удалением из стратегии строчек LongSma.Process(candle);
ShortSma.Process(candle);
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy