public OverridedQuotation(Instrument instrument, QuotePolicyDetail quotePolicy, DataRow overridedQuotation) { this.modifyState = ModifyState.Unchanged; this.quotePolicy = quotePolicy; this.instrument = instrument; this.timestamp = (DateTime)overridedQuotation["Timestamp"]; if (overridedQuotation["Origin"] != DBNull.Value) { this.origin = Price.CreateInstance((string)overridedQuotation["Origin"], instrument.NumeratorUnit, instrument.Denominator); } if (overridedQuotation["Ask"] != DBNull.Value) { this.ask = Price.CreateInstance((string)overridedQuotation["Ask"], instrument.NumeratorUnit, instrument.Denominator); } if (overridedQuotation["Bid"] != DBNull.Value) { this.bid = Price.CreateInstance((string)overridedQuotation["Bid"], instrument.NumeratorUnit, instrument.Denominator); } if (overridedQuotation["High"] != DBNull.Value) { this.high = Price.CreateInstance((string)overridedQuotation["High"], instrument.NumeratorUnit, instrument.Denominator); } if (overridedQuotation["Low"] != DBNull.Value) { this.low = Price.CreateInstance((string)overridedQuotation["Low"], instrument.NumeratorUnit, instrument.Denominator); } this.dealerID = (Guid)overridedQuotation["DealerID"]; if (overridedQuotation.Table.Columns.Contains("Volume") && overridedQuotation["Volume"] != DBNull.Value) { this.volume = (string)overridedQuotation["Volume"]; } if (overridedQuotation.Table.Columns.Contains("TotalVolume") && overridedQuotation["TotalVolume"] != DBNull.Value) { this.totalVolume = (string)overridedQuotation["TotalVolume"]; } }
public void Dispose() { QuotePolicyDetail[] quotePolicys = new QuotePolicyDetail[this.quotePolicyDetails.Count]; this.quotePolicyDetails.CopyTo(quotePolicys); //Remove all cross references foreach (QuotePolicyDetail quotePolicy in quotePolicys) { quotePolicy.Dispose(); } }
//Changed for emperor 2004-12-22 public OverridedQuotation(Instrument instrument, QuotePolicyDetail quotePolicy, OriginQuotation originQuotation) { this.modifyState = ModifyState.Added; this.quotePolicy = quotePolicy; this.instrument = instrument; if (instrument.ExchangeSystem == ExchangeSystem.Bursa && originQuotation != null) { this.timestamp = originQuotation.Timestamp; } else { this.timestamp = DateTime.Now; } this.origin = instrument.LastOrigin; this.volume = instrument.LastVolume; this.totalVolume = instrument.LastTotalVolume; //this.dealerID=instrument.DealerID; this.dealerID = (originQuotation == null ? instrument.LastOfferDealerID : Guid.Empty); //Changed for emperor 2004-12-22 if (quotePolicy.PriceType == PriceType.OriginEnable) { if (originQuotation != null) //Dealer not changed { Price bidBase = originQuotation.Bid; Price askBase = originQuotation.Ask; if (instrument.OriginQProcessed != null) { if (bidBase == null) bidBase = instrument.OriginQProcessed.Bid; if (askBase == null) askBase = instrument.OriginQProcessed.Ask; } if (bidBase == null) { bidBase = askBase; } else if (askBase == null) { askBase = bidBase; } else if (askBase < bidBase) { askBase = bidBase; } this.bid = bidBase + quotePolicy.AutoAdjustPoints; this.ask = askBase + quotePolicy.AutoAdjustPoints; this.volume = originQuotation.Volume; this.totalVolume = originQuotation.TotalVolume; } else //Dealer changed { this.bid = this.origin + quotePolicy.AutoAdjustPoints; try { this.ask = this.bid + Math.Abs(instrument.OriginQProcessed.Ask - instrument.OriginQProcessed.Bid); } catch (Exception ex) { Manager.Common.Logger.TraceEvent(System.Diagnostics.TraceEventType.Error, "OverridedQuotation.OverridedQuotation Error\r\n{0}", ex.ToString()); this.ask = this.bid; } } this.bid = this.bid - quotePolicy.SpreadPoints; this.ask = this.ask + quotePolicy.SpreadPoints; } else { this.bid = this.origin + quotePolicy.AutoAdjustPoints; this.ask = this.bid + quotePolicy.SpreadPoints; } }
public OverridedQuotation(Instrument instrument, QuotePolicyDetail quotePolicy) : this(instrument, quotePolicy, (OriginQuotation)null) { }
public static OverridedQuotation CreateHistoryQuotation(Guid dealerID, Instrument instrument, QuotePolicyDetail quotePolicy, string timestamp, string origin, bool needApplyAutoAdjustPoints, bool highBid, bool lowBid) { OverridedQuotation overridedQuotation = new OverridedQuotation(); overridedQuotation.modifyState = ModifyState.Added; overridedQuotation.quotePolicy = quotePolicy; overridedQuotation.instrument = instrument; overridedQuotation.timestamp = DateTime.Parse(timestamp); overridedQuotation.origin = Price.CreateInstance(origin, instrument.NumeratorUnit, instrument.Denominator); overridedQuotation.dealerID = dealerID; overridedQuotation.bid = needApplyAutoAdjustPoints ? overridedQuotation.origin + quotePolicy.AutoAdjustPoints : overridedQuotation.origin; overridedQuotation.ask = overridedQuotation.bid + quotePolicy.SpreadPoints; overridedQuotation.CalculateHiLo(highBid, lowBid); //overridedQuotation.high = highBid ? overridedQuotation.bid : overridedQuotation.ask; //overridedQuotation.low = lowBid ? overridedQuotation.bid : overridedQuotation.ask; return overridedQuotation; }