Добрый день.
Хотел отлавливать изменения нескольких стаканов.
Возникла проблема - отлавливаются только изменения первого запущенного инструмента.
Подскажите как отлавливать во всех запущенных стаканах изменения.
Заранее спасибо.
С уважением, Николай.
// Запустил два стакана 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);
//Отлавливаются только изменения в первом запущенном инструменте.
Комментарии (4)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
не проще сделать так:
this .When(Security.MarketDepthChanged().Or((Security2.MarketDepthChanged)) .Do(Action);
Честно говоря не понял.
Что в данном случает является security ?
не понял, т.к. MarketDepthChanged - является событием QuickTrader. A Security - относиться к StockSharp.BusinessEntities
создаем 2 стратегии по разным инструментам
_strategy_lkoh = new MyStrategy() ; _strategy_lkoh.SecurityChanged += SecurityChanged; _strategy_gazp = new MyStrategy2() ; _strategy_gazp.SecurityChanged += SecurityChanged; private void SecurityChanged() { //делаем тут че хотим событие будет вызываться при изменении любого из инструментов }
я так делаю, возможно это не очевидный и не лучший вариант, однако работает
Уберите "_depth_usd == null && " из if =)