public OriginQuotation(Instrument instrument, DataRow originQuotation) { this.modifyState = ModifyState.Unchanged; this.instrument = instrument; this.timestamp = (DateTime)originQuotation["Timestamp"]; if (originQuotation["Ask"] != DBNull.Value) { this.ask = Price.CreateInstance((string)originQuotation["Ask"], instrument.NumeratorUnit, instrument.Denominator); } if (originQuotation["Bid"] != DBNull.Value) { this.bid = Price.CreateInstance((string)originQuotation["Bid"], instrument.NumeratorUnit, instrument.Denominator); } if (originQuotation["High"] != DBNull.Value) { this.high = Price.CreateInstance((string)originQuotation["High"], instrument.NumeratorUnit, instrument.Denominator); } if (originQuotation["Low"] != DBNull.Value) { this.low = Price.CreateInstance((string)originQuotation["Low"], instrument.NumeratorUnit, instrument.Denominator); } if (originQuotation.Table.Columns.Contains("Volume") && originQuotation["Volume"] != DBNull.Value) { this.volume = (string)originQuotation["Volume"]; } if (originQuotation.Table.Columns.Contains("TotalVolume") && originQuotation["TotalVolume"] != DBNull.Value) { this.totalVolume = (string)originQuotation["TotalVolume"]; } this.origin = instrument.CalculateOrigin(this.ask, this.bid, false); }
public OriginQuotation(Instrument instrument, CollectorQuotation cq) { this.modifyState = ModifyState.Added; this.instrument = instrument; this.timestamp = cq.Timestamp; this.ask = Price.CreateInstance(cq.Ask, instrument.NumeratorUnit, instrument.Denominator); this.bid = Price.CreateInstance(cq.Bid, instrument.NumeratorUnit, instrument.Denominator); this.high = Price.CreateInstance(cq.High, instrument.NumeratorUnit, instrument.Denominator); this.low = Price.CreateInstance(cq.Low, instrument.NumeratorUnit, instrument.Denominator); this.volume = cq.Volume; this.totalVolume = cq.TotalVolume; this.origin = instrument.CalculateOrigin(this.ask, this.bid, instrument.OriginQReceived != null); //Special handle, it's not so strict //NOTE: Has problem for session clear ! if (this.origin == null && instrument.OriginQReceived != null) { if (this.ask == null) this.ask = this.instrument.OriginQReceived.ask; if (this.bid == null) this.bid = this.instrument.OriginQReceived.bid; this.origin = instrument.CalculateOrigin(this.ask, this.bid, false); } this.FilterErrorHighLow(instrument, false); }
public QuotePolicyDetail(Instrument instrument, DataRow quotePolicy) { this.id = (Guid)quotePolicy["QuotePolicyID"]; this.priceType = (PriceType)(byte)quotePolicy["PriceType"]; this.autoAdjustPoints = (int)quotePolicy["AutoAdjustPoints"]; this.spreadPoints = (int)quotePolicy["SpreadPoints"]; this.isOriginHiLo = (bool)quotePolicy["IsOriginHiLo"]; this.overrideHigh = null; this.overrideLow = null; this.SetCrossRef(instrument); }
public QuotePolicyDetail(Instrument instrument, XmlNode quotePolicy) { this.id = XmlConvert.ToGuid(quotePolicy.Attributes["QuotePolicyID"].Value); this.priceType = (PriceType)XmlConvert.ToByte(quotePolicy.Attributes["PriceType"].Value); this.autoAdjustPoints = XmlConvert.ToInt32(quotePolicy.Attributes["AutoAdjustPoints"].Value); this.spreadPoints = XmlConvert.ToInt32(quotePolicy.Attributes["SpreadPoints"].Value); this.isOriginHiLo = XmlConvert.ToBoolean(quotePolicy.Attributes["IsOriginHiLo"].Value); this.overrideHigh = null; this.overrideLow = null; this.SetCrossRef(instrument); }
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"]; } }
private void SetCrossRef(Instrument instrument) { this.instrument = instrument; this.instrument.QuotePolicyDetails.Add(this); }
public bool Update(XmlNode quotePolicy, Instrument instrument) { this.Dispose(); foreach (XmlAttribute attribute in quotePolicy.Attributes) { switch (attribute.Name) { case "PriceType": this.priceType = (PriceType)XmlConvert.ToInt16(attribute.Value); break; case "AutoAdjustPoints": this.autoAdjustPoints = XmlConvert.ToInt32(attribute.Value); break; case "SpreadPoints": this.spreadPoints = XmlConvert.ToInt32(attribute.Value); break; case "IsOriginHiLo": this.isOriginHiLo = XmlConvert.ToBoolean(attribute.Value); break; } } this.SetCrossRef(instrument); return true; }
public void FilterErrorHighLow(Instrument instrument, bool useLast) { if (useLast) { if (this.high == instrument.ErrorOriginHigh) this.high = instrument.OriginHigh; if (this.low == instrument.ErrorOriginLow) this.low = instrument.OriginLow; } else { if (this.high == instrument.ErrorOriginHigh) this.high = null; if (this.low == instrument.ErrorOriginLow) this.low = null; } }
internal iExchange.Common.OriginQuotation ToLightVersion(Instrument instrument) { iExchange.Common.OriginQuotation lightOriginQ = new iExchange.Common.OriginQuotation(); lightOriginQ.HasWatchOnlyQuotePolicies = instrument.HasWatchOnlyQuotePolicies; lightOriginQ.InstrumentID = this.InstrumentID; lightOriginQ.Timestamp = this.timestamp; lightOriginQ.Ask = (string)this.origin; lightOriginQ.Bid = (string)this.origin; lightOriginQ.High = (string)this.originHigh; lightOriginQ.Low = (string)this.originLow; lightOriginQ.Origin = (string)this.origin; lightOriginQ.Volume = this.volume; lightOriginQ.TotalVolume = this.totalVolume; return lightOriginQ; }
public void NormalizeOrigins(Instrument instrument) { this.origin = Price.CreateInstance(this.originString, instrument.NumeratorUnit, instrument.Denominator); this.originHigh = Price.CreateInstance(this.highString, instrument.NumeratorUnit, instrument.Denominator); this.originLow = Price.CreateInstance(this.lowString, instrument.NumeratorUnit, instrument.Denominator); }
//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; }