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

событие обновления стакана (MarketDepthsChanged)
Atom
7/3/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);

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

Tags:


Thanks:


OvcharenkoVI

Avatar
Date: 7/3/2012
Reply


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

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

Thanks:

Николай

Avatar
Date: 7/3/2012
Reply


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

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

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

Thanks:

tantin

Avatar
Date: 7/7/2012
Reply


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

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

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

Thanks:

alexeev.evg

Avatar
Date: 7/13/2012
Reply


Уберите "_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 можно не присваивать
	};
Thanks: Sergey Masyura Maxim Sukhov


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

loading
clippy