Mikhail Sukhov
|
Date: 10/28/2010
Для обновления свойств инструментов надо вызвать метод SmartTrader.RegisterSecurity.
|
|
|
|
Thanks:
|
|
|
|
|
|
Alex2
|
Date: 10/28/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
Очень рассчитываю на помощь! Спасибо.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 10/28/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 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.
|
|
|
|
Thanks:
|
|
|
|
|
|
Alex2
|
Date: 10/28/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 умеет. Но опять же, это не через обновление инструмента (там такого поля просто нет), а через поток сделок.
Пример не приведете как через поток сделок получить объем и направление последней сделки? в помощи не нашел.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 10/28/2010
Alex2:
Пример не приведете как через поток сделок получить объем и направление последней сделки? в помощи не нашел.
Это работа со стаканом и с тиковыми сделками. Методы соответственно SmartTrader.RegisterQuotes и SmartTrader.RegisterTrades
|
|
|
|
Thanks:
|
|
|
|
|
|
Alex2
|
Date: 10/29/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);
выводит цену, код бумаги, объем и время, а направление сделки нет.
В чем ошибка?
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 10/30/2010
|
|
|
|
Thanks:
|
|
|
|
|
|
Alex2
|
Date: 10/30/2010
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 10/30/2010
|
|
|
|
Thanks:
|
|
|
|
|
|
eaa
|
Date: 10/30/2010
А можно на приход любой информации от смарткома получать дамп того, что приходит? Собственно событие есть, но в него не приходит информация.
Почему это хочется? Просто из-за изменений в протоколах/библиотеках не все сразу в софте обновляется, и хочется видеть, что реально пришло, хоть и в виде байт-потока.
С этим столкнулся, когда искал, в чем разница между NewSecuriries и SecurityChanged - хочется иметь абсолютно все, что приходит от смарткома.
|
|
|
|
Thanks:
|
|
|
|
|