BestBid.Volume равно 0
Atom
27.10.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);

Теги:


Спасибо:


1 2 3  >
Mikhail Sukhov

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


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

Спасибо:

Alex2

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


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

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

Спасибо:

Mikhail Sukhov

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


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 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.

Спасибо:

Alex2

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


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 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.

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

Спасибо:

Mikhail Sukhov

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


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

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

Спасибо:

Alex2

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


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);

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

В чем ошибка?

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

Alex2

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


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

Спасибо:

Mikhail Sukhov

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


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

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

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

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

Спасибо:

eaa

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


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

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

Спасибо:
1 2 3  >

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

loading
clippy