Ejemplo n.º 1
0
        /// <summary>
        /// Converts web service format of the option leg of the RFQ into the GUI format.
        /// </summary>
        /// <param name="serviceOptionLeg"> the web service formatted RFQ's option leg to be converted.</param>
        /// <returns> the GUI formatted of the RFQ's option leg.</returns>
        /// <exception cref="ArgumentNullException"> thrown if the web service formatted RFQ's option leg is null.</exception>
        /// <exception cref="InvalidDataException"> thrown if maturity date or side are invalid and cannot be converted.</exception>
        private OptionDetailImpl CreateRequestForQuoteLegFromServiceOptionLeg(optionDetailImpl serviceOptionLeg)
        {
            if (serviceOptionLeg == null)
            {
                throw new ArgumentNullException("serviceOptionLeg");
            }

            DateTime maturityDateResult;

            if (!DateTime.TryParse(serviceOptionLeg.maturityDate, out maturityDateResult))
            {
                throw new InvalidDataException("maturityDate");
            }

            DateTime tradeDateResult;

            if (!DateTime.TryParse(serviceOptionLeg.tradeDate, out tradeDateResult))
            {
                throw new InvalidDataException("tradeDate");
            }

            SideEnum sideResult;

            if (!Enum.TryParse(serviceOptionLeg.side, true, out sideResult))
            {
                throw new InvalidDataException("side");
            }

            return(new OptionDetailImpl()
            {
                IsCall = serviceOptionLeg.isCall,
                IsEuropean = serviceOptionLeg.isEuropean,
                LegId = serviceOptionLeg.legId,
                Delta = serviceOptionLeg.delta,
                Gamma = serviceOptionLeg.gamma,
                Vega = serviceOptionLeg.vega,
                Theta = serviceOptionLeg.theta,
                Rho = serviceOptionLeg.rho,
                PremiumAmount = serviceOptionLeg.premium,

                MaturityDate = maturityDateResult,
                TradeDate = tradeDateResult,
                Description = serviceOptionLeg.description,
                Quantity = serviceOptionLeg.quantity,

                DayCountConvention = serviceOptionLeg.dayCountConvention,
                DaysToExpiry = serviceOptionLeg.daysToExpiry,
                UnderlyingPrice = serviceOptionLeg.underlyingPrice,
                Volatility = serviceOptionLeg.volatility,
                InterestRate = serviceOptionLeg.interestRate,
                RIC = serviceOptionLeg.underlyingRIC,
                Strike = serviceOptionLeg.strike,
                Side = sideResult
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Converts GUI formatted RFQ into the web service format.
        /// </summary>
        /// <param name="sourceRequestForQuote"> the GUI formatted RFQ to be converted.</param>
        /// <returns> the web service formatted RFQ.</returns>
        /// <exception cref="ArgumentNullException"> thrown if the GUI formatted RFQ is null.</exception>
        private requestDetailImpl CreateServiceRequestFromRequestForQuote(IRequestForQuote sourceRequestForQuote)
        {
            if (sourceRequestForQuote == null)
            {
                throw new ArgumentNullException("sourceRequestForQuote");
            }

            var serviceRequestToCreate = new requestDetailImpl();

            if (sourceRequestForQuote.Legs != null && sourceRequestForQuote.Legs.Count > 0)
            {
                var legsArray = new optionDetailImpl[sourceRequestForQuote.Legs.Count];
                var legCount  = 0;
                foreach (var leg in sourceRequestForQuote.Legs)
                {
                    legsArray[legCount++] = CreateServiceOptionLegFromRequestForQuoteLeg(leg);
                }
                serviceRequestToCreate.legs = new optionDetailListImpl()
                {
                    optionDetailList = legsArray
                };
            }

            serviceRequestToCreate.bookCode   = sourceRequestForQuote.BookCode;
            serviceRequestToCreate.request    = sourceRequestForQuote.Request;
            serviceRequestToCreate.identifier = sourceRequestForQuote.Identifier;
            serviceRequestToCreate.clientId   = sourceRequestForQuote.Client.Identifier;
            serviceRequestToCreate.isOTC      = sourceRequestForQuote.IsOTC;
            serviceRequestToCreate.status     = sourceRequestForQuote.Status.ToString();         //6

            serviceRequestToCreate.tradeDate          = sourceRequestForQuote.TradeDate.ToShortDateString();
            serviceRequestToCreate.expiryDate         = sourceRequestForQuote.ExpiryDate.ToShortDateString();     //8
            serviceRequestToCreate.dayCountConvention = sourceRequestForQuote.DayCountConvention;

            serviceRequestToCreate.lotSize    = sourceRequestForQuote.LotSize;
            serviceRequestToCreate.multiplier = sourceRequestForQuote.Multiplier;
            serviceRequestToCreate.contracts  = sourceRequestForQuote.Contracts;
            serviceRequestToCreate.quantity   = sourceRequestForQuote.Quantity;           //12

            serviceRequestToCreate.notionalMillions = sourceRequestForQuote.NotionalMillions;
            serviceRequestToCreate.notionalFXRate   = sourceRequestForQuote.NotionalFXRate;
            serviceRequestToCreate.notionalCurrency = sourceRequestForQuote.NotionalCurrency.ToString();             //15

            serviceRequestToCreate.delta = sourceRequestForQuote.Delta;
            serviceRequestToCreate.gamma = sourceRequestForQuote.Gamma;
            serviceRequestToCreate.vega  = sourceRequestForQuote.Vega;
            serviceRequestToCreate.theta = sourceRequestForQuote.Theta;
            serviceRequestToCreate.rho   = sourceRequestForQuote.Rho;           //20

            serviceRequestToCreate.deltaNotional = sourceRequestForQuote.DeltaNotional;
            serviceRequestToCreate.gammaNotional = sourceRequestForQuote.GammaNotional;
            serviceRequestToCreate.vegaNotional  = sourceRequestForQuote.VegaNotional;
            serviceRequestToCreate.thetaNotional = sourceRequestForQuote.ThetaNotional;
            serviceRequestToCreate.rhoNotional   = sourceRequestForQuote.RhoNotional;           //25

            serviceRequestToCreate.deltaShares = sourceRequestForQuote.DeltaShares;
            serviceRequestToCreate.gammaShares = sourceRequestForQuote.GammaShares;
            serviceRequestToCreate.vegaShares  = sourceRequestForQuote.VegaShares;
            serviceRequestToCreate.thetaShares = sourceRequestForQuote.ThetaShares;
            serviceRequestToCreate.rhoShares   = sourceRequestForQuote.RhoShares;           //30

            serviceRequestToCreate.askFinalAmount       = sourceRequestForQuote.AskFinalAmount;
            serviceRequestToCreate.askFinalPercentage   = sourceRequestForQuote.AskFinalPercentage;
            serviceRequestToCreate.askImpliedVol        = sourceRequestForQuote.AskImpliedVol;
            serviceRequestToCreate.askPremiumAmount     = sourceRequestForQuote.AskPremiumAmount;
            serviceRequestToCreate.askPremiumPercentage = sourceRequestForQuote.AskPremiumPercentage;             //35

            serviceRequestToCreate.bidFinalAmount       = sourceRequestForQuote.BidFinalAmount;
            serviceRequestToCreate.bidFinalPercentage   = sourceRequestForQuote.BidFinalPercentage;
            serviceRequestToCreate.bidImpliedVol        = sourceRequestForQuote.BidImpliedVol;
            serviceRequestToCreate.bidPremiumAmount     = sourceRequestForQuote.BidPremiumAmount;
            serviceRequestToCreate.bidPremiumPercentage = sourceRequestForQuote.BidPremiumPercentage;             //40

            serviceRequestToCreate.premiumAmount     = sourceRequestForQuote.PremiumAmount;
            serviceRequestToCreate.premiumPercentage = sourceRequestForQuote.PremiumPercentage;
            serviceRequestToCreate.impliedVol        = sourceRequestForQuote.ImpliedVol;      //43

            serviceRequestToCreate.salesCreditAmount     = sourceRequestForQuote.SalesCreditAmount;
            serviceRequestToCreate.salesCreditPercentage = sourceRequestForQuote.SalesCreditPercentage;
            serviceRequestToCreate.salesCreditCurrency   = sourceRequestForQuote.SalesCreditCurrency.ToString();
            serviceRequestToCreate.salesCreditFXRate     = sourceRequestForQuote.SalesCreditFXRate;         //47

            serviceRequestToCreate.premiumSettlementCurrency     = sourceRequestForQuote.PremiumSettlementCurrency.ToString();
            serviceRequestToCreate.premiumSettlementDate         = sourceRequestForQuote.PremiumSettlementDate.ToShortDateString();
            serviceRequestToCreate.premiumSettlementDaysOverride = sourceRequestForQuote.PremiumSettlementDaysOverride;
            serviceRequestToCreate.premiumSettlementFXRate       = sourceRequestForQuote.PremiumSettlementFXRate;       //51

            serviceRequestToCreate.salesComment  = sourceRequestForQuote.SalesComment;
            serviceRequestToCreate.traderComment = sourceRequestForQuote.TraderComment;
            serviceRequestToCreate.clientComment = sourceRequestForQuote.ClientComment;             //54

            serviceRequestToCreate.hedgePrice   = sourceRequestForQuote.HedgePrice;
            serviceRequestToCreate.hedgeType    = sourceRequestForQuote.HedgeType.ToString();
            serviceRequestToCreate.totalPremium = sourceRequestForQuote.TotalPremium;
            serviceRequestToCreate.pickedUpBy   = sourceRequestForQuote.PickedUpBy;           //58

            return(serviceRequestToCreate);
        }