Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
 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;
 }