CandleBuilder.CandleStarted вызывается несколько раз для одной свечки


CandleBuilder.CandleStarted вызывается несколько раз для одной свечки
Atom
27.02.2012


Для построения графиков по сделкам использую следующий код:
Код

var trades = Core.Storage.GetTradeStorage(Security).Load(Core.Yesterday, Core.Yesterday + TimeSpan.FromTicks(TimeSpan.TicksPerDay - 1));
var bld = new CandleBuilder(new RawConvertableCandleBuilderSource<Trade>(trades)) { IsSyncRegister = true };
bld.CandlesStarted += (t, c) =>
{
	var candles = c.Cast<TimeFrameCandle>();
	Storage.Save(candles);

	Core.LogMessage(candles.Count() + " свечек построено для " + this);

	bld.Dispose();
};
bld.RegisterTimeFrameCandles(Security, TimeFrame);

Через событие CandlesStarted отдается массив сразу всех свечек за день.
Всегда работал хорошо, но сегодня обнаружил что для RIH2 за 24.02.12 с минутным таймфреймом почему-то косячит - свечки 12:32 и 12:33 в возвращаемом CandlesStarted массиве присутствуют много раз:
Код

...
candleStarted candle time: 24.02.2012 12:30:00
candleStarted candle time: 24.02.2012 12:31:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:32:00
candleStarted candle time: 24.02.2012 12:33:00
candleStarted candle time: 24.02.2012 12:34:00


Обновился до 4.0.20v2, качал сделки заново, строил заново - ничего не помогает.
Сделки качаю с финама, в получаемом текстовом файле смотрел - сделки по вермени расположены без нарушений, вроде все в порядке...

Теги:


Спасибо:


1 2  >
Supervisor

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


Попробовал гидрой - точно так же неправильно строит.
Плюс обнаружил аналогичные ошибки в 10:04 и 10:45.
Спасибо:

Alexander

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


Посмотрим как будет время.
Спасибо:

Alexander

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


На SampleEmulationTesting воспроизводится?
Добавил подписку на событие сразу после инициализации builder - ни разу не пришли повторные свечки.

Запускал 3 раза для верности.

Код
			builder.CandlesStarted += builder_CandlesStarted;


		private SynchronizedList<Candle> finishedCandles = new SynchronizedList<Candle>();

		void builder_CandlesStarted(CandleToken arg1, IEnumerable<Candle> arg2)
		{
			foreach (var candle in arg2)
			{
				if (!finishedCandles.Contains(candle))
					finishedCandles.Add(candle);
				else
				{
					MessageBox.Show("found!");
				}
			}
		}



Ни окошка, ни брэйкпоинт не сработали - всё ок, добавляются все неповторные.
Спасибо:

Supervisor

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


Хочу уточнить - а нужно проверять на SampleEmulationTesting если у меня на гидре воспроизводится?
При чем только в этом дне - 24.02 наблюдается проблема, если пробовать на других то все нормально.

Спасибо:

Alexander

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


Сделал всё тоже самое, не воспроизвелось:

гидра

Для исправления конечно надо такое, что и я смогу воспроизвести. А то исправлять непонятно что и непонятно где.
Спасибо:

Supervisor

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


Возможно у Вас сделки скачаны не с Финама, а с другого источника.
Сейчас попробовал в гидре удалить сделки финамовские, скачать с ртс и построить по ним - все построило правильно.
А по финамовским - опять то же самое.
Спасибо:

Alexander

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


Для SampleEmulationTesting воспроизводится?
Спасибо:

Supervisor

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


Прогнал пару раз - не воспроизводится
Спасибо:

Supervisor

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


То есть, я так понимаю, выход один - не использовать финам, использовать ртс
Спасибо:

Alexander

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


Supervisor Перейти
То есть, я так понимаю, выход один - не использовать финам, использовать ртс


Либо ждать фикса
Спасибо:
1 2  >

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

loading
clippy