public void fromApp(QuickFix.Message message, SessionID sessionID) { // receiving messages Symbol sym = new Symbol(); message.getField(sym); Tick k = new TickImpl(sym.getValue()); { // bid BidPx bp = new BidPx(); BidSize bs = new BidSize(); k.bid = (decimal)bp.getValue(); k.bs = (int)message.getField(bs).getValue(); } { // ask OfferPx op = new OfferPx(); OfferSize os = new OfferSize(); k.ask = (decimal)op.getValue(); k.os = (int)message.getField(os).getValue(); } { // last Price price = new Price(); message.getField(price); k.trade = (decimal)price.getValue(); } tl.newTick(k); //ClOrdID clOrdID = new ClOrdID(); //message.getField(clOrdID); }
private void calculateTotalBidAskSizes() { totalBidSize = new OfferSize(); totalAskSize = new OfferSize(); bestBid = Price.Zero; bestAsk = new Price("9999999"); foreach (var data in dataByExchanges.Values) { if (data.RegionalBid != null) { if (data.RegionalBid.HasValue && data.RegionalBid > bestBid) { bestBid = data.RegionalBid.Value; } if (!totalBidSize.ContainsKey(data.RegionalBid)) { totalBidSize[data.RegionalBid] = 0; } totalBidSize[data.RegionalBid] += data.RegionalBidsize; } if (data.RegionalAsk != null) { if (data.RegionalAsk.HasValue && data.RegionalAsk < bestAsk) { bestAsk = data.RegionalAsk.Value; } if (!totalAskSize.ContainsKey(data.RegionalAsk)) { totalAskSize[data.RegionalAsk] = 0; } totalAskSize[data.RegionalAsk] += data.RegionalAsksize; } } market = getMarketFromSpread(bestAsk, bestBid); WriteLog("Market for bestAsk {0}, bestBid {1} is {2} : ", bestAsk, bestBid, market); }