public void Set(QuickFix.Fields.LastShares val) { this.LastShares = val; }
/// <summary> /// Helper Method to process data from message for updating positions /// </summary> /// <param name="message"></param> /// <param name="session"></param> private void posTableUpdate(QuickFix.FIX42.Message message, SessionID session) { string MGT = null; string acct = null; string SecEx = null; string symbol = null; string secID = null; string gateway = null; int tradesize = 0; char side = char.MinValue; decimal price = 0.00M; bool OK2Update = true; try { QuickFix.Fields.SenderSubID subID = new QuickFix.Fields.SenderSubID(); if (message.Header.IsSetField(subID)) { MGT = message.Header.GetField(subID).getValue(); } else { OK2Update = false; } QuickFix.Fields.Account a = new QuickFix.Fields.Account(); if (message.IsSetField(a)) { acct = message.GetField(a).getValue(); } else { OK2Update = false; } QuickFix.Fields.SecurityExchange se = new QuickFix.Fields.SecurityExchange(); if (message.IsSetField(se)) { SecEx = message.GetField(se).getValue(); } else { OK2Update = false; } QuickFix.Fields.Symbol s = new QuickFix.Fields.Symbol(); if (message.IsSetField(s)) { symbol = message.GetField(s).getValue(); } else { OK2Update = false; } QuickFix.Fields.SecurityID sid = new QuickFix.Fields.SecurityID(); if (message.IsSetField(sid)) { secID = message.GetField(sid).getValue(); } else { OK2Update = false; } QuickFix.Fields.ExchangeGateway eg = new Fields.ExchangeGateway(); if (message.IsSetField(eg)) { gateway = message.GetField(eg).getValue(); } else { OK2Update = false; } QuickFix.Fields.LastShares q = new QuickFix.Fields.LastShares(); if (message.IsSetField(q)) { tradesize = (int)message.GetField(q).getValue(); } QuickFix.Fields.Side bs = new QuickFix.Fields.Side(); if (message.IsSetField(bs)) { side = message.GetField(bs).getValue(); } else { if (tradesize < 0) { tradesize = Math.Abs(tradesize); side = QuickFix.Fields.Side.SELL; } else { side = QuickFix.Fields.Side.BUY; } } QuickFix.Fields.LastPx fill = new QuickFix.Fields.LastPx(); if (message.IsSetField(fill)) { price = message.GetField(fill).getValue(); } if (OK2Update) { //MGT, acct, SecEx, symbol, secID, tradesize, side, price, gateway updatePosition(MGT, acct, SecEx, symbol, secID, tradesize, side, price, gateway); } else { updateDisplay("Position not updated by following message"); ProcessMessage(message, session); } } catch (Exception ex) { updateDisplay("QuickFIX Error"); log.WriteLog("MGT: " + MGT); log.WriteLog("acct: " + acct); log.WriteLog("SecEx: " + SecEx); log.WriteLog("symbol: " + symbol); log.WriteLog("secID: " + secID); log.WriteLog("tradesize: " + tradesize.ToString()); log.WriteLog("side: " + side.ToString()); log.WriteLog("price: " + price.ToString()); log.WriteLog("gateway: " + gateway); log.WriteLog("Start Exception--------------------"); log.WriteLog("Source: " + ex.Source); log.WriteLog("Message: " + ex.Message); log.WriteLog("TargetSite: " + ex.TargetSite); log.WriteLog("InnerException: " + ex.InnerException); log.WriteLog("HelpLink: " + ex.HelpLink); log.WriteLog("Data: " + ex.Data); log.WriteLog("StackTrace: " + ex.StackTrace); log.WriteLog("Stop Exception details-------------"); } }