Иногда в стакане BestBid.Price или BestAsk.Price равны нулю. Стаканы
яполчаю в конструкторе и для рассчета текущих сигналов использую
только их
вот код
public BasketSignalCalculator(TradedBasket basket, TikerController
tikerController, bool isSigmaCalculated)
{
this.isSigmaCalculated = isSigmaCalculated;
this.trader = tikerController.Trader;
this.basket = basket;
this.tikerController = tikerController;
leftSideMD =
trader.GetMarketDepth(trader.Securities.First(sec =>
sec.Code == basket.Basket.LeftSide[0].Asset.Name));
rightSideMDs =
trader.GetMarketDepth(trader.Securities.First(sec =>
sec.Code == basket.Basket.RightSide[0].Asset.Name));
}
вот код одного из методов
public decimal CalcSumCurrentBids()
{
decimal delta = 0;
foreach (TradedBasketItem tradedBasketItem in
basket.CurrentPart.RightSide)
{
decimal koef = GetTikerKoef(tradedBasketItem.Tiker);
double bid = rightSideMDs.BestBid.Price;
delta = delta + bid * tradedBasketItem.Weight * koef;
if (delta <= 0)
{
TradeBasketHelperLogger.Logger.Debug(String.Format("Delta = 0, koef =
{0}, BB = {1}, TotalVol = {2}, TotalPrice {3}", koef, bid,
rightSideMDs.TotalVolume, rightSideMDs.TotalPrice));
}
}
return delta;
}
и вот лог
14:06:57,421 - Delta = 0, koef = 1, BB = 0, TotalVol = 667149,
TotalPrice 1487,4
14:09:05,515 - Delta = 0, koef = 1, BB = 0, TotalVol = 659359,
TotalPrice 1486,44
14:10:23,468 - Delta = 0, koef = 1, BB = 0, TotalVol = 522221,
TotalPrice 1486,02
что это за глюк и как с ним бороться?