public override void EndElement(string endElement) { if ("instrument" == endElement) { long id = GetLongValue(Id, 0L); String name = GetStringValue(Name); string symbol = GetStringValue(Symbol); string isin = GetStringValue(UnderlyingIsin); string assetClass = GetStringValue(AssetClass); UnderlyingInfo underlying = new UnderlyingInfo(symbol, isin, assetClass); DateTime startTime = GetDateTime(StartTime, DateTime.MinValue); DateTime? expiryTime = GetDateTime(EndTime); TimeSpan openOffset = GetTimeSpan(OpeningOffset, TimeSpan.MinValue); TimeSpan closeOffset = GetTimeSpan(ClosingOffset, TimeSpan.MinValue); string timeZone = GetStringValue(Timezone); List <DayOfWeek> daysOfWeek = GetDaysOfWeek(); CalendarInfo calendarInfo = new CalendarInfo(startTime, expiryTime, openOffset, closeOffset, timeZone, daysOfWeek); decimal marginRate = GetDecimalValue(Margin, 0); decimal maximumPosition = GetDecimalValue(MaximumPositionThreshold, 0); RiskInfo riskInfo = new RiskInfo(marginRate, maximumPosition); decimal priceIncrement = GetDecimalValue(PriceIncrement, 0); decimal quantityIncrement = GetDecimalValue(OrderQuantityIncrement, 0); decimal volatilityBandPercentage = GetDecimalValue(RetailVolatilityBandPercentage, 0); OrderBookInfo orderBookInfo = new OrderBookInfo(priceIncrement, quantityIncrement, volatilityBandPercentage); string currency = GetStringValue(Currency); decimal unitPrice = GetDecimalValue(UnitPrice, 0); string unitOfMeasure = GetStringValue(ContractUnitMeasure); decimal contractSize = GetDecimalValue(ContractSize, 0); ContractInfo contractInfo = new ContractInfo(currency, unitPrice, unitOfMeasure, contractSize); decimal minimumCommission = GetDecimalValue(MinimumCommission, 0); decimal?aggressiveCommissionRate = GetDecimalValue(AggressiveCommisionRate); decimal?passiveCommissionRate = GetDecimalValue(PassiveCommissionRate); decimal?aggressiveCommissionPerContract = GetDecimalValue(AggressiveCommissionPerContract); decimal?passiveCommissionPerContract = GetDecimalValue(PassiveCommissionPerContract); string fundingBaseRate = GetStringValue(FundingBaseRate); int dailyInterestRateBasis = GetIntValue(DailyInteresetRateBasis, 0); decimal?fundingPremiumPercentage = GetDecimalValue(FundingPremiumPercentage); decimal?fundingReductionPercentage = GetDecimalValue(FundingReductionPercentage); decimal?longSwapPoints = GetDecimalValue(LongSwapPoints); decimal?shortSwapPoints = GetDecimalValue(ShortSwapPoints); CommercialInfo commercialInfo = new CommercialInfo(minimumCommission, aggressiveCommissionRate, passiveCommissionRate, aggressiveCommissionPerContract, passiveCommissionPerContract, fundingBaseRate, dailyInterestRateBasis, fundingPremiumPercentage, fundingReductionPercentage, longSwapPoints, shortSwapPoints); _instruments.Add(new Instrument(id, name, underlying, calendarInfo, riskInfo, orderBookInfo, contractInfo, commercialInfo)); } }
public Instrument(long id, string name, UnderlyingInfo underlying, CalendarInfo calendar, RiskInfo risk, OrderBookInfo orderBook, ContractInfo contract, CommercialInfo commercial) { this._id = id; this._name = name; this._underlying = underlying; this._calendar = calendar; this._risk = risk; this._orderBook = orderBook; this._contract = contract; this._commercial = commercial; }