Всем привет. Подскажите плиз как правильно выводить стакан и регистрироваться на событие его изменение(котировок стакана)? Делаю все примерно так:
- При подключении к квику стартую вывод таблицы текущих параметров quik.Connected += () => { quik.StartDde(quik.SecuritiesTable); ToLog("conneced..."); _isConnected = true; };
- При появлении новой секурити quik.NewSecurities += securities => { if (sber == null) sber = securities.FirstOrDefault(sec => sec.Code == secCode); if (sber != null) { ToLog("Инструмент появился."); stak = new MarketDepth(sber); stak.QuotesChanged += new Action<OrderDirections, System.Collections.Generic.IDictionary<int, Quote>>(stak_QuotesChanged); quik.StartDde(sber); // здесь квик начинает вывод стакана по дде } };
- И пытаюсь текст боксе увидеть результат обновления стакана
Comments (3)
Login or Create account, Log in or register to leave a comment
пардон .... не дописал) пункт 3. void stak_QuotesChanged(OrderDirections arg1, System.Collections.Generic.IDictionary<int, Quote> arg2) { foreach (var qoute in quik.GetMarketDepth(sber)) { ToLog("Направление " + qoute.OrderDirection + " Объем "+ qoute.Volume +" Цена "+ qoute.Price); } }
Результат моей работы: в текст боксе ничего не появляется при отладке приложения и просмотре внутренних полей stak было замечено что все поля нулевые кроме конечно Security
Возможно я что-то путаю, но по-моему чтобы отслеживать изменения котировок нужно вызвать либо trader.RegisterQuotes(security), либо GetMarketDepth(security).
ооо эврика))) долго же я размышлял над этой темой)) спасибо