BestBid.Volume равно 0

BestBid.Volume равно 0
Atom
10/27/2010
Alex2


Здравствуйте SmartCom (не новый) реальный счет

не работает BestBid.Volume и BestAsk.Volume - постоянно равны 0.

в чем может быть дело?

Также возникли проблемы с LastTrade.OrderDirection - значение null

Мой код из SampleSmartConsole:

                        Console.WriteLine("Бумага: {0}, {1}", _lkoh.ShortName, _lkoh.State);
                        Console.WriteLine("Спред: {0}",_lkoh.GetSpreadSize());
                        Console.WriteLine("Лучшая цена на продажу: {0}, объем: {1}", _lkoh.BestAsk.Price, _lkoh.BestAsk.Volume);
                        Console.WriteLine("Лучшая цена на покупку: {0}, объем: {1}", _lkoh.BestBid.Price, _lkoh.BestBid.Volume);
                        Console.WriteLine("Объем последней сделки: {0} {1}", _lkoh.LastTrade.Volume, _lkoh.LastTrade.OrderDirection);

Tags:


Thanks:


1 2 3  >
Mikhail Sukhov

Avatar
Date: 10/28/2010
Reply


Для обновления свойств инструментов надо вызвать метод SmartTrader.RegisterSecurity.

Thanks:

Alex2

Avatar
Date: 10/28/2010
Reply


Mikhail Sukhov: Для обновления свойств инструментов надо вызвать метод SmartTrader.RegisterSecurity.

Перед циклом, где выводятся в консоль _lkoh.BestAsk.Volume, _lkoh.BestBid.Volume вызывается trader.RegisterSecurity(_lkoh);

Я взял пример, SampleSmartConsole и просто добавил в цикл вывод свойств бумаги:

					// запускаем обновление по инструменту
					trader.RegisterSecurity(_lkoh);
                                            waitHandle.WaitOne();

					// 0.1% от изменения цены
					const double delta = 0.001;

					// запоминаем первоначальное значение середины спреда
					var firstMid = _lkoh.GetSpreadSize() / 2;
					Console.WriteLine("Первоначальное значение середины спреда {0:0.##}", _lkoh.BestBid.Price + firstMid);

					while (true)
					{

                        Console.WriteLine("Бумага: {0}, {1}", _lkoh.ShortName, _lkoh.State);
                        Console.WriteLine("Спред: {0}",_lkoh.GetSpreadSize());
                        Console.WriteLine("Лучшая цена на продажу: {0}, объем: {1}", _lkoh.BestAsk.Price, _lkoh.BestAsk.Volume);
                        Console.WriteLine("Лучшая цена на покупку: {0}, объем: {1}", _lkoh.BestBid.Price, _lkoh.BestBid.Volume);
                        Console.WriteLine("Объем последней сделки: {0} {1}", _lkoh.LastTrade.Volume, _lkoh.LastTrade.OrderDirection);
                        Thread.Sleep(100);
                        Console.Clear();
					}

					// останавливаем экспорт
					trader.StopExport();

Все свойства из этого примера (_lkoh.ShortName, _lkoh.State, _lkoh.GetSpreadSize, _lkoh.BestAsk.Price) выводятся нормально, кроме _lkoh.BestAsk.Volume, _lkoh.BestBid.Volume, _lkoh.LastTrade.OrderDirection. Первые два = 0, последний null

Очень рассчитываю на помощь! Спасибо.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/28/2010
Reply


Alex2: Все свойства из этого примера (_lkoh.ShortName, _lkoh.State, _lkoh.GetSpreadSize, _lkoh.BestAsk.Price) выводятся нормально, кроме _lkoh.BestAsk.Volume, _lkoh.BestBid.Volume, _lkoh.LastTrade.OrderDirection. Первые два = 0, последний null

Припоминаю. СмартКом не шлет объем лучшего бида, а шел весь объем стакана. Поэтому и не передается. Trade.OrderDirection только SmartCOM 2 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.

Thanks:

Alex2

Avatar
Date: 10/28/2010
Reply


Mikhail Sukhov:

Alex2: Все свойства из этого примера (_lkoh.ShortName, _lkoh.State, _lkoh.GetSpreadSize, _lkoh.BestAsk.Price) выводятся нормально, кроме _lkoh.BestAsk.Volume, _lkoh.BestBid.Volume, _lkoh.LastTrade.OrderDirection. Первые два = 0, последний null

Припоминаю. СмартКом не шлет объем лучшего бида, а шел весь объем стакана. Поэтому и не передается. Trade.OrderDirection только SmartCOM 2 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.

Пример не приведете как через поток сделок получить объем и направление последней сделки? в помощи не нашел.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/28/2010
Reply


Alex2: Пример не приведете как через поток сделок получить объем и направление последней сделки? в помощи не нашел.

Это работа со стаканом и с тиковыми сделками. Методы соответственно SmartTrader.RegisterQuotes и SmartTrader.RegisterTrades

Thanks:

Alex2

Avatar
Date: 10/29/2010
Reply


Mikhail Sukhov: Припоминаю. СмартКом не шлет объем лучшего бида, а шел весь объем стакана. Поэтому и не передается. Trade.OrderDirection только SmartCOM 2 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.

С объемами разобрался - через поток сделок объемы приходят.

Но вышла загвоздка с направлением сделки. Ни в какую не могу получить. Что делал:

Скачал и поставил SmartCom2 Поставил S# 2.5

код:

                    trader.NewTrades += nTrades =>
                    {
                        foreach (var nTrade in nTrades)
                        {
                            var trade = nTrade;
                            Console.WriteLine("Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.", **trade.OrderDirection**, trade.Price, trade.Security.Code, trade.Volume, trade.Time);
                        }
                    };  

trader.RegisterTrades(_lkoh);

выводит цену, код бумаги, объем и время, а направление сделки нет.

В чем ошибка?

Thanks:

Mikhail Sukhov

Avatar
Date: 10/30/2010
Reply


Судя по вопросу http://www.itinvest.ru/forum/index.php?showtopic=63316&view=findpost&p=254783 в SmartCOM. Ждите, обещают это поправить.

Thanks:

Alex2

Avatar
Date: 10/30/2010
Reply


Mikhail Sukhov: Судя по вопросу http://www.itinvest.ru/forum/index.php?showtopic=63316&view=findpost&p=254783 в SmartCOM. Ждите, обещают это поправить.

А как же эта новость?

"У AddTick новый параметр Action – направление сделки. Дождались"

http://www.itinvest.ru/forum/index.php?showtopic=63045&view=findpost&p=250979

Thanks:

Mikhail Sukhov

Avatar
Date: 10/30/2010
Reply


Alex2: А как же эта новость?

"У AddTick новый параметр Action – направление сделки. Дождались"

http://www.itinvest.ru/forum/index.php?showtopic=63045&view=findpost&p=250979

То написали в августе. А сейчас уже ноябрь начинается. До сих пор спрашивают. Я сам проверил - не приходит. Увы, с ИТ это не редкость.[laugh]

Thanks:

eaa

Avatar
Date: 10/30/2010
Reply


А можно на приход любой информации от смарткома получать дамп того, что приходит? Собственно событие есть, но в него не приходит информация. Почему это хочется? Просто из-за изменений в протоколах/библиотеках не все сразу в софте обновляется, и хочется видеть, что реально пришло, хоть и в виде байт-потока.

С этим столкнулся, когда искал, в чем разница между NewSecuriries и SecurityChanged - хочется иметь абсолютно все, что приходит от смарткома.

Thanks:
1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy