private void UpdateOccInfo(RealTimePositionObject r) { r.ContainsHedge = false; r.OccBodQuantity = 0; r.OccQuantityLoaned = 0; r.OccQuantityReturned = 0; r.OccQuantityBorrowed = 0; r.OccQuantityReceived = 0; //look up bod positions List <PositionObject> pos = OccBodPositions.FindAll(p => p.Cusip == r.Cusip); //calculate bod position foreach (PositionObject p in pos) { r.ContainsHedge = true; if (p.BorrowLoan == "B") { r.OccBodQuantity += p.Quantity; } else if (p.BorrowLoan == "L") { r.OccBodQuantity -= p.Quantity; } } //calculate occ info foreach (IncomingDeliveryOrderObject d in r.DtcActivity) { DeliveryOrderReasonCodeObject drc = null; DeliveryOrderLookups.ReasonCodes.TryGetValue(d.ReasonCode, out drc); //could not find reason code if (drc == null) { //Trace.WriteLine("Could not find the reason code: " + d.ReasonCode, TraceEnum.LoggedError); } else { //delivery if (d.ActivityCode == "026" && IsHedge(d.ReasonCode)) { if (drc.NewBorrowLoan) { //this is a new loan r.OccQuantityLoaned += d.ShareQuantity.Value; } else { //this was a return r.OccQuantityReturned += d.ShareQuantity.Value; } r.ContainsHedge = true; } //receive else if (d.ActivityCode == "027" && IsHedge(d.ReasonCode)) { if (drc.NewBorrowLoan) { r.OccQuantityBorrowed += d.ShareQuantity.Value; } else { r.OccQuantityReceived += d.ShareQuantity.Value; } r.ContainsHedge = true; } //could not find activity code else { } } } }
private void UpdateDtcInfo(RealTimePositionObject r) { r.DtcQuantityLoaned = 0; r.DtcQuantityReturned = 0; r.DtcQuantityBorrowed = 0; r.DtcQuantityReceived = 0; foreach (IncomingDeliveryOrderObject d in r.DtcActivity) { DeliveryOrderReasonCodeObject drc = null; DeliveryOrderLookups.ReasonCodes.TryGetValue(d.ReasonCode, out drc); //could not find reason code if (drc == null) { //Trace.WriteLine("Could not find the reason code: " + d.ReasonCode, TraceEnum.LoggedError); } else { if ((d.Receiver != Settings.Account.Padded() && d.DelivererReceiverIndicator == "R") || (d.Deliverer != Settings.Account.Padded() && d.DelivererReceiverIndicator == "D")) { } //delivery if (d.ActivityCode == "026") { if (drc.NewBorrowLoan) { //this is a new loan r.DtcQuantityLoaned += d.ShareQuantity.Value; } else { //this was a return r.DtcQuantityReturned += d.ShareQuantity.Value; } } //receive else if (d.ActivityCode == "027") { if (drc.NewBorrowLoan) { r.DtcQuantityBorrowed += d.ShareQuantity.Value; } else { r.DtcQuantityReceived += d.ShareQuantity.Value; } } //could not find activity code else { //WE HAVE A PROBLEM //Trace.WriteLine("Could not find the activity code: " + d.ActivityCode, TraceEnum.LoggedError); } } } }