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


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

Код
public class SmaStrategy : Strategy
{  
      private void ProcessCandle(Candle candle)
        {
            ...

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

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

            ... 
        }
}

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

Теги:


Спасибо:


Andrii

Фотография
Дата: 01.07.2013
Ответить


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

Код
 //вычисляем значение лонга
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
Спасибо:

duzers

Фотография
Дата: 19.01.2014
Ответить


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

Mikhail Sukhov

Фотография
Дата: 19.01.2014
Ответить


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


Какая версия S#?
Спасибо:

duzers

Фотография
Дата: 20.01.2014
Ответить


версия 4.2.1.3
Спасибо:

Mikhail Sukhov

Фотография
Дата: 20.01.2014
Ответить


Приведите текст ошибки
Спасибо:

duzers

Фотография
Дата: 20.01.2014
Ответить


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

duzers

Фотография
Дата: 22.01.2014
Ответить


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


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

loading
clippy