← Zurück

Не получается добавить стакан, SmartTrader

Всем привет! Нужна ваша помощь. Никак не справлюсь. Делаю по аналогии, но не получается. Задача состоит в том, чтобы получить стакан по инструменту. Код ниже (проблем с получением инструмента нет). Подскажите, пж-ста, в чем ошибка. Заранее благодарю

                    using (var trader = new SmartTrader { Login = login, Password = password, Address = SmartComAddresses.Matrix })
                    {
                       
                        trader.Connected += () =>
                        {
                            Console.WriteLine(LocalizedStrings.Str2169);

                            waitHandle.Set();
                        };

                        Console.WriteLine(LocalizedStrings.Str2170);

                        trader.Connect();

                        waitHandle.WaitOne();

                        trader.NewSecurities += securities =>
                        {
                            if (_sec == null)
                            {
                                _sec = securities.FirstOrDefault(sec => sec.Code == secCode && sec.Type == SecurityTypes.Future);

                                if (_sec != null)
                                {
                                    Console.WriteLine(_sec.Code + " инструмент нашелся");
                                    waitHandle.Set();
                                }
                            }
                        };
                        
                        waitHandle.WaitOne();
                      

                        trader.NewMarketDepths += depths =>
                        {
                            if (_depth == null)
                            {

                                _depth = depths.FirstOrDefault(d => d.Security == _sec);

                                if (_depth != null)
                                {
                                    Console.WriteLine(_sec.Code + " стакан нашелся");
                                    waitHandle.Set();
                                }
                            }
                        };

                       
                        waitHandle.WaitOne();
                        
                    }

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

orphan
orphan

Наверное забыл подписаться


if (_sec != null)
{
    Debug.WriteLine(_sec.Code + " инструмент нашелся");
    trader.RegisterMarketDepth(_sec);
}

d.guryev
d.guryev Autor

orphan: Наверное забыл подписаться

if (_sec != null) { Debug.WriteLine(_sec.Code + " инструмент нашелся"); trader.RegisterMarketDepth(_sec); }


Спасибо за ответ. Сделал как ты сказал, потом подписался на событие MarketDepthsChanged. Стакан в итоге получил. Никак не возьму в толк, для чего используется NewMarketDepths?
orphan
orphan

d.guryev: Никак не возьму в толк, для чего используется NewMarketDepths?

Хороший вопрос, стакан в нем все равно не приходит )

d.guryev
d.guryev Autor

orphan:

d.guryev: Никак не возьму в толк, для чего используется NewMarketDepths?

Хороший вопрос, стакан в нем все равно не приходит )

В старинных версиях S# был метод StartExport, после которого получалось получить стакан через NewMarketDepths. В этой версии логика изменилась.