Всем привет. Подскажите плиз как правильно выводить стакан и регистрироваться на событие его изменение(котировок стакана)? Делаю все примерно так:
- При подключении к квику стартую вывод таблицы текущих параметров 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); // здесь квик начинает вывод стакана по дде } };
- И пытаюсь текст боксе увидеть результат обновления стакана
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
пардон .... не дописал) пункт 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).
ооо эврика))) долго же я размышлял над этой темой)) спасибо