событие обновления стакана (MarketDepthsChanged)

событие обновления стакана (MarketDepthsChanged)
Atom
03.07.2012
Николай


Добрый день.

Хотел отлавливать изменения нескольких стаканов.

Возникла проблема - отлавливаются только изменения первого запущенного инструмента.

Подскажите как отлавливать во всех запущенных стаканах изменения.

Заранее спасибо.

С уважением, Николай.

// Запустил два стакана RIU2 и SiU2
trader.RegisterQuotes(_indx_rts);
trader.RegisterQuotes(_indx_usd);

//Пытаюсь отлавливать все изменения в обоих стаканах

	trader.MarketDepthsChanged += depths =>
						{
                            if (_depth_usd == null && _indx_usd != null && _indx_rts!= null)
                            {
                                _depth_usd = depths.FirstOrDefault(d => d.Security == _indx_usd);
                                _depth_rts = depths.FirstOrDefault(d_rts => d_rts.Security == _indx_rts);

//Отлавливаются только изменения в первом запущенном инструменте. 

Теги:


Спасибо:


OvcharenkoVI

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


не проще сделать так:

this .When(Security.MarketDepthChanged().Or((Security2.MarketDepthChanged)) .Do(Action);

Спасибо:

Николай

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


Честно говоря не понял.

Что в данном случает является security ?

не понял, т.к. MarketDepthChanged - является событием QuickTrader. A Security - относиться к StockSharp.BusinessEntities

Спасибо:

tantin

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


создаем 2 стратегии по разным инструментам

_strategy_lkoh = new MyStrategy() ; _strategy_lkoh.SecurityChanged += SecurityChanged; _strategy_gazp = new MyStrategy2() ; _strategy_gazp.SecurityChanged += SecurityChanged; private void SecurityChanged() { //делаем тут че хотим событие будет вызываться при изменении любого из инструментов }

я так делаю, возможно это не очевидный и не лучший вариант, однако работает

Спасибо:

alexeev.evg

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


Уберите "_depth_usd == null && " из if =)


Trader.NewMarketDepths += depths =>
{

	foreach (var d in depths)
	{
		if (d.Security == _security1)
			_depth1 = d;
		if (d.Security == _security2)
			_depth2 = d;
	}

};

Trader.MarketDepthsChanged += depths =>
	{
	      //тут значения свойствам _depth1 и _depth1 можно не присваивать
	};
Спасибо: Sergey Masyura Maxim Sukhov


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

loading
clippy