Не вызываются события стакана
~/topic/1134/ne-vyzyvayutsya-sobytiya-stakana/
Copyright @ StockSharp Platform LLC 2010 - 2024
2024-03-29T12:57:58Z
https://stocksharp.ru/images/logo.png
https://stocksharp.ru/posts/m/3974/
Спасибо. Получилось
2010-09-20T18:18:00Z
2010-09-20T18:18:00Z
Lafert
https://stocksharp.ru/users/26871/
info@stocksharp.ru
Спасибо. Получилось<br /><br />
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/3973/
Иду по шагам: 1. f (Securities.IndexOf(mysec => mysec.security.Equals(security as Security)) < 0) ду...
2010-09-20T17:19:00Z
2010-09-20T17:19:00Z
Mikhail Sukhov
https://stocksharp.ru/users/201/
info@stocksharp.ru
Иду по шагам:<br /><br />1. f (Securities.IndexOf(mysec => mysec.security.Equals(security as<br />Security)) < 0) думаю можно смело заменить на Securities.Contains<br />2. Нельзя создавать объекты по new. Это делает сам шлюз. Как<br />результат, шлюз изменяется совсем другой объект, нежели Ваш. Это<br />касается всего, кроме заявок. Получайте объект стакана из<br />ITrader.GetQuotes(Security).<br />3. Насчет закрытия не понял. Где получаете ошибку с очередью? В Квике?<br />Так Вы же его закрываете.<br /><br />
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/3972/
_trader.NewSecurities += (securities) => { foreach(Security security in securities) { if (Securitie...
2010-09-20T17:08:00Z
2010-09-20T17:08:00Z
Lafert
https://stocksharp.ru/users/26871/
info@stocksharp.ru
_trader.NewSecurities += (securities) =><br /> {<br /> foreach(Security security in securities)<br /> {<br /> if (Securities.IndexOf(mysec =><br />mysec.security.Equals(security as Security)) < 0)<br /> {<br /> MarketDepth stakan = new<br />MarketDepth(security);<br /> stakan.QuotesChanged += (odr, quotes) =><br /> {<br /> foreach (Quote qt in quotes.Values)<br /> {<br /> to_log("{0} {1} {2}<br />{3}".Put(stakan.Security.Id, odr, qt.Price, qt.Volume));<br /> }<br /> };<br /> stakan.UpdatingStarted += () =><br /> {<br /> to_log("{0}<br />stakan.UpdatingStarted".Put(security.Id));<br /> };<br /> stakan.UpdatingFinished += () =><br /> {<br /> to_log("{0}<br />stakan.UpdatingFinished".Put(stakan.Security.Id));<br /> StakanUpdated(stakan);<br /> };<br /> AddSecurities(security, stakan);<br /><br /> }<br /> }<br /> };<br /> }<br /><br /> public void AddSecurities(Security security, MarketDepth stakan)<br /> {<br /> if (security == null)<br /> throw new ArgumentNullException("security");<br /> int _daily_sqlId = 0;<br /> try<br /> {<br /> _trader.RegisterQuotes(security);<br /> }<br /> catch (Exception ex) { to_log(ex.Message); }<br /> Securities.Add(security);<br /> _security_stakans.Add(security, stakan);<br /> to_log("Добавлен инструмент {0}".Put(security.Id));<br /> }<br /><br />После этого стаканы в квике регитрируются, но событий не происходит.<br />Не происходити события ProcessUnknownDdeData.<br />После закрытия квика в окне сообщений Квика - переполнена очередь<br />сообщений по инструмкенту.<br /><br />
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/3971/
Приведите код обработчика. Не понятно с описания.
2010-09-20T16:51:00Z
2010-09-20T16:51:00Z
Mikhail Sukhov
https://stocksharp.ru/users/201/
info@stocksharp.ru
Приведите код обработчика. Не понятно с описания.<br /><br />
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/3970/
В событии NewSecurities в цикле получаю security, стакан, добавляю к нему события QuotesChanged и Up...
2010-09-20T16:00:00Z
2010-09-20T16:00:00Z
Lafert
https://stocksharp.ru/users/26871/
info@stocksharp.ru
В событии NewSecurities в цикле получаю security, стакан, добавляю к<br />нему события QuotesChanged и UpdateFinished и вставляю стакан в<br />коллекцию. RegisterQuotes происходит, но события не вызываются.<br /><br />Если работаю с одним инструментом и стакан - переменная класса, то все<br />работает.<br />Что я не так делаю? <br />
Copyright @ StockSharp Platform LLC 2010 - 2024