internal void Initialize(CommonInstrument instrument)
        {
            this.Id = instrument.Id;
            this.ExchangeCode = instrument.ExchangeCode;
            this.OriginCode = instrument.OriginCode;
            this.Code = instrument.Code;
            this.Category = instrument.Category;
            this.IsActive = instrument.IsActive;
            this.BeginTime = instrument.BeginTime;
            this.EndTime = instrument.EndTime;
            this.Denominator = instrument.Denominator;
            this.NumeratorUnit = instrument.NumeratorUnit;
            this.IsNormal = instrument.IsNormal;
            this.OriginType = instrument.OriginType;
            this.AllowedSpotTradeOrderSides = instrument.AllowedSpotTradeOrderSides;
            this.OriginInactiveTime = instrument.OriginInactiveTime;
            this.AlertVariation = instrument.AlertVariation;
            this.NormalWaitTime = instrument.NormalWaitTime;
            this.AlertWaitTime = instrument.AlertWaitTime;
            this.AlertVariation = instrument.AlertVariation;
            this.MaxDQLot = instrument.MaxDQLot;
            this.MaxOtherLot = instrument.MaxOtherLot;
            this.DqQuoteMinLot = instrument.DqQuoteMinLot;
            this.AutoDQMaxLot = instrument.AutoDQMaxLot;
            this.AutoLmtMktMaxLot = instrument.AutoLmtMktMaxLot;
            this.AcceptDQVariation = instrument.AcceptDQVariation;
            this.AcceptLmtVariation = instrument.AcceptLmtVariation;
            this.AcceptCloseLmtVariation = instrument.AcceptCloseLmtVariation;
            this.CancelLmtVariation = instrument.CancelLmtVariation;
            this.MaxMinAdjust = instrument.MaxMinAdjust;
            this.IsBetterPrice = instrument.IsBetterPrice;
            this.HitTimes = instrument.HitTimes;
            this.PenetrationPoint = instrument.PenetrationPoint;
            this.PriceValidTime = instrument.PriceValidTime;
            this.DailyMaxMove = instrument.DailyMaxMove;
            this.LastAcceptTimeSpan = instrument.LastAcceptTimeSpan;
            this.OrderTypeMask = instrument.OrderTypeMask;
            this.PreviousClosePrice = instrument.PreviousClosePrice;
            this.AutoCancelMaxLot = instrument.AutoCancelMaxLot;
            this.AutoAcceptMaxLot = instrument.AutoAcceptMaxLot;
            this.AllowedNewTradeSides = instrument.AllowedNewTradeSides;
            this.Mit = instrument.Mit;
            this.IsAutoFill = instrument.IsAutoFill;
            this.IsPriceEnabled = instrument.IsPriceEnabled;
            this.IsAutoEnablePrice = instrument.IsAutoEnablePrice;
            this.NextDayOpenTime = instrument.NextDayOpenTime;
            this.MOCTime = instrument.MOCTime;
            this.DayOpenTime = instrument.DayOpenTime;
            this.DayCloseTime = instrument.DayCloseTime;
            this.AutoDQDelay = instrument.AutoDQDelay;
            this.SummaryGroupId = instrument.SummaryGroupId;
            this.SummaryGroupCode = instrument.SummaryGroupCode;
            this.SummaryUnit = instrument.SummaryUnit;
            this.SummaryQuantity = instrument.SummaryQuantity;
            this.BuyLot = instrument.BuyLot;
            this.SellLot = instrument.SellLot;
            this.HitPriceVariationForSTP = instrument.HitPriceVariationForSTP;

            this.Ask = this.PreviousClosePrice;
            this.Bid = this.PreviousClosePrice;
        }
 public InstrumentClient(CommonInstrument instrument)
 {
     this.Initialize(instrument);
 }