public override Builder set(string propertyName, object newValue) { switch (propertyName.GetHashCode()) { case 1411950943: // xInterpolator this.xInterpolator = (CurveInterpolator)newValue; break; case -382665134: // xExtrapolatorLeft this.xExtrapolatorLeft = (CurveExtrapolator)newValue; break; case 1027943729: // xExtrapolatorRight this.xExtrapolatorRight = (CurveExtrapolator)newValue; break; case 1118547936: // yInterpolator this.yInterpolator = (CurveInterpolator)newValue; break; case 970644563: // yExtrapolatorLeft this.yExtrapolatorLeft = (CurveExtrapolator)newValue; break; case 30871376: // yExtrapolatorRight this.yExtrapolatorRight = (CurveExtrapolator)newValue; break; default: throw new NoSuchElementException("Unknown property: " + propertyName); } return(this); }
private static IDictionary <CurveName, LoadedCurveSettings> parseCurveSettings(CharSource settingsResource) { ImmutableMap.Builder <CurveName, LoadedCurveSettings> builder = ImmutableMap.builder(); CsvFile csv = CsvFile.of(settingsResource, true); foreach (CsvRow row in csv.rows()) { string curveNameStr = row.getField(SETTINGS_CURVE_NAME); string valueTypeStr = row.getField(SETTINGS_VALUE_TYPE); string dayCountStr = row.getField(SETTINGS_DAY_COUNT); string interpolatorStr = row.getField(SETTINGS_INTERPOLATOR); string leftExtrapolatorStr = row.getField(SETTINGS_LEFT_EXTRAPOLATOR); string rightExtrapolatorStr = row.getField(SETTINGS_RIGHT_EXTRAPOLATOR); if (!VALUE_TYPE_MAP.containsKey(valueTypeStr.ToLower(Locale.ENGLISH))) { throw new System.ArgumentException(Messages.format("Unsupported {} in curve settings: {}", SETTINGS_VALUE_TYPE, valueTypeStr)); } CurveName curveName = CurveName.of(curveNameStr); ValueType valueType = VALUE_TYPE_MAP.get(valueTypeStr.ToLower(Locale.ENGLISH)); CurveInterpolator interpolator = CurveInterpolator.of(interpolatorStr); CurveExtrapolator leftExtrap = CurveExtrapolator.of(leftExtrapolatorStr); CurveExtrapolator rightExtrap = CurveExtrapolator.of(rightExtrapolatorStr); // ONE_ONE day count is not used DayCount dayCount = LoaderUtils.parseDayCount(dayCountStr); LoadedCurveSettings settings = LoadedCurveSettings.of(curveName, ValueType.YEAR_FRACTION, valueType, dayCount, interpolator, leftExtrap, rightExtrap); builder.put(curveName, settings); } return(builder.build()); }
public override Builder set(string propertyName, object newValue) { switch (propertyName.GetHashCode()) { case -450004177: // metadata this.metadata_Renamed = (CurveMetadata)newValue; break; case 1681280954: // xValues this.xValues_Renamed = (DoubleArray)newValue; break; case -1726182661: // yValues this.yValues_Renamed = (DoubleArray)newValue; break; case 2096253127: // interpolator this.interpolator_Renamed = (CurveInterpolator)newValue; break; case 1271703994: // extrapolatorLeft this.extrapolatorLeft_Renamed = (CurveExtrapolator)newValue; break; case 773779145: // extrapolatorRight this.extrapolatorRight_Renamed = (CurveExtrapolator)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> internal Builder(InterpolatedNodalCurve beanToCopy) { this.metadata_Renamed = beanToCopy.Metadata; this.xValues_Renamed = beanToCopy.XValues; this.yValues_Renamed = beanToCopy.YValues; this.interpolator_Renamed = beanToCopy.Interpolator; this.extrapolatorLeft_Renamed = beanToCopy.ExtrapolatorLeft; this.extrapolatorRight_Renamed = beanToCopy.ExtrapolatorRight; }
private GridSurfaceInterpolator(CurveInterpolator xInterpolator, CurveExtrapolator xExtrapolatorLeft, CurveExtrapolator xExtrapolatorRight, CurveInterpolator yInterpolator, CurveExtrapolator yExtrapolatorLeft, CurveExtrapolator yExtrapolatorRight) { this.xInterpolator = xInterpolator; this.xExtrapolatorLeft = xExtrapolatorLeft; this.xExtrapolatorRight = xExtrapolatorRight; this.yInterpolator = yInterpolator; this.yExtrapolatorLeft = yExtrapolatorLeft; this.yExtrapolatorRight = yExtrapolatorRight; }
internal Bound(CurveInterpolator xInterpolator, CurveExtrapolator xExtrapolatorLeft, CurveExtrapolator xExtrapolatorRight, int paramSize, DoubleArray xValuesUnique, BoundCurveInterpolator[] yInterpolators) { this.xInterpolator = xInterpolator; this.xExtrapolatorLeft = xExtrapolatorLeft; this.xExtrapolatorRight = xExtrapolatorRight; this.xValuesUnique = xValuesUnique; this.paramSize = paramSize; this.yInterpolators = yInterpolators; }
static DiscountingFraProductPricerTest() { CurveInterpolator interp = CurveInterpolators.DOUBLE_QUADRATIC; DoubleArray time_gbp = DoubleArray.of(0.0, 0.1, 0.25, 0.5, 0.75, 1.0, 2.0); DoubleArray rate_gbp = DoubleArray.of(0.0160, 0.0165, 0.0155, 0.0155, 0.0155, 0.0150, 0.014); InterpolatedNodalCurve dscCurve = InterpolatedNodalCurve.of(Curves.zeroRates("GBP-Discount", DAY_COUNT), time_gbp, rate_gbp, interp); DoubleArray time_index = DoubleArray.of(0.0, 0.25, 0.5, 1.0); DoubleArray rate_index = DoubleArray.of(0.0180, 0.0180, 0.0175, 0.0165); InterpolatedNodalCurve indexCurve = InterpolatedNodalCurve.of(Curves.zeroRates("GBP-GBPIBOR3M", DAY_COUNT), time_index, rate_index, interp); IMM_PROV = ImmutableRatesProvider.builder(VAL_DATE).discountCurve(GBP, dscCurve).iborIndexCurve(GBP_LIBOR_3M, indexCurve).build(); }
private LoadedCurveSettings(CurveName curveName, ValueType xValueType, ValueType yValueType, DayCount dayCount, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight) { JodaBeanUtils.notNull(curveName, "curveName"); JodaBeanUtils.notNull(xValueType, "xValueType"); JodaBeanUtils.notNull(yValueType, "yValueType"); JodaBeanUtils.notNull(dayCount, "dayCount"); JodaBeanUtils.notNull(interpolator, "interpolator"); JodaBeanUtils.notNull(extrapolatorLeft, "extrapolatorLeft"); JodaBeanUtils.notNull(extrapolatorRight, "extrapolatorRight"); this.curveName = curveName; this.xValueType = xValueType; this.yValueType = yValueType; this.dayCount = dayCount; this.interpolator = interpolator; this.extrapolatorLeft = extrapolatorLeft; this.extrapolatorRight = extrapolatorRight; }
public virtual void calibration_present_value_discountCurve_clamped() { CurveInterpolator interp = CurveInterpolators.LOG_NATURAL_SPLINE_DISCOUNT_FACTOR; CurveExtrapolator extrapRight = CurveExtrapolators.LOG_LINEAR; CurveExtrapolator extrapLeft = CurveExtrapolators.INTERPOLATOR; InterpolatedNodalCurveDefinition dsc = InterpolatedNodalCurveDefinition.builder().name(DSCON_CURVE_NAME).xValueType(ValueType.YEAR_FRACTION).yValueType(ValueType.DISCOUNT_FACTOR).dayCount(CURVE_DC).interpolator(interp).extrapolatorLeft(extrapLeft).extrapolatorRight(extrapRight).nodes(DSC_NODES).build(); InterpolatedNodalCurveDefinition fwd = InterpolatedNodalCurveDefinition.builder().name(FWD3_CURVE_NAME).xValueType(ValueType.YEAR_FRACTION).yValueType(ValueType.DISCOUNT_FACTOR).dayCount(CURVE_DC).interpolator(interp).extrapolatorLeft(extrapLeft).extrapolatorRight(extrapRight).nodes(FWD3_NODES).build(); RatesCurveGroupDefinition config = RatesCurveGroupDefinition.builder().name(CURVE_GROUP_NAME).addCurve(dsc, USD, USD_FED_FUND).addForwardCurve(fwd, USD_LIBOR_3M).build(); RatesProvider result = CALIBRATOR.calibrate(config, ALL_QUOTES_BD, REF_DATA); assertResult(result, ALL_QUOTES_BD); double shift = 1.0E-6; System.Func <MarketData, RatesProvider> f = marketData => CALIBRATOR.calibrate(config, marketData, REF_DATA); calibration_market_quote_sensitivity_check(f, config, shift, TS_EMPTY); }
//------------------------------------------------------------------------- // restricted constructor //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @ImmutableConstructor private InterpolatedNodalCurve(CurveMetadata metadata, com.opengamma.strata.collect.array.DoubleArray xValues, com.opengamma.strata.collect.array.DoubleArray yValues, com.opengamma.strata.market.curve.interpolator.CurveInterpolator interpolator, com.opengamma.strata.market.curve.interpolator.CurveExtrapolator extrapolatorLeft, com.opengamma.strata.market.curve.interpolator.CurveExtrapolator extrapolatorRight) private InterpolatedNodalCurve(CurveMetadata metadata, DoubleArray xValues, DoubleArray yValues, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight) { JodaBeanUtils.notNull(metadata, "metadata"); JodaBeanUtils.notNull(xValues, "times"); JodaBeanUtils.notNull(yValues, "values"); JodaBeanUtils.notNull(interpolator, "interpolator"); JodaBeanUtils.notNull(extrapolatorLeft, "extrapolatorLeft"); JodaBeanUtils.notNull(extrapolatorRight, "extrapolatorRight"); if (xValues.size() < 2) { throw new System.ArgumentException("Length of x-values must be at least 2"); } if (xValues.size() != yValues.size()) { throw new System.ArgumentException("Length of x-values and y-values must match"); } metadata.ParameterMetadata.ifPresent(@params => { if (xValues.size() != @params.size()) { throw new System.ArgumentException("Length of x-values and parameter metadata must match when metadata present"); } }); for (int i = 1; i < xValues.size(); i++) { if (xValues.get(i) <= xValues.get(i - 1)) { throw new System.ArgumentException("Array of x-values must be sorted and unique"); } } this.metadata = metadata; this.xValues = xValues; this.yValues = yValues; this.extrapolatorLeft = extrapolatorLeft; this.interpolator = interpolator; this.extrapolatorRight = extrapolatorRight; this.boundInterpolator = interpolator.bind(xValues, yValues, extrapolatorLeft, extrapolatorRight); this.parameterMetadata = IntStream.range(0, ParameterCount).mapToObj(i => getParameterMetadata(i)).collect(toImmutableList()); }
public virtual void pointAndParameterPriceIndex() { double eps = 1.0e-13; LocalDate valuationDate = LocalDate.of(2014, 1, 22); DoubleArray x = DoubleArray.of(0.5, 1.0, 2.0); DoubleArray y = DoubleArray.of(224.2, 262.6, 277.5); CurveInterpolator interp = CurveInterpolators.NATURAL_CUBIC_SPLINE; string curveName = "GB_RPI_CURVE"; InterpolatedNodalCurve interpCurve = InterpolatedNodalCurve.of(Curves.prices(curveName), x, y, interp); ImmutableRatesProvider provider = ImmutableRatesProvider.builder(VAL_DATE).priceIndexCurve(GB_RPI, interpCurve).timeSeries(GB_RPI, LocalDateDoubleTimeSeries.of(date(2013, 11, 30), 200)).build(); double pointSensiValue = 2.5; YearMonth refMonth = YearMonth.from(valuationDate.plusMonths(9)); InflationRateSensitivity pointSensi = InflationRateSensitivity.of(PriceIndexObservation.of(GB_RPI, refMonth), pointSensiValue); CurrencyParameterSensitivities computed = provider.parameterSensitivity(pointSensi.build()); DoubleArray sensiComputed = computed.Sensitivities.get(0).Sensitivity; InflationRateSensitivity pointSensi1 = InflationRateSensitivity.of(PriceIndexObservation.of(GB_RPI, refMonth), 1); DoubleArray sensiExpectedUnit = provider.priceIndexValues(GB_RPI).parameterSensitivity(pointSensi1).Sensitivities.get(0).Sensitivity; assertTrue(sensiComputed.equalWithTolerance(sensiExpectedUnit.multipliedBy(pointSensiValue), eps)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(dataProvider = "name") public void test_of_lookup(CurveInterpolator convention, String name) public virtual void test_of_lookup(CurveInterpolator convention, string name) { assertEquals(CurveInterpolator.of(name), convention); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(dataProvider = "name") public void test_toString(CurveInterpolator convention, String name) public virtual void test_toString(CurveInterpolator convention, string name) { assertEquals(convention.ToString(), name); }
/// <summary> /// Obtains an instance with time interpolator, strike interpolator and shift curve. /// <para> /// The extrapolation is completed by default extrapolators in {@code GridSurfaceInterpolator}. /// /// </para> /// </summary> /// <param name="name"> the name of the volatilities </param> /// <param name="index"> the Ibor index </param> /// <param name="dayCount"> the day count to use </param> /// <param name="timeInterpolator"> the time interpolator </param> /// <param name="strikeInterpolator"> the strike interpolator </param> /// <param name="shiftCurve"> the shift curve </param> /// <returns> the instance </returns> public static SurfaceIborCapletFloorletVolatilityBootstrapDefinition of(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, CurveInterpolator timeInterpolator, CurveInterpolator strikeInterpolator, Curve shiftCurve) { GridSurfaceInterpolator gridInterpolator = GridSurfaceInterpolator.of(timeInterpolator, strikeInterpolator); return(of(name, index, dayCount, gridInterpolator, shiftCurve)); }
private readonly IList <ParameterMetadata> parameterMetadata; // derived, not a property //------------------------------------------------------------------------- /// <summary> /// Creates an interpolated curve with metadata. /// </summary> /// <param name="metadata"> the curve metadata </param> /// <param name="xValues"> the x-values </param> /// <param name="yValues"> the y-values </param> /// <param name="interpolator"> the interpolator </param> /// <returns> the curve </returns> public static InterpolatedNodalCurve of(CurveMetadata metadata, DoubleArray xValues, DoubleArray yValues, CurveInterpolator interpolator) { return(InterpolatedNodalCurve.builder().metadata(metadata).xValues(xValues).yValues(yValues).interpolator(interpolator).build()); }
/// <summary> /// Obtains an instance from the specified interpolators and extrapolators. /// </summary> /// <param name="xInterpolator"> the x-value interpolator </param> /// <param name="xExtrapolatorLeft"> the x-value left extrapolator </param> /// <param name="xExtrapolatorRight"> the x-value right extrapolator </param> /// <param name="yInterpolator"> the y-value interpolator </param> /// <param name="yExtrapolatorLeft"> the y-value left extrapolator </param> /// <param name="yExtrapolatorRight"> the y-value right extrapolator </param> /// <returns> the index </returns> /// <exception cref="IllegalArgumentException"> if the name is not known </exception> public static GridSurfaceInterpolator of(CurveInterpolator xInterpolator, CurveExtrapolator xExtrapolatorLeft, CurveExtrapolator xExtrapolatorRight, CurveInterpolator yInterpolator, CurveExtrapolator yExtrapolatorLeft, CurveExtrapolator yExtrapolatorRight) { return(new GridSurfaceInterpolator(xInterpolator, xExtrapolatorLeft, xExtrapolatorRight, yInterpolator, yExtrapolatorLeft, yExtrapolatorRight)); }
//------------------------------------------------------------------------- /// <summary> /// Obtains an instance from the specified interpolators, using flat extrapolation. /// </summary> /// <param name="xInterpolator"> the x-value interpolator </param> /// <param name="yInterpolator"> the y-value interpolator </param> /// <returns> the index </returns> /// <exception cref="IllegalArgumentException"> if the name is not known </exception> public static GridSurfaceInterpolator of(CurveInterpolator xInterpolator, CurveInterpolator yInterpolator) { return(new GridSurfaceInterpolator(xInterpolator, FLAT, FLAT, yInterpolator, FLAT, FLAT)); }
/// <summary> /// Creates an interpolated curve with metadata. /// </summary> /// <param name="metadata"> the curve metadata </param> /// <param name="xValues"> the x-values </param> /// <param name="yValues"> the y-values </param> /// <param name="interpolator"> the interpolator </param> /// <param name="extrapolatorLeft"> the extrapolator for extrapolating off the left-hand end of the curve </param> /// <param name="extrapolatorRight"> the extrapolator for extrapolating off the right-hand end of the curve </param> /// <returns> the curve </returns> public static InterpolatedNodalCurve of(CurveMetadata metadata, DoubleArray xValues, DoubleArray yValues, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight) { return(InterpolatedNodalCurve.builder().metadata(metadata).xValues(xValues).yValues(yValues).interpolator(interpolator).extrapolatorLeft(extrapolatorLeft).extrapolatorRight(extrapolatorRight).build()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(dataProvider = "name") public void test_extendedEnum(CurveInterpolator convention, String name) public virtual void test_extendedEnum(CurveInterpolator convention, string name) { ImmutableMap <string, CurveInterpolator> map = CurveInterpolator.extendedEnum().lookupAll(); assertEquals(map.get(name), convention); }
public virtual void test_of_lookup_notFound() { assertThrowsIllegalArg(() => CurveInterpolator.of("Rubbish")); }
public virtual void test_of_lookup_null() { assertThrowsIllegalArg(() => CurveInterpolator.of(null)); }
/// <summary> /// Sets the interpolator. /// This is used for x-values between the smallest and largest known x-value. </summary> /// <param name="interpolator"> the new value, not null </param> /// <returns> this, for chaining, not null </returns> public Builder interpolator(CurveInterpolator interpolator) { JodaBeanUtils.notNull(interpolator, "interpolator"); this.interpolator_Renamed = interpolator; return(this); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(dataProvider = "name") public void test_name(CurveInterpolator convention, String name) public virtual void test_name(CurveInterpolator convention, string name) { assertEquals(convention.Name, name); }
//------------------------------------------------------------------------- /// <summary> /// Obtains an instance. /// </summary> /// <param name="curveName"> the curve name </param> /// <param name="yValueType"> the value type </param> /// <param name="dayCount"> the day count </param> /// <param name="interpolator"> the interpolator </param> /// <param name="extrapolatorLeft"> the left extrapolator </param> /// <param name="extrapolatorRight"> the right extrapolator </param> /// <returns> the curve settings </returns> internal static LoadedCurveSettings of(CurveName curveName, ValueType xValueType, ValueType yValueType, DayCount dayCount, CurveInterpolator interpolator, CurveExtrapolator extrapolatorLeft, CurveExtrapolator extrapolatorRight) { return(new LoadedCurveSettings(curveName, xValueType, yValueType, dayCount, interpolator, extrapolatorLeft, extrapolatorRight)); }
/// <summary> /// Obtains an instance with time interpolator and strike interpolator. /// <para> /// The extrapolation is completed by default extrapolators in {@code GridSurfaceInterpolator}. /// /// </para> /// </summary> /// <param name="name"> the name of the volatilities </param> /// <param name="index"> the Ibor index </param> /// <param name="dayCount"> the day count to use </param> /// <param name="timeInterpolator"> the time interpolator </param> /// <param name="strikeInterpolator"> the strike interpolator </param> /// <returns> the instance </returns> public static SurfaceIborCapletFloorletVolatilityBootstrapDefinition of(IborCapletFloorletVolatilitiesName name, IborIndex index, DayCount dayCount, CurveInterpolator timeInterpolator, CurveInterpolator strikeInterpolator) { return(of(name, index, dayCount, timeInterpolator, strikeInterpolator, null)); }