//-------------------------------------------------------------------------
        public FunctionRequirements requirements(SecurityId securityId, LegalEntityId issuerId, Currency currency)
        {
            // repo
            RepoGroup repoKey = repoCurveSecurityGroups.get(securityId);

            if (repoKey == null)
            {
                repoKey = repoCurveGroups.get(issuerId);
            }
            if (repoKey == null)
            {
                throw new System.ArgumentException(Messages.format("Legal entity discounting lookup has no repo curve defined for '{}' and '{}'", securityId, issuerId));
            }
            CurveId repoCurveId = repoCurves.get(Pair.of(repoKey, currency));

            if (repoCurveId == null)
            {
                throw new System.ArgumentException(Messages.format("Legal entity discounting lookup has no repo curve defined for '{}' and '{}'", securityId, issuerId));
            }
            // issuer
            LegalEntityGroup issuerKey = issuerCurveGroups.get(issuerId);

            if (issuerKey == null)
            {
                throw new System.ArgumentException(Messages.format("Legal entity discounting lookup has no issuer curve defined for '{}'", issuerId));
            }
            CurveId issuerCurveId = issuerCurves.get(Pair.of(issuerKey, currency));

            if (issuerCurveId == null)
            {
                throw new System.ArgumentException(Messages.format("Legal entity discounting lookup has no issuer curve defined for '{}'", issuerId));
            }
            // result
            return(FunctionRequirements.builder().valueRequirements(ImmutableSet.of(repoCurveId, issuerCurveId)).outputCurrencies(currency).observableSource(observableSource).build());
        }
            public override Builder set(string propertyName, object newValue)
            {
                switch (propertyName.GetHashCode())
                {
                case 1574023291:         // securityId
                    this.securityId_Renamed = (SecurityId)newValue;
                    break;

                case 1585636160:         // notional
                    this.notional_Renamed = (Payment)newValue;
                    break;

                case 1905311443:         // dayCount
                    this.dayCount_Renamed = (DayCount)newValue;
                    break;

                case -1895216418:         // yieldConvention
                    this.yieldConvention_Renamed = (BillYieldConvention)newValue;
                    break;

                case 866287159:         // legalEntityId
                    this.legalEntityId_Renamed = (LegalEntityId)newValue;
                    break;

                case 135924714:         // settlementDateOffset
                    this.settlementDateOffset_Renamed = (DaysAdjustment)newValue;
                    break;

                default:
                    throw new NoSuchElementException("Unknown property: " + propertyName);
                }
                return(this);
            }
 /// <summary>
 /// Restricted copy constructor. </summary>
 /// <param name="beanToCopy">  the bean to copy from, not null </param>
 protected internal Builder(ResolvedBill beanToCopy)
 {
     this.securityId_Renamed           = beanToCopy.SecurityId;
     this.notional_Renamed             = beanToCopy.Notional;
     this.dayCount_Renamed             = beanToCopy.DayCount;
     this.yieldConvention_Renamed      = beanToCopy.YieldConvention;
     this.legalEntityId_Renamed        = beanToCopy.LegalEntityId;
     this.settlementDateOffset_Renamed = beanToCopy.SettlementDateOffset;
 }
예제 #4
0
 /// <summary>
 /// Restricted copy constructor. </summary>
 /// <param name="beanToCopy">  the bean to copy from, not null </param>
 internal Builder(BillSecurity beanToCopy)
 {
     this.info_Renamed                 = beanToCopy.Info;
     this.notional_Renamed             = beanToCopy.Notional;
     this.dayCount_Renamed             = beanToCopy.DayCount;
     this.yieldConvention_Renamed      = beanToCopy.YieldConvention;
     this.legalEntityId_Renamed        = beanToCopy.LegalEntityId;
     this.settlementDateOffset_Renamed = beanToCopy.SettlementDateOffset;
 }
        //-------------------------------------------------------------------------
        public IssuerCurveDiscountFactors issuerCurveDiscountFactors(LegalEntityId issuerId, Currency currency)
        {
            LegalEntityGroup legalEntityGroup = lookup.IssuerCurveGroups.get(issuerId);

            if (legalEntityGroup == null)
            {
                throw new MarketDataNotFoundException("Unable to find issuer curve mapping for ID: " + issuerId);
            }
            return(issuerCurveDiscountFactors(legalEntityGroup, currency));
        }
        public RepoCurveDiscountFactors repoCurveDiscountFactors(LegalEntityId issuerId, Currency currency)
        {
            RepoGroup repoGroup = lookup.RepoCurveGroups.get(issuerId);

            if (repoGroup == null)
            {
                throw new MarketDataNotFoundException("Unable to find repo curve mapping for ID: " + issuerId);
            }
            return(repoCurveDiscountFactors(repoGroup, currency));
        }
        //-------------------------------------------------------------------------
        public IssuerCurveDiscountFactors issuerCurveDiscountFactors(LegalEntityId issuerId, Currency currency)
        {
            LegalEntityGroup legalEntityGroup = issuerCurveGroups.get(issuerId);

            if (legalEntityGroup == null)
            {
                throw new System.ArgumentException("Unable to find map for ID: " + issuerId);
            }
            return(issuerCurveDiscountFactors(legalEntityGroup, currency));
        }
        public RepoCurveDiscountFactors repoCurveDiscountFactors(LegalEntityId issuerId, Currency currency)
        {
            RepoGroup repoGroup = repoCurveGroups.get(issuerId);

            if (repoGroup == null)
            {
                throw new System.ArgumentException("Unable to find map for ID: " + issuerId);
            }
            return(repoCurveDiscountFactors(repoGroup, currency));
        }
 /// <summary>
 /// Restricted constructor. </summary>
 /// <param name="builder">  the builder to copy from, not null </param>
 protected internal ResolvedBill(ResolvedBill.Builder builder)
 {
     JodaBeanUtils.notNull(builder.securityId_Renamed, "securityId");
     JodaBeanUtils.notNull(builder.notional_Renamed, "notional");
     JodaBeanUtils.notNull(builder.dayCount_Renamed, "dayCount");
     JodaBeanUtils.notNull(builder.yieldConvention_Renamed, "yieldConvention");
     JodaBeanUtils.notNull(builder.legalEntityId_Renamed, "legalEntityId");
     JodaBeanUtils.notNull(builder.settlementDateOffset_Renamed, "settlementDateOffset");
     this.securityId           = builder.securityId_Renamed;
     this.notional             = builder.notional_Renamed;
     this.dayCount             = builder.dayCount_Renamed;
     this.yieldConvention      = builder.yieldConvention_Renamed;
     this.legalEntityId        = builder.legalEntityId_Renamed;
     this.settlementDateOffset = builder.settlementDateOffset_Renamed;
 }
        //-------------------------------------------------------------------------
        public virtual FunctionRequirements requirements(T target, ISet <Measure> measures, CalculationParameters parameters, ReferenceData refData)
        {
            // extract data from product
            CapitalIndexedBond product       = target.Product;
            Currency           currency      = product.Currency;
            SecurityId         securityId    = product.SecurityId;
            LegalEntityId      legalEntityId = product.LegalEntityId;

            // use lookup to build requirements
            RatesMarketDataLookup ratesLookup = parameters.getParameter(typeof(RatesMarketDataLookup));
            FunctionRequirements  ratesReqs   = ratesLookup.requirements(ImmutableSet.of(), ImmutableSet.of(product.RateCalculation.Index));
            LegalEntityDiscountingMarketDataLookup ledLookup = parameters.getParameter(typeof(LegalEntityDiscountingMarketDataLookup));
            FunctionRequirements ledReqs = ledLookup.requirements(securityId, legalEntityId, currency);

            return(ratesReqs.combinedWith(ledReqs));
        }
예제 #11
0
 /// <summary>
 /// Creates an instance. </summary>
 /// <param name="securityId">  the value of the property, not null </param>
 /// <param name="notional">  the value of the property, not null </param>
 /// <param name="dayCount">  the value of the property, not null </param>
 /// <param name="yieldConvention">  the value of the property, not null </param>
 /// <param name="legalEntityId">  the value of the property, not null </param>
 /// <param name="settlementDateOffset">  the value of the property, not null </param>
 internal Bill(SecurityId securityId, AdjustablePayment notional, DayCount dayCount, BillYieldConvention yieldConvention, LegalEntityId legalEntityId, DaysAdjustment settlementDateOffset)
 {
     JodaBeanUtils.notNull(securityId, "securityId");
     JodaBeanUtils.notNull(notional, "notional");
     JodaBeanUtils.notNull(dayCount, "dayCount");
     JodaBeanUtils.notNull(yieldConvention, "yieldConvention");
     JodaBeanUtils.notNull(legalEntityId, "legalEntityId");
     JodaBeanUtils.notNull(settlementDateOffset, "settlementDateOffset");
     this.securityId           = securityId;
     this.notional             = notional;
     this.dayCount             = dayCount;
     this.yieldConvention      = yieldConvention;
     this.legalEntityId        = legalEntityId;
     this.settlementDateOffset = settlementDateOffset;
     validate();
 }
 /// <summary>
 /// Sets the legal entity identifier.
 /// <para>
 /// This identifier is used for the legal entity that issues the bill.
 /// </para>
 /// </summary>
 /// <param name="legalEntityId">  the new value, not null </param>
 /// <returns> this, for chaining, not null </returns>
 public virtual Builder legalEntityId(LegalEntityId legalEntityId)
 {
     JodaBeanUtils.notNull(legalEntityId, "legalEntityId");
     this.legalEntityId_Renamed = legalEntityId;
     return(this);
 }
 internal static ResolvedCapitalIndexedBond sut2()
 {
     return(ResolvedCapitalIndexedBond.builder().securityId(CapitalIndexedBondTest.sut2().SecurityId).dayCount(NL_365).legalEntityId(LegalEntityId.of("OG-Ticker", "US-Govt1")).nominalPayment(PERIODIC[1].withUnitCoupon(PERIODIC[0].StartDate, PERIODIC[0].UnadjustedStartDate)).periodicPayments(PERIODIC[0], PERIODIC[1]).frequency(CapitalIndexedBondTest.sut2().AccrualSchedule.Frequency).rollConvention(CapitalIndexedBondTest.sut2().AccrualSchedule.calculatedRollConvention()).settlementDateOffset(DaysAdjustment.ofBusinessDays(3, GBLO)).yieldConvention(GB_IL_FLOAT).rateCalculation(CapitalIndexedBondTest.sut2().RateCalculation).build());
 }
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            BillSecurity test1 = BillSecurity.builder().dayCount(DAY_COUNT).info(INFO).legalEntityId(LEGAL_ENTITY).notional(NOTIONAL).settlementDateOffset(SETTLE).yieldConvention(YIELD_CONVENTION).build();

            coverImmutableBean(test1);
            BillSecurity test2 = BillSecurity.builder().dayCount(DayCounts.ACT_365F).info(SecurityInfo.of(SecurityId.of("OG-Test", "ID2"), PRICE_INFO)).legalEntityId(LegalEntityId.of("OG-Ticker", "LE2")).notional(AdjustablePayment.of(CurrencyAmount.of(CCY, 10), MATURITY_DATE_ADJ)).settlementDateOffset(DaysAdjustment.ofBusinessDays(2, EUTA, BUSINESS_ADJUST)).yieldConvention(BillYieldConvention.INTEREST_AT_MATURITY).build();

            coverBeanEquals(test1, test2);
        }
예제 #15
0
        internal static FixedCouponBond sut2()
        {
            BusinessDayAdjustment adj  = BusinessDayAdjustment.of(MODIFIED_FOLLOWING, SAT_SUN);
            PeriodicSchedule      sche = PeriodicSchedule.of(START_DATE, END_DATE, Frequency.P12M, adj, StubConvention.SHORT_INITIAL, true);

            return(FixedCouponBond.builder().securityId(SECURITY_ID2).dayCount(DayCounts.ACT_360).fixedRate(0.005).legalEntityId(LegalEntityId.of("OG-Ticker", "BUN EUR 2")).currency(GBP).notional(1.0e6).accrualSchedule(sche).settlementDateOffset(DaysAdjustment.ofBusinessDays(2, SAT_SUN)).yieldConvention(FixedCouponBondYieldConvention.GB_BUMP_DMO).build());
        }
 internal static CapitalIndexedBond sut2()
 {
     return(CapitalIndexedBond.builder().securityId(SECURITY_ID2).notional(5.0e7).currency(GBP).dayCount(NL_365).rateCalculation(InflationRateCalculation.builder().index(GB_RPI).lag(Period.ofMonths(2)).indexCalculationMethod(INTERPOLATED).firstIndexValue(124.556).build()).exCouponPeriod(EX_COUPON).legalEntityId(LegalEntityId.of("OG-Ticker", "US-Govt-1")).yieldConvention(GB_IL_FLOAT).settlementDateOffset(DaysAdjustment.ofBusinessDays(2, GBLO)).accrualSchedule(PeriodicSchedule.of(START, END, FREQUENCY, BusinessDayAdjustment.of(BusinessDayConventions.FOLLOWING, GBLO), StubConvention.NONE, RollConventions.NONE)).build());
 }