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


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

Код
                    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();
                        
                    }

Теги:


Спасибо:




4 Ответов
orphan

Фотография
Программист
Дата: 21.01.2016
Ответить


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

Код

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

d.guryev

Фотография
Дата: 25.01.2016
Ответить


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

Код

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


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

orphan

Фотография
Программист
Дата: 26.01.2016
Ответить


d.guryev Перейти

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


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

d.guryev

Фотография
Дата: 27.01.2016
Ответить


orphan Перейти
d.guryev Перейти

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


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


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy