BestBid.Volume равно 0
Atom
27.10.2010


Здравствуйте
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