BondComponent.java
- package org.drip.product.credit;
- /*
- * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- */
- /*!
- * Copyright (C) 2020 Lakshmi Krishnamurthy
- * Copyright (C) 2019 Lakshmi Krishnamurthy
- * Copyright (C) 2018 Lakshmi Krishnamurthy
- * Copyright (C) 2017 Lakshmi Krishnamurthy
- * Copyright (C) 2016 Lakshmi Krishnamurthy
- * Copyright (C) 2015 Lakshmi Krishnamurthy
- * Copyright (C) 2014 Lakshmi Krishnamurthy
- * Copyright (C) 2013 Lakshmi Krishnamurthy
- * Copyright (C) 2012 Lakshmi Krishnamurthy
- * Copyright (C) 2011 Lakshmi Krishnamurthy
- *
- * This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics,
- * asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment
- * analytics, and portfolio construction analytics within and across fixed income, credit, commodity,
- * equity, FX, and structured products. It also includes auxiliary libraries for algorithm support,
- * numerical analysis, numerical optimization, spline builder, model validation, statistical learning,
- * and computational support.
- *
- * https://lakshmidrip.github.io/DROP/
- *
- * DROP is composed of three modules:
- *
- * - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/
- * - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/
- * - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/
- *
- * DROP Product Core implements libraries for the following:
- * - Fixed Income Analytics
- * - Loan Analytics
- * - Transaction Cost Analytics
- *
- * DROP Portfolio Core implements libraries for the following:
- * - Asset Allocation Analytics
- * - Asset Liability Management Analytics
- * - Capital Estimation Analytics
- * - Exposure Analytics
- * - Margin Analytics
- * - XVA Analytics
- *
- * DROP Computational Core implements libraries for the following:
- * - Algorithm Support
- * - Computation Support
- * - Function Analysis
- * - Model Validation
- * - Numerical Analysis
- * - Numerical Optimizer
- * - Spline Builder
- * - Statistical Learning
- *
- * Documentation for DROP is Spread Over:
- *
- * - Main => https://lakshmidrip.github.io/DROP/
- * - Wiki => https://github.com/lakshmiDRIP/DROP/wiki
- * - GitHub => https://github.com/lakshmiDRIP/DROP
- * - Repo Layout Taxonomy => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md
- * - Javadoc => https://lakshmidrip.github.io/DROP/Javadoc/index.html
- * - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal
- * - Release Versions => https://lakshmidrip.github.io/DROP/version.html
- * - Community Credits => https://lakshmidrip.github.io/DROP/credits.html
- * - Issues Catalog => https://github.com/lakshmiDRIP/DROP/issues
- * - JUnit => https://lakshmidrip.github.io/DROP/junit/index.html
- * - Jacoco => https://lakshmidrip.github.io/DROP/jacoco/index.html
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- /**
- * <i>BondComponent</i> is the base class that extends CreditComponent abstract class and implements the
- * functionality behind bonds of all kinds. Bond static data is captured in a set of 11 container classes –
- * BondTSYParams, BondCouponParams, BondNotionalParams, BondFloaterParams, BondCurrencyParams,
- * BondIdentifierParams, CompCRValParams, BondCFTerminationEvent, BondFixedPeriodGenerationParams, and one
- * EmbeddedOptionSchedule object instance each for the call and the put objects. Each of these parameter set
- * can be set separately.
- *
- * <br><br>
- * <ul>
- * <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></li>
- * <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FixedIncomeAnalyticsLibrary.md">Fixed Income Analytics</a></li>
- * <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/product/README.md">Product Components/Baskets for Credit, FRA, FX, Govvie, Rates, and Option AssetClasses</a></li>
- * <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/product/credit/README.md">Credit Products - Components and Baskets</a></li>
- * </ul>
- * <br><br>
- *
- * @author Lakshmi Krishnamurthy
- */
- public class BondComponent extends org.drip.product.definition.Bond implements
- org.drip.product.definition.BondProduct
- {
- private static final boolean s_bSuppressErrors = true;
- private static final boolean s_bYieldDFOffofCouponAccrualDCF = true;
- /*
- * Width for calculating local forward rate width
- */
- private static final int LOCAL_FORWARD_RATE_WIDTH = 1;
- /*
- * Recovery Period discretization Mode
- */
- private static final int s_iDiscretizationScheme =
- org.drip.param.pricer.CreditPricerParams.PERIOD_DISCRETIZATION_DAY_STEP;
- /*
- * Discount Curve to derive the zero curve off of
- */
- private static final int ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE = 1;
- private static final int ZERO_OFF_OF_TREASURIES_DISCOUNT_CURVE = 2;
- /*
- * Discount Curve to derive Bumped Prices
- */
- private static final int PRICE_OFF_OF_FUNDING_CURVE = 1;
- private static final int PRICE_OFF_OF_TREASURY_CURVE = 2;
- // private static final int PRICE_OFF_OF_OVERNIGHT_CURVE = 3;
- private org.drip.product.params.BondStream _stream = null;
- private org.drip.product.params.IdentifierSet _idParams = null;
- private org.drip.product.params.CouponSetting _couponSetting = null;
- private org.drip.product.params.CreditSetting _creditSetting = null;
- private org.drip.product.params.FloaterSetting _floaterSetting = null;
- private org.drip.product.params.NotionalSetting _notionalSetting = null;
- private org.drip.product.params.QuoteConvention _quoteConvention = null;
- private org.drip.product.params.TerminationSetting _terminationSetting = null;
- private org.drip.product.params.TreasuryBenchmarks _treasuryBenchmarks = null;
- /*
- * Bond EOS Params
- */
- protected org.drip.product.params.EmbeddedOptionSchedule _eosPut = null;
- protected org.drip.product.params.EmbeddedOptionSchedule _eosCall = null;
- private int terminationAdjust (
- final int iDate)
- {
- org.drip.analytics.daycount.DateAdjustParams dap = null == _terminationSetting ? null :
- _terminationSetting.dap();
- try {
- return null == dap ? iDate : dap.roll (iDate);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- return iDate;
- }
- private double treasuryBenchmarkYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc)
- throw new java.lang.Exception ("BondComponent::treasuryBenchmarkYield => Invalid Inputs");
- java.lang.String strTsyBmk = null;
- org.drip.param.definition.ProductQuote pqTsyBmkYield = null;
- if (null != _treasuryBenchmarks) strTsyBmk = _treasuryBenchmarks.primary();
- int iValDate = valParams.valueDate();
- if (null == strTsyBmk || strTsyBmk.isEmpty())
- strTsyBmk = org.drip.analytics.support.Helper.BaseTsyBmk (iValDate, iWorkoutDate);
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.param.definition.ProductQuote> pqMap =
- csqc.quoteMap();
- if (null != pqMap && null != strTsyBmk && !strTsyBmk.isEmpty())
- pqTsyBmkYield = pqMap.get (strTsyBmk);
- if (null != pqTsyBmkYield) {
- org.drip.param.definition.Quote q = pqTsyBmkYield.quote ("Yield");
- if (null != q) return q.value ("mid");
- }
- org.drip.state.govvie.GovvieCurve gc = csqc.govvieState (govvieLabel());
- return null == gc ? java.lang.Double.NaN : gc.yield (terminationAdjust (iWorkoutDate));
- }
- private org.drip.param.valuation.WorkoutInfo exerciseCallYieldFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- {
- if (null == valParams || null == csqs || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice) || null
- == _eosCall)
- return null;
- int iValDate = valParams.valueDate();
- int[] aiEOSDate = _eosCall.dates();
- int iMaturityDate = maturityDate().julian();
- double[] adblEOSFactor = _eosCall.factors();
- int iNoticePeriod = _eosCall.exerciseNoticePeriod();
- int iExercise = -1;
- double dblExerciseYield = java.lang.Double.NaN;
- int iNumEOSDate = null == aiEOSDate ? 0 : aiEOSDate.length;
- try {
- dblExerciseYield = yieldFromPrice (valParams, csqs, vcp, iMaturityDate, 1., dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- return null;
- }
- for (int i = 0; i < iNumEOSDate; ++i) {
- if (iValDate > aiEOSDate[i] || aiEOSDate[i] - iValDate < iNoticePeriod) continue;
- try {
- double dblYield = yieldFromPrice (valParams, csqs, vcp, aiEOSDate[i], adblEOSFactor[i],
- dblPrice);
- if (dblYield < dblExerciseYield) {
- iExercise = i;
- dblExerciseYield = dblYield;
- }
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- try {
- return -1 == iExercise ? new org.drip.param.valuation.WorkoutInfo (iMaturityDate,
- dblExerciseYield, 1., org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY) : new
- org.drip.param.valuation.WorkoutInfo (aiEOSDate[iExercise], dblExerciseYield,
- adblEOSFactor[iExercise], org.drip.param.valuation.WorkoutInfo.WO_TYPE_CALL);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private org.drip.param.valuation.WorkoutInfo exercisePutYieldFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- {
- if (null == valParams || null == csqs || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice) || null
- == _eosPut)
- return null;
- int iValueDate = valParams.valueDate();
- int[] aiEOSDate = _eosPut.dates();
- double[] adblEOSFactor = _eosPut.factors();
- int iNoticePeriod = _eosPut.exerciseNoticePeriod();
- int iMaturityDate = maturityDate().julian();
- int iExercise = -1;
- double dblExerciseYield = java.lang.Double.NaN;
- int iNumEOSDate = null == aiEOSDate ? 0 : aiEOSDate.length;
- try {
- dblExerciseYield = yieldFromPrice (valParams, csqs, vcp, iMaturityDate, 1., dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- return null;
- }
- for (int i = 0; i < iNumEOSDate; ++i) {
- if (iValueDate > aiEOSDate[i] || aiEOSDate[i] - iValueDate < iNoticePeriod) continue;
- try {
- double dblYield = yieldFromPrice (valParams, csqs, vcp, aiEOSDate[i], adblEOSFactor[i],
- dblPrice);
- if (dblYield > dblExerciseYield) {
- iExercise = i;
- dblExerciseYield = dblYield;
- }
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- try {
- return -1 == iExercise ? new org.drip.param.valuation.WorkoutInfo (iMaturityDate,
- dblExerciseYield, 1., org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY) : new
- org.drip.param.valuation.WorkoutInfo (aiEOSDate[iExercise], dblExerciseYield,
- adblEOSFactor[iExercise], org.drip.param.valuation.WorkoutInfo.WO_TYPE_PUT);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private double priceFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield,
- final boolean bApplyCouponExtension)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::priceFromYield => Invalid inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::priceFromYield => Invalid inputs");
- boolean bFirstPeriod = true;
- double dblPeriodYearFract = 0.;
- double dblCumulativePeriodPV = 0.;
- boolean bTerminateCouponFlow = false;
- boolean bApplyFlatForwardRate = false;
- int iCashPayDate = java.lang.Integer.MIN_VALUE;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.analytics.daycount.ActActDCParams aap = null;
- double dblScalingNotional = null != _notionalSetting && _notionalSetting.priceOffOfOriginalNotional()
- ? 1. : notional (iValueDate);
- int iFrequency = freq();
- java.lang.String strDC = couponDC();
- java.lang.String strCalendar = currency();
- boolean bApplyCpnEOMAdj = _stream.couponEOMAdjustment();
- if (null == strCalendar || strCalendar.isEmpty()) strCalendar = redemptionCurrency();
- org.drip.param.valuation.ValuationCustomizationParams vcpQuote = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- if (null != vcp) {
- strDC = vcp.yieldDayCount();
- iFrequency = vcp.yieldFreq();
- strCalendar = vcp.yieldCalendar();
- bApplyCpnEOMAdj = vcp.applyYieldEOMAdj();
- bApplyFlatForwardRate = vcp.applyFlatForwardRate();
- } else if (null != vcpQuote) {
- strDC = vcpQuote.yieldDayCount();
- iFrequency = vcpQuote.yieldFreq();
- strCalendar = vcpQuote.yieldCalendar();
- bApplyCpnEOMAdj = vcpQuote.applyYieldEOMAdj();
- bApplyFlatForwardRate = vcpQuote.applyFlatForwardRate();
- }
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- if (bFirstPeriod) {
- bFirstPeriod = false;
- dblPeriodYearFract = period.couponDCF() - period.accrualDCF (iValueDate);
- } else
- dblPeriodYearFract += period.couponDCF();
- int iPeriodEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- if (iPeriodEndDate >= iWorkoutDate) {
- iPeriodEndDate = iWorkoutDate;
- bTerminateCouponFlow = true;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iPeriodEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::priceFromYield => No PCM for " + new
- org.drip.analytics.date.JulianDate (iValueDate) + " | " + effectiveDate());
- if (null != vcp) {
- if (null == (aap = vcp.yieldAAP()))
- aap = new org.drip.analytics.daycount.ActActDCParams (vcp.yieldFreq(), iPeriodEndDate -
- iPeriodStartDate);
- } else if (null != vcpQuote) {
- if (null == (aap = vcpQuote.yieldAAP()))
- aap = new org.drip.analytics.daycount.ActActDCParams (vcpQuote.yieldFreq(),
- iPeriodEndDate - iPeriodStartDate);
- } else
- aap = new org.drip.analytics.daycount.ActActDCParams (iFrequency, iPeriodEndDate -
- iPeriodStartDate);
- double dblYieldAnnuity = org.drip.analytics.support.Helper.Yield2DF (iFrequency, dblYield,
- s_bYieldDFOffofCouponAccrualDCF ? dblPeriodYearFract :
- org.drip.analytics.daycount.Convention.YearFraction (iValueDate, iPeriodPayDate, strDC,
- bApplyCpnEOMAdj, aap, strCalendar)) * cpcm.cumulative();
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iPeriodEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iPeriodEndDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- dblCumulativePeriodPV += (period.accrualDCF (iPeriodEndDate) * (bApplyFlatForwardRate ?
- dblFlatForwardRate : cpcm.rate() + (bApplyCouponExtension ?
- _couponSetting.couponRateExtension() : 0.)) * couponFactor (iPeriodEndDate) *
- dblCouponNotional + dblPeriodStartNotional - dblPeriodEndNotional) * dblYieldAnnuity;
- if (bTerminateCouponFlow) break;
- }
- try {
- iCashPayDate = null != _quoteConvention ? _quoteConvention.settleDate (valParams) :
- valParams.cashPayDate();
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- iCashPayDate = valParams.cashPayDate();
- }
- double dblCleanPrice = (((dblCumulativePeriodPV + dblWorkoutFactor * org.drip.analytics.support.Helper.Yield2DF (
- iFrequency,
- dblYield,
- s_bYieldDFOffofCouponAccrualDCF ? dblPeriodYearFract :
- org.drip.analytics.daycount.Convention.YearFraction (
- iValueDate,
- terminationAdjust (iWorkoutDate),
- strDC,
- bApplyCpnEOMAdj,
- aap,
- strCalendar
- )
- ) * notional (iWorkoutDate)) /
- org.drip.analytics.support.Helper.Yield2DF (
- iFrequency,
- dblYield,
- org.drip.analytics.daycount.Convention.YearFraction (
- iValueDate,
- iCashPayDate,
- strDC,
- bApplyCpnEOMAdj,
- aap,
- strCalendar
- )
- )
- ) - accrued (
- iValueDate,
- csqc
- )) / dblScalingNotional;
- return dblCleanPrice;
- }
- @Override public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> calibMeasures (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp)
- {
- double dblCleanPrice = java.lang.Double.NaN;
- org.drip.param.definition.CalibrationParams calibParams = null == pricerParams ? null :
- pricerParams.calibParams();
- if (null == calibParams) return null;
- org.drip.param.valuation.WorkoutInfo wi = calibParams.workout();
- double dblExerciseFactor = null == wi ? 1. : wi.factor();
- int iExerciseDate = null == wi ? maturityDate().julian() : wi.date();
- org.drip.state.credit.CreditCurve cc = csqc.creditState (creditLabel());
- try {
- dblCleanPrice = null == cc ? priceFromFundingCurve (valParams, csqc, iExerciseDate,
- dblExerciseFactor, 0.) : priceFromCreditCurve (valParams, csqc, iExerciseDate,
- dblExerciseFactor, 0., false);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- return null;
- }
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblCleanPrice)) return null;
- java.lang.String strCalibMeasure = calibParams.measure();
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapCalibMeasures = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>();
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"CleanPrice", "FairCleanPrice", "FairPrice", "Price"}, false)) {
- mapCalibMeasures.put (strCalibMeasure, dblCleanPrice);
- return mapCalibMeasures;
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"DirtyPrice", "FairDirtyPrice"}, false)) {
- try {
- mapCalibMeasures.put (strCalibMeasure, dblCleanPrice + accrued (valParams.valueDate(),
- csqc));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"Yield", "FairYield"}, false)) {
- try {
- mapCalibMeasures.put (strCalibMeasure, yieldFromPrice (valParams, csqc, vcp, iExerciseDate,
- dblExerciseFactor, dblCleanPrice));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"TSYSpread", "FairTSYSpread"}, false)) {
- try {
- mapCalibMeasures.put (strCalibMeasure, tsySpreadFromPrice (valParams, csqc, vcp,
- iExerciseDate, dblExerciseFactor, dblCleanPrice));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"OAS", "OASpread", "OptionAdjustedSpread"}, false)) {
- try {
- mapCalibMeasures.put (strCalibMeasure, oasFromPrice (valParams, csqc, vcp, iExerciseDate,
- dblExerciseFactor, dblCleanPrice));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"BondBasis", "YieldBasis", "YieldSpread"}, false)) {
- try {
- mapCalibMeasures.put (strCalibMeasure, bondBasisFromPrice (valParams, csqc, vcp,
- iExerciseDate, dblExerciseFactor, dblCleanPrice));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"CreditBasis"}, false)) {
- if (null == cc) return null;
- try {
- mapCalibMeasures.put (strCalibMeasure, creditBasisFromPrice (valParams, csqc, vcp,
- iExerciseDate, dblExerciseFactor, dblCleanPrice));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- if (org.drip.numerical.common.StringUtil.MatchInStringArray (strCalibMeasure, new java.lang.String[]
- {"PECS", "ParEquivalentCDSSpread"}, false)) {
- if (null == cc) return null;
- try {
- mapCalibMeasures.put (strCalibMeasure, pecsFromPrice (valParams, csqc, vcp, iExerciseDate,
- dblExerciseFactor, dblCleanPrice));
- return mapCalibMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- return null;
- }
- @Override public org.drip.param.valuation.WorkoutInfo exerciseYieldFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- return null;
- int iMaturityDate = maturityDate().julian();
- try {
- if (null == _eosCall && null == _eosPut)
- return new org.drip.param.valuation.WorkoutInfo (iMaturityDate, yieldFromPrice (valParams,
- csqc, vcp, iMaturityDate, 1., dblPrice), 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- if (null == _eosCall && null != _eosPut)
- return exercisePutYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null != _eosCall && null == _eosPut)
- return exerciseCallYieldFromPrice (valParams, csqc, vcp, dblPrice);
- org.drip.param.valuation.WorkoutInfo wiPut = exercisePutYieldFromPrice (valParams, csqc, vcp,
- dblPrice);
- org.drip.param.valuation.WorkoutInfo wiCall = exerciseCallYieldFromPrice (valParams, csqc, vcp,
- dblPrice);
- if (null == wiPut || null == wiCall) return null;
- return wiPut.date() < wiCall.date() ? wiPut : wiCall;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private double indexRate (
- final int iValueDate,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.analytics.cashflow.CompositeFloatingPeriod cup)
- throws java.lang.Exception
- {
- org.drip.state.discount.MergedDiscountForwardCurve dc = csqc.fundingState (fundingLabel());
- int iFreq = freq();
- if (null != cup) {
- org.drip.analytics.cashflow.ComposableUnitPeriod cupFirst = cup.periods().get (0);
- if (!(cupFirst instanceof org.drip.analytics.cashflow.ComposableUnitFloatingPeriod))
- throw new java.lang.Exception ("BondComponent::indexRate => Not a floater");
- return ((org.drip.analytics.cashflow.ComposableUnitFloatingPeriod) cupFirst).baseRate (csqc);
- }
- return dc.libor (iValueDate, 0 != iFreq ? iValueDate + 365 / iFreq : iValueDate +
- LOCAL_FORWARD_RATE_WIDTH);
- }
- private org.drip.analytics.output.BondWorkoutMeasures workoutMeasures (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- {
- if (null == valParams || null == csqc) return null;
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate) return null;
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding) return null;
- int iLossPayLag = null == _creditSetting ? 0 : _creditSetting.lossPayLag();
- double dblProductRecovery = null == _creditSetting ? java.lang.Double.NaN :
- _creditSetting.recovery();
- boolean bUseCurveRecovery = null == _creditSetting ? false : _creditSetting.useCurveRecovery();
- boolean bAccrualOnDefault = null == _creditSetting ? false : _creditSetting.accrualOnDefault();
- org.drip.state.credit.CreditCurve cc = csqc.creditState (creditLabel());
- double dblAccrued01 = 0.;
- double dblRecoveryPV = 0.;
- boolean bPeriodZero = true;
- double dblExpectedRecovery = 0.;
- double dblCreditRiskyDirtyDV01 = 0.;
- boolean bTerminateCouponFlow = false;
- double dblCreditRiskyPrincipalPV = 0.;
- double dblCreditRisklessDirtyDV01 = 0.;
- double dblCreditRiskyDirtyCouponPV = 0.;
- double dblCreditRisklessPrincipalPV = 0.;
- double dblCreditRisklessDirtyCouponPV = 0.;
- double dblFirstCoupon = java.lang.Double.NaN;
- double dblCreditRiskyDirtyIndexCouponPV = 0.;
- double dblFirstIndexRate = java.lang.Double.NaN;
- double dblCreditRisklessDirtyIndexCouponPV = 0.;
- double dblCreditRiskyParPV = java.lang.Double.NaN;
- double dblFlatForwardCoupon = java.lang.Double.NaN;
- double dblCreditRisklessParPV = java.lang.Double.NaN;
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForwardRate = null == vcp ? false : vcp.applyFlatForwardRate();
- try {
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iPeriodEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- if (iWorkoutDate <= iPeriodEndDate) {
- bTerminateCouponFlow = true;
- iPeriodEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iValueDate,
- valParams, csqc);
- if (null == cpcm) return null;
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardCoupon))
- dblFlatForwardCoupon = cpcm.rate();
- double dblPeriodBaseRate = period.periods().get (0).baseRate (csqc);
- double dblPeriodAnnuity = dcFunding.df (iPeriodPayDate) * cpcm.cumulative();
- double dblPeriodCoupon = bApplyFlatForwardRate ? dblFlatForwardCoupon : cpcm.rate();
- if (bPeriodZero) {
- bPeriodZero = false;
- dblFirstCoupon = dblPeriodCoupon;
- if (iPeriodStartDate < iValueDate)
- dblAccrued01 = 0.0001 * period.accrualDCF (iValueDate) * notional (iPeriodStartDate,
- iValueDate);
- if (null != _floaterSetting) dblFirstIndexRate = dblPeriodBaseRate;
- }
- double dblPeriodCreditRisklessDirtyDV01 = 0.0001 * period.accrualDCF (iPeriodEndDate) *
- dblPeriodAnnuity * notional (iPeriodStartDate);
- double dblPeriodCreditRiskessPrincipalPV = (notional (iPeriodStartDate) - notional
- (iPeriodEndDate)) * dblPeriodAnnuity;
- double dblPeriodCreditRiskyDirtyDV01 = dblPeriodCreditRisklessDirtyDV01;
- double dblPeriodCreditRiskyPrincipalPV = dblPeriodCreditRiskessPrincipalPV;
- if (null != cc && null != pricerParams) {
- double dblSurvProb = cc.survival (pricerParams.survivalToPayDate() ? iPeriodPayDate :
- iPeriodEndDate);
- dblPeriodCreditRiskyDirtyDV01 *= dblSurvProb;
- dblPeriodCreditRiskyPrincipalPV *= dblSurvProb;
- for (org.drip.analytics.cashflow.LossQuadratureMetrics lqm : period.lossMetrics (this,
- valParams, pricerParams, terminationAdjust (iWorkoutDate), csqc)) {
- if (null == lqm) continue;
- int iSubPeriodEndDate = lqm.endDate();
- int iSubPeriodStartDate = lqm.startDate();
- double dblSubPeriodDF = dcFunding.effectiveDF (iSubPeriodStartDate + iLossPayLag,
- iSubPeriodEndDate + iLossPayLag);
- double dblSubPeriodNotional = notional (iSubPeriodStartDate, iSubPeriodEndDate);
- double dblSubPeriodSurvival = cc.survival (iSubPeriodStartDate) - cc.survival
- (iSubPeriodEndDate);
- if (bAccrualOnDefault)
- dblPeriodCreditRiskyDirtyDV01 += 0.0001 * lqm.accrualDCF() * dblSubPeriodSurvival
- * dblSubPeriodDF * dblSubPeriodNotional;
- double dblRecovery = bUseCurveRecovery ? cc.effectiveRecovery (iSubPeriodStartDate,
- iSubPeriodEndDate) : dblProductRecovery;
- double dblSubPeriodExpRecovery = dblRecovery * dblSubPeriodSurvival *
- dblSubPeriodNotional;
- dblRecoveryPV += dblSubPeriodExpRecovery * dblSubPeriodDF;
- dblExpectedRecovery += dblSubPeriodExpRecovery;
- }
- }
- dblCreditRiskyDirtyDV01 += dblPeriodCreditRiskyDirtyDV01;
- dblCreditRiskyPrincipalPV += dblPeriodCreditRiskyPrincipalPV;
- dblCreditRisklessDirtyDV01 += dblPeriodCreditRisklessDirtyDV01;
- dblCreditRisklessPrincipalPV += dblPeriodCreditRiskessPrincipalPV;
- dblCreditRiskyDirtyCouponPV += 10000. * dblPeriodCoupon * couponFactor (iPeriodEndDate) *
- dblPeriodCreditRiskyDirtyDV01;
- dblCreditRisklessDirtyCouponPV += 10000. * dblPeriodCoupon * couponFactor (iPeriodEndDate) *
- dblPeriodCreditRisklessDirtyDV01;
- dblCreditRiskyDirtyIndexCouponPV += 10000. * dblPeriodBaseRate *
- dblPeriodCreditRiskyDirtyDV01;
- dblCreditRisklessDirtyIndexCouponPV += 10000. * dblPeriodBaseRate *
- dblPeriodCreditRisklessDirtyDV01;
- if (bTerminateCouponFlow) break;
- }
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- return null;
- }
- int iCashPayDate = java.lang.Integer.MIN_VALUE;
- try {
- iCashPayDate = null != _quoteConvention ? _quoteConvention.settleDate (valParams) :
- valParams.cashPayDate();
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- iCashPayDate = valParams.cashPayDate();
- }
- try {
- double dblCashPayDF = dcFunding.df (iCashPayDate);
- int iMaturityDate = maturityDate().julian();
- dblCreditRisklessParPV = dcFunding.df (iMaturityDate) * notional (iMaturityDate) *
- dblWorkoutFactor;
- if (null != cc && null != pricerParams)
- dblCreditRiskyParPV = dblCreditRisklessParPV * cc.survival (iMaturityDate);
- org.drip.analytics.output.BondCouponMeasures bcmCreditRisklessDirty = new
- org.drip.analytics.output.BondCouponMeasures (dblCreditRisklessDirtyDV01,
- dblCreditRisklessDirtyIndexCouponPV, dblCreditRisklessDirtyCouponPV,
- dblCreditRisklessDirtyCouponPV + dblCreditRisklessPrincipalPV +
- dblCreditRisklessParPV);
- double dblDefaultExposure = java.lang.Double.NaN;
- double dblDefaultExposureNoRec = java.lang.Double.NaN;
- double dblLossOnInstantaneousDefault = java.lang.Double.NaN;
- org.drip.analytics.output.BondCouponMeasures bcmCreditRiskyDirty = null;
- if (null != cc && null != pricerParams) {
- double dblInitialNotional = notional (iValueDate);
- double dblInitialRecovery = cc.recovery (iValueDate);
- bcmCreditRiskyDirty = new org.drip.analytics.output.BondCouponMeasures
- (dblCreditRiskyDirtyDV01, dblCreditRiskyDirtyIndexCouponPV, dblCreditRiskyDirtyCouponPV,
- dblCreditRiskyDirtyCouponPV + dblCreditRiskyPrincipalPV + dblCreditRiskyParPV);
- dblDefaultExposure = (dblDefaultExposureNoRec = dblInitialNotional) * dblInitialRecovery;
- dblLossOnInstantaneousDefault = dblInitialNotional * (1. - dblInitialRecovery);
- }
- return new org.drip.analytics.output.BondWorkoutMeasures (bcmCreditRiskyDirty,
- bcmCreditRisklessDirty, dblCreditRiskyParPV, dblCreditRisklessParPV,
- dblCreditRiskyPrincipalPV, dblCreditRisklessPrincipalPV, dblRecoveryPV,
- dblExpectedRecovery, dblDefaultExposure, dblDefaultExposureNoRec,
- dblLossOnInstantaneousDefault, dblAccrued01, dblFirstCoupon, dblFirstIndexRate,
- dblCashPayDF);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> rvMeasures (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.param.valuation.WorkoutInfo wi,
- final double dblPrice,
- final java.lang.String strPrefix)
- {
- if (null == strPrefix) return null;
- org.drip.analytics.output.BondRVMeasures bmRV = standardMeasures (valParams, pricerParams, csqc, vcp,
- wi, dblPrice);
- return null == bmRV ? null : bmRV.toMap (strPrefix);
- }
- private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> fairMeasures (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp)
- {
- int iMaturityDate = maturityDate().julian();
- org.drip.analytics.output.BondWorkoutMeasures bwmFair = workoutMeasures (valParams, pricerParams,
- csqc, iMaturityDate, 1.);
- if (null == bwmFair) return null;
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapMeasures = bwmFair.toMap ("");
- org.drip.analytics.output.BondCouponMeasures bcm = bwmFair.creditRiskyCleanbcm();
- double dblCreditRiskyPV = null == bcm ? java.lang.Double.NaN : bcm.pv();
- double dblPrice = !org.drip.numerical.common.NumberUtil.IsValid (dblCreditRiskyPV) ?
- bwmFair.creditRisklessCleanbcm().pv() : dblCreditRiskyPV;
- try {
- org.drip.numerical.common.CollectionUtil.MergeWithMain (mapMeasures, rvMeasures (valParams,
- pricerParams, csqc, vcp, new org.drip.param.valuation.WorkoutInfo (iMaturityDate,
- yieldFromPrice (valParams, csqc, vcp, dblPrice / notional (valParams.valueDate())), 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY), dblPrice, ""));
- org.drip.numerical.common.CollectionUtil.MergeWithMain (mapMeasures,
- org.drip.numerical.common.CollectionUtil.PrefixKeys (mapMeasures, "Fair"));
- return mapMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> marketMeasures (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.param.valuation.WorkoutInfo wiMarket)
- {
- try {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapMeasures = rvMeasures
- (valParams, pricerParams, csqc, vcp, wiMarket, priceFromYield (valParams, csqc, vcp,
- wiMarket.date(), wiMarket.factor(), wiMarket.yield()), "");
- org.drip.numerical.common.CollectionUtil.MergeWithMain (mapMeasures,
- org.drip.numerical.common.CollectionUtil.PrefixKeys (mapMeasures, "Market"));
- return mapMeasures;
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private org.drip.analytics.cashflow.CompositePeriod currentPeriod (
- final int iDate)
- {
- try {
- return _stream.period (_stream.periodIndex (iDate));
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- private double priceFromDiscountCurve (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBump,
- final int iDiscountCurveType)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc ||!org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor)
- || !org.drip.numerical.common.NumberUtil.IsValid (dblBump))
- throw new java.lang.Exception ("BondComponent::priceFromDiscountCurve => Invalid Inputs");
- org.drip.state.discount.DiscountCurve dc = null;
- if (PRICE_OFF_OF_FUNDING_CURVE == iDiscountCurveType)
- dc = csqc.fundingState (fundingLabel());
- else if (PRICE_OFF_OF_TREASURY_CURVE == iDiscountCurveType)
- dc = csqc.govvieState (govvieLabel());
- /* else if (PRICE_OFF_OF_OVERNIGHT_CURVE == iDiscountCurveType)
- dfe = csqc.overnightState (overnightLabel()); */
- if (null == dc)
- throw new java.lang.Exception ("BondComponent::priceFromDiscountCurve => No Discount Curve");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::priceFromDiscountCurve => Val date " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iValueDate) + " greater than Work-out " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iWorkoutDate));
- double dblPV = 0.;
- boolean bTerminateCouponFlow = false;
- int iCashPayDate = java.lang.Integer.MIN_VALUE;
- double dblFlatForwardRate = java.lang.Double.NaN;
- double dblScalingNotional = null != _notionalSetting && _notionalSetting.priceOffOfOriginalNotional()
- ? 1. : notional (iValueDate);
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForward = null == vcp ? false : vcp.applyFlatForwardRate();
- if (0. != dblBump) {
- if (PRICE_OFF_OF_FUNDING_CURVE == iDiscountCurveType)
- dc = (org.drip.state.discount.MergedDiscountForwardCurve) dc.parallelShiftManifestMeasure
- ("SwapRate", dblBump);
- else if (PRICE_OFF_OF_TREASURY_CURVE == iDiscountCurveType)
- dc = (org.drip.state.govvie.GovvieCurve) dc.parallelShiftManifestMeasure ("Yield", dblBump);
- }
- if (null == dc)
- throw new java.lang.Exception
- ("BondComponent::priceFromDiscountCurve => Cannot shift Discount Curve");
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = period.endDate();
- int iNotionalEndDate = period.endDate();
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics pcm = couponMetrics (iAccrualEndDate,
- valParams, csqc);
- if (null == pcm)
- throw new java.lang.Exception ("BondComponent::priceFromDiscountCurve => No PCM");
- double dblPeriodAnnuity = dc.df (iPeriodPayDate) * pcm.cumulative();
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = pcm.rate();
- dblPV += period.accrualDCF (iAccrualEndDate) * dblPeriodAnnuity * (bApplyFlatForward ?
- dblFlatForwardRate : pcm.rate()) * couponFactor (iNotionalEndDate) * dblCouponNotional;
- dblPV += (dblPeriodStartNotional - dblPeriodEndNotional) * dblPeriodAnnuity;
- if (bTerminateCouponFlow) break;
- }
- try {
- iCashPayDate = null != _quoteConvention ? _quoteConvention.settleDate (valParams) :
- valParams.cashPayDate();
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- iCashPayDate = valParams.cashPayDate();
- }
- return ((dblPV + dblWorkoutFactor * dc.df (terminationAdjust (iWorkoutDate)) * notional
- (iWorkoutDate)) / dc.df (iCashPayDate) - accrued (iValueDate, csqc)) / dblScalingNotional;
- }
- /**
- * Constructor: Construct an empty bond object
- */
- public BondComponent()
- {
- }
- @Override public double[] secTreasurySpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- {
- if (null == valParams || null == csqc) return null;
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.param.definition.ProductQuote> mapTSYQuote
- = csqc.quoteMap();
- if (null == mapTSYQuote || 0 == mapTSYQuote.size()) return null;
- java.lang.String[] astrTreasuryBenchmark = null == _treasuryBenchmarks ? null :
- _treasuryBenchmarks.secondary();
- int iNumTreasuryBenchmark = null == astrTreasuryBenchmark ? 0 : astrTreasuryBenchmark.length;
- double[] adblSecTSYSpread = new double[iNumTreasuryBenchmark];
- if (0 == iNumTreasuryBenchmark) return null;
- for (int i = 0; i < iNumTreasuryBenchmark; ++i) {
- org.drip.param.definition.ProductQuote pqTSYBenchmark = mapTSYQuote.get
- (astrTreasuryBenchmark[i]);
- org.drip.param.definition.Quote q = null == pqTSYBenchmark ? null : pqTSYBenchmark.quote
- ("Yield");
- adblSecTSYSpread[i] = null == q ? java.lang.Double.NaN : q.value ("mid");
- }
- return adblSecTSYSpread;
- }
- @Override public double effectiveTreasuryBenchmarkYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::effectiveTreasuryBenchmarkYield => Bad val/mkt Params");
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::effectiveTreasuryBenchmarkYield => Invalid Work-out!");
- java.lang.String strTreasuryBenchmark = null != _treasuryBenchmarks ? _treasuryBenchmarks.primary() :
- null;
- int iValueDate = valParams.valueDate();
- int iWorkoutDate = wi.date();
- if (null == strTreasuryBenchmark || strTreasuryBenchmark.isEmpty())
- strTreasuryBenchmark = org.drip.analytics.support.Helper.BaseTsyBmk (iValueDate, iWorkoutDate);
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.param.definition.ProductQuote> mapTSYQuote
- = csqc.quoteMap();
- org.drip.param.definition.ProductQuote pqTSYBenchmark = null != mapTSYQuote &&
- mapTSYQuote.containsKey (strTreasuryBenchmark) && !strTreasuryBenchmark.isEmpty() ?
- mapTSYQuote.get (strTreasuryBenchmark) : null;
- org.drip.param.definition.Quote q = null != pqTSYBenchmark ? pqTSYBenchmark.quote ("Yield") : null;
- if (null != q) return q.value ("mid");
- org.drip.state.govvie.GovvieCurve gc = csqc.govvieState (govvieLabel());;
- return null == gc ? java.lang.Double.NaN : gc.yield (terminationAdjust (iWorkoutDate));
- }
- @Override public boolean setTreasuryBenchmark (
- final org.drip.product.params.TreasuryBenchmarks treasuryBenchmarks)
- {
- return null != (_treasuryBenchmarks = treasuryBenchmarks);
- }
- @Override public org.drip.product.params.TreasuryBenchmarks treasuryBenchmark()
- {
- return _treasuryBenchmarks;
- }
- @Override public boolean setIdentifierSet (
- final org.drip.product.params.IdentifierSet idParams)
- {
- return null != (_idParams = idParams);
- }
- @Override public org.drip.product.params.IdentifierSet identifierSet()
- {
- return _idParams;
- }
- @Override public boolean setCouponSetting (
- final org.drip.product.params.CouponSetting couponSetting)
- {
- return null != (_couponSetting = couponSetting);
- }
- @Override public org.drip.product.params.CouponSetting couponSetting()
- {
- return _couponSetting;
- }
- @Override public boolean setFloaterSetting (
- final org.drip.product.params.FloaterSetting fltParams)
- {
- return null == (_floaterSetting = fltParams);
- }
- @Override public org.drip.product.params.FloaterSetting floaterSetting()
- {
- return _floaterSetting;
- }
- @Override public boolean setMarketConvention (
- final org.drip.product.params.QuoteConvention quoteConvention)
- {
- return null == (_quoteConvention = quoteConvention);
- }
- @Override public org.drip.product.params.QuoteConvention marketConvention()
- {
- return _quoteConvention;
- }
- @Override public boolean setCreditSetting (
- final org.drip.product.params.CreditSetting creditSetting)
- {
- return null == (_creditSetting = creditSetting);
- }
- @Override public org.drip.product.params.CreditSetting creditSetting()
- {
- return _creditSetting;
- }
- @Override public boolean setTerminationSetting (
- final org.drip.product.params.TerminationSetting terminationSetting)
- {
- return null == (_terminationSetting = terminationSetting);
- }
- @Override public org.drip.product.params.TerminationSetting terminationSetting()
- {
- return _terminationSetting;
- }
- @Override public boolean setStream (
- final org.drip.product.params.BondStream stream)
- {
- return null != (_stream = stream);
- }
- @Override public org.drip.product.params.BondStream stream()
- {
- return _stream;
- }
- @Override public boolean setNotionalSetting (
- final org.drip.product.params.NotionalSetting notionalSetting)
- {
- return null == (_notionalSetting = notionalSetting);
- }
- @Override public org.drip.product.params.NotionalSetting notionalSetting()
- {
- return _notionalSetting;
- }
- @Override public java.lang.String primaryCode()
- {
- return null == _idParams ? null : "BOND." + _idParams.id();
- }
- @Override public void setPrimaryCode (
- final java.lang.String strCode)
- {
- // _strCode = strCode;
- }
- @Override public java.lang.String[] secondaryCode()
- {
- return new java.lang.String[] {_idParams.id()};
- }
- @Override public java.lang.String isin()
- {
- return null == _idParams ? null : _idParams.isin();
- }
- @Override public java.lang.String cusip()
- {
- return null == _idParams ? null : _idParams.cusip();
- }
- @Override public java.lang.String name()
- {
- return null == _idParams ? null : _idParams.id();
- }
- @Override public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String> couponCurrency()
- {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String> mapCouponCurrency = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>();
- mapCouponCurrency.put (name(), _stream.couponCurrency());
- return mapCouponCurrency;
- }
- @Override public java.lang.String payCurrency()
- {
- return _stream.couponCurrency();
- }
- @Override public java.lang.String principalCurrency()
- {
- return _notionalSetting.denominationCurrency();
- }
- @Override public double notional (
- final int iDate)
- throws java.lang.Exception
- {
- if (null == _notionalSetting || null == _notionalSetting.outstandingFactorSchedule())
- throw new java.lang.Exception ("BondComponent::notional => Bad state/inputs");
- return _notionalSetting.outstandingFactorSchedule().y (iDate);
- }
- @Override public double notional (
- final int iStartDate,
- final int iEndDate)
- throws java.lang.Exception
- {
- if (null == _notionalSetting || null == _notionalSetting.outstandingFactorSchedule())
- throw new java.lang.Exception ("BondComponent::notional => Bad state/inputs");
- return _notionalSetting.outstandingFactorSchedule().y (iStartDate, iEndDate);
- }
- @Override public double initialNotional()
- throws java.lang.Exception
- {
- if (null == _notionalSetting)
- throw new java.lang.Exception ("BondComponent::initialNotional => Bad state/inputs");
- return _notionalSetting.notionalAmount();
- }
- public double couponFactor (
- final int iDate)
- throws java.lang.Exception
- {
- if (null == _couponSetting) return 1.;
- org.drip.numerical.common.Array2D fsCoupon = _couponSetting.factorSchedule();
- return null == fsCoupon ? 1. : fsCoupon.y (iDate);
- }
- @Override public double recovery (
- final int iDate,
- final org.drip.state.credit.CreditCurve cc)
- throws java.lang.Exception
- {
- if (null == cc) throw new java.lang.Exception ("BondComponent::recovery: Bad state/inputs");
- return _creditSetting.useCurveRecovery() ? cc.recovery (iDate) : _creditSetting.recovery();
- }
- @Override public double recovery (
- final int iStartDate,
- final int iEndDate,
- final org.drip.state.credit.CreditCurve cc)
- throws java.lang.Exception
- {
- if (null == cc) throw new java.lang.Exception ("BondComponent::recovery: Bad state/inputs");
- return _creditSetting.useCurveRecovery() ? cc.effectiveRecovery (iStartDate, iEndDate) :
- _creditSetting.recovery();
- }
- @Override public org.drip.product.params.CreditSetting creditValuationParams()
- {
- return _creditSetting;
- }
- @Override public org.drip.analytics.output.CompositePeriodCouponMetrics couponMetrics (
- final int iAccrualEndDate,
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- {
- org.drip.analytics.cashflow.CompositePeriod cp = currentPeriod (iAccrualEndDate);
- if (null == cp) return null;
- java.util.List<org.drip.analytics.output.UnitPeriodMetrics> lsUPM = new
- java.util.ArrayList<org.drip.analytics.output.UnitPeriodMetrics>();
- try {
- lsUPM.add (new org.drip.analytics.output.UnitPeriodMetrics (cp.startDate(), cp.endDate(),
- cp.couponDCF(), cp.couponMetrics (valParams.valueDate(), csqc).rate(), new
- org.drip.analytics.output.ConvexityAdjustment()));
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- return org.drip.analytics.output.CompositePeriodCouponMetrics.Create (lsUPM);
- }
- @Override public int freq()
- {
- return couponPeriods().get (0).freq();
- }
- @Override public org.drip.state.identifier.EntityCDSLabel creditLabel()
- {
- if (null == _creditSetting) return null;
- java.lang.String strCreditCurveName = _creditSetting.creditCurveName();
- return null == strCreditCurveName || strCreditCurveName.isEmpty() ? null :
- org.drip.state.identifier.EntityCDSLabel.Standard (strCreditCurveName, currency());
- }
- @Override public
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.ForwardLabel>
- forwardLabel()
- {
- if (null == _floaterSetting) return null;
- org.drip.state.identifier.FloaterLabel floaterLabel = _floaterSetting.fri();
- if (!(floaterLabel instanceof org.drip.state.identifier.ForwardLabel)) return null;
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.ForwardLabel>
- mapForwardLabel = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.ForwardLabel>();
- mapForwardLabel.put (
- name(),
- (org.drip.state.identifier.ForwardLabel) floaterLabel
- );
- return mapForwardLabel;
- }
- @Override public
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.OTCFixFloatLabel>
- otcFixFloatLabel()
- {
- if (null == _floaterSetting) return null;
- org.drip.state.identifier.FloaterLabel floaterLabel = _floaterSetting.fri();
- if (!(floaterLabel instanceof org.drip.state.identifier.OTCFixFloatLabel)) return null;
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.OTCFixFloatLabel>
- mapOTCFixFloatLabel = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.OTCFixFloatLabel>();
- mapOTCFixFloatLabel.put (
- name(),
- (org.drip.state.identifier.OTCFixFloatLabel) floaterLabel
- );
- return mapOTCFixFloatLabel;
- }
- @Override public org.drip.state.identifier.FundingLabel fundingLabel()
- {
- return org.drip.state.identifier.FundingLabel.Standard (payCurrency());
- }
- @Override public org.drip.state.identifier.GovvieLabel govvieLabel()
- {
- return org.drip.state.identifier.GovvieLabel.Standard
- (org.drip.market.issue.TreasurySettingContainer.CurrencyBenchmarkCode (payCurrency()));
- }
- @Override public org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.FXLabel>
- fxLabel()
- {
- return null;
- }
- @Override public
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.state.identifier.VolatilityLabel>
- volatilityLabel()
- {
- return null;
- }
- @Override public org.drip.analytics.date.JulianDate effectiveDate()
- {
- return _stream.effective();
- }
- @Override public org.drip.analytics.date.JulianDate maturityDate()
- {
- return _stream.maturity();
- }
- @Override public org.drip.analytics.date.JulianDate maturityPayDate()
- {
- return new org.drip.analytics.date.JulianDate (terminationAdjust (maturityDate().julian()));
- }
- @Override public org.drip.analytics.date.JulianDate firstCouponDate()
- {
- return new org.drip.analytics.date.JulianDate (couponPeriods().get (0).endDate());
- }
- @Override public java.util.List<org.drip.analytics.cashflow.CompositePeriod> couponPeriods()
- {
- return _stream.periods();
- }
- @Override public org.drip.param.valuation.CashSettleParams cashSettleParams()
- {
- return null == _quoteConvention ? null : _quoteConvention.cashSettleParams();
- }
- @Override public java.util.List<org.drip.analytics.cashflow.LossQuadratureMetrics> lossFlow (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- {
- if (null == valParams || null == pricerParams || null == csqc) return null;
- java.util.List<org.drip.analytics.cashflow.LossQuadratureMetrics> sLP = new
- java.util.ArrayList<org.drip.analytics.cashflow.LossQuadratureMetrics>();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- if (null == period) continue;
- java.util.List<org.drip.analytics.cashflow.LossQuadratureMetrics> sLPSub = period.lossMetrics
- (this, valParams, pricerParams, period.endDate(), csqc);
- if (null != sLPSub) sLP.addAll (sLPSub);
- }
- return sLP;
- }
- @Override public java.util.List<org.drip.analytics.cashflow.LossQuadratureMetrics> lossFlowFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- {
- if (null == valParams || null == pricerParams || null == csqc ||
- !org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- return null;
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi) return null;
- int iValueDate = valParams.valueDate();
- int iWorkoutDate = wi.date();
- java.util.List<org.drip.analytics.cashflow.LossQuadratureMetrics> sLP = new
- java.util.ArrayList<org.drip.analytics.cashflow.LossQuadratureMetrics>();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- if (null == period) continue;
- int iPeriodEndDate = period.endDate();
- if (null == period || iPeriodEndDate < iValueDate) continue;
- if (period.startDate() > iWorkoutDate) break;
- java.util.List<org.drip.analytics.cashflow.LossQuadratureMetrics> sLPSub = period.lossMetrics
- (this, valParams, pricerParams, iPeriodEndDate, csqc);
- if (null != sLPSub) sLP.addAll (sLPSub);
- }
- return sLP;
- }
- @Override public boolean isFloater()
- {
- return null == _floaterSetting ? false : true;
- }
- @Override public java.lang.String rateIndex()
- {
- return null == _floaterSetting ? "" : _floaterSetting.fri().fullyQualifiedName();
- }
- @Override public double currentCoupon()
- {
- return null == _floaterSetting ? java.lang.Double.NaN : _floaterSetting.currentFullCoupon();
- }
- @Override public double floatSpread()
- {
- return null == _floaterSetting ? java.lang.Double.NaN : _floaterSetting.spread();
- }
- @Override public java.lang.String ticker()
- {
- return null == _idParams ? null : _idParams.ticker();
- }
- @Override public void setEmbeddedCallSchedule (
- final org.drip.product.params.EmbeddedOptionSchedule eos)
- {
- if (null == eos || eos.isPut()) return;
- _eosCall = new org.drip.product.params.EmbeddedOptionSchedule (eos);
- }
- @Override public void setEmbeddedPutSchedule (
- final org.drip.product.params.EmbeddedOptionSchedule eos)
- {
- if (null == eos || !eos.isPut()) return;
- _eosPut = new org.drip.product.params.EmbeddedOptionSchedule (eos);
- }
- @Override public boolean callable()
- {
- return null != _eosCall;
- }
- @Override public boolean putable()
- {
- return null != _eosPut;
- }
- @Override public boolean sinkable()
- {
- return null == _notionalSetting ? false : true;
- }
- @Override public boolean variableCoupon()
- {
- return null == _couponSetting || null == _couponSetting.couponType() || !"variable".equalsIgnoreCase
- (_couponSetting.couponType()) ? false : true;
- }
- @Override public boolean exercised()
- {
- return null == _terminationSetting ? false : _terminationSetting.exercised();
- }
- @Override public boolean defaulted()
- {
- return null == _terminationSetting ? false : _terminationSetting.defaulted();
- }
- @Override public boolean perpetual()
- {
- return null == _terminationSetting ? false : _terminationSetting.perpetual();
- }
- @Override public boolean tradeable (
- final org.drip.param.valuation.ValuationParams valParams)
- throws java.lang.Exception
- {
- if (null == valParams) throw new java.lang.Exception ("BondComponent::tradeable => invalid Inputs");
- return !_terminationSetting.exercised() && !_terminationSetting.defaulted() && valParams.valueDate()
- < maturityDate().julian();
- }
- @Override public org.drip.product.params.EmbeddedOptionSchedule callSchedule()
- {
- return _eosCall;
- }
- @Override public org.drip.product.params.EmbeddedOptionSchedule putSchedule()
- {
- return _eosPut;
- }
- @Override public java.lang.String couponType()
- {
- return null == _couponSetting ? "" : _couponSetting.couponType();
- }
- @Override public java.lang.String couponDC()
- {
- return null == _stream ? "" : _stream.couponDC();
- }
- @Override public java.lang.String accrualDC()
- {
- return null == _stream ? "" : _stream.accrualDC();
- }
- @Override public java.lang.String maturityType()
- {
- return null == _stream ? "" : maturityType();
- }
- @Override public org.drip.analytics.date.JulianDate finalMaturity()
- {
- return null == _stream ? null : new org.drip.analytics.date.JulianDate (_stream.finalMaturityDate());
- }
- @Override public java.lang.String calculationType()
- {
- return null == _quoteConvention ? "" : _quoteConvention.calculationType();
- }
- @Override public double redemptionValue()
- {
- return null == _quoteConvention ? java.lang.Double.NaN : _quoteConvention.redemptionValue();
- }
- @Override public java.lang.String currency()
- {
- return _stream.couponCurrency();
- }
- @Override public java.lang.String redemptionCurrency()
- {
- return _notionalSetting.denominationCurrency();
- }
- @Override public boolean inFirstCouponPeriod (
- final int iDate)
- throws java.lang.Exception
- {
- return _stream.firstPeriod().contains (iDate);
- }
- @Override public boolean inLastCouponPeriod (
- final int iDate)
- throws java.lang.Exception
- {
- return _stream.lastPeriod().contains (iDate);
- }
- @Override public java.lang.String floatCouponConvention()
- {
- return null == _floaterSetting ? null : _floaterSetting.dayCount();
- }
- @Override public org.drip.analytics.date.JulianDate periodFixingDate (
- final int iValueDate)
- {
- if (null == _floaterSetting || iValueDate >= maturityDate().julian()) return null;
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- if (period.payDate() < iValueDate) continue;
- org.drip.analytics.cashflow.ComposableUnitPeriod cup = period.periods().get (0);
- if (!(cup instanceof org.drip.analytics.cashflow.ComposableUnitFloatingPeriod)) continue;
- try {
- return new org.drip.analytics.date.JulianDate
- (((org.drip.analytics.cashflow.ComposableUnitFloatingPeriod)
- (cup)).referenceIndexPeriod().fixingDate());
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- return null;
- }
- @Override public org.drip.analytics.date.JulianDate previousCouponDate (
- final org.drip.analytics.date.JulianDate dt)
- {
- if (null == dt || dt.julian() > maturityDate().julian()) return null;
- try {
- int iIndex = _stream.periodIndex (dt.julian());
- if (0 == iIndex) return new org.drip.analytics.date.JulianDate (_stream.period (0).startDate());
-
- org.drip.analytics.cashflow.CompositePeriod period = _stream.period (iIndex - 1);
- return null == period ? null : new org.drip.analytics.date.JulianDate (period.payDate());
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- @Override public double previousCouponRate (
- final org.drip.analytics.date.JulianDate dt,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- if (null == dt)
- throw new java.lang.Exception ("BondComponent::previousCouponRate => Invalid Inputs");
- org.drip.analytics.cashflow.CompositePeriod period = _stream.period (_stream.periodIndex
- (dt.julian()) - 1);
- if (null == period)
- throw new java.lang.Exception
- ("BondComponent::previousCouponRate => Cannot find previous period!");
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (period.endDate(), new
- org.drip.param.valuation.ValuationParams (dt, dt, ""), csqc);
- if (null == cpcm)
- throw new java.lang.Exception
- ("BondComponent::previousCouponRate => Invalid previous period metrics!");
- return cpcm.rate();
- }
- @Override public org.drip.analytics.date.JulianDate currentCouponDate (
- final org.drip.analytics.date.JulianDate dt)
- {
- if (null == dt || dt.julian() > maturityDate().julian()) return null;
- try {
- org.drip.analytics.cashflow.CompositePeriod period = _stream.period (_stream.periodIndex
- (dt.julian()));
- return null == period ? null : new org.drip.analytics.date.JulianDate (period.payDate());
- } catch (java.lang.Exception e) {
- }
- return null;
- }
- @Override public org.drip.analytics.date.JulianDate nextCouponDate (
- final org.drip.analytics.date.JulianDate dt)
- {
- if (null == dt || dt.julian() > maturityDate().julian()) return null;
- try {
- org.drip.analytics.cashflow.CompositePeriod period = _stream.period (_stream.periodIndex
- (dt.julian()) + 1);
- return null == period ? null : new org.drip.analytics.date.JulianDate (period.payDate());
- } catch (java.lang.Exception e) {
- }
- return null;
- }
- @Override public org.drip.analytics.output.ExerciseInfo nextValidExerciseDateOfType (
- final org.drip.analytics.date.JulianDate dt,
- final boolean bPut)
- {
- if (null == dt || (bPut && null == _eosPut) || (!bPut && null == _eosCall)) return null;
- org.drip.product.params.EmbeddedOptionSchedule eos = bPut ? _eosPut : _eosCall;
- int[] aiEOSExerciseDates = eos.dates();
- if (null == eos || null == aiEOSExerciseDates) return null;
- int iNumExerciseDates = aiEOSExerciseDates.length;
- if (0 == iNumExerciseDates) return null;
- for (int i = 0; i < iNumExerciseDates; ++i) {
- if (aiEOSExerciseDates[i] - dt.julian() < eos.exerciseNoticePeriod())
- continue;
- try {
- return new org.drip.analytics.output.ExerciseInfo (aiEOSExerciseDates[i], eos.factor (i),
- bPut ? org.drip.param.valuation.WorkoutInfo.WO_TYPE_PUT :
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_CALL);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- return null;
- }
- }
- return null;
- }
- @Override public org.drip.analytics.output.ExerciseInfo nextValidExerciseInfo (
- final org.drip.analytics.date.JulianDate dt)
- {
- if (null == dt) return null;
- org.drip.analytics.output.ExerciseInfo neiNextCall = nextValidExerciseDateOfType (dt, false);
- org.drip.analytics.output.ExerciseInfo neiNextPut = nextValidExerciseDateOfType (dt, true);
- if (null == neiNextCall && null == neiNextPut) {
- try {
- return new org.drip.analytics.output.ExerciseInfo (maturityDate().julian(), 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- return null;
- }
- }
- if (null != neiNextCall && null == neiNextPut) return neiNextCall;
- if (null == neiNextCall && null != neiNextPut) return neiNextPut;
- return neiNextCall.date() < neiNextPut.date() ? neiNextCall : neiNextPut;
- }
- @Override public double currentCouponRate (
- final org.drip.analytics.date.JulianDate dt,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- if (null == dt || null == csqc)
- throw new java.lang.Exception ("BondComponent::currentCouponRate => Null val/mkt params!");
- if (null != _floaterSetting) {
- double dblCurrentFullCoupon = _floaterSetting.currentFullCoupon();
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblCurrentFullCoupon))
- return dblCurrentFullCoupon;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics pcm = couponMetrics (dt.julian(), new
- org.drip.param.valuation.ValuationParams (dt, dt, ""), csqc);
- if (null == pcm) throw new java.lang.Exception ("BondComponent::currentCouponRate => Null PCM!");
- return pcm.rate();
- }
- @Override public double nextCouponRate (
- final org.drip.analytics.date.JulianDate dt,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- if (null == dt)
- throw new java.lang.Exception ("BondComponent::nextCouponRate => Null val/mkt params!");
- int iIndex = _stream.periodIndex (dt.julian());
- org.drip.analytics.cashflow.CompositePeriod period = _stream.period (iIndex + 1);
- if (null == period)
- throw new java.lang.Exception ("BondComponent::nextCouponRate => Cannot find next period!");
- org.drip.analytics.output.CompositePeriodCouponMetrics pcm = couponMetrics (period.endDate(), new
- org.drip.param.valuation.ValuationParams (dt, dt, ""), csqc);
- if (null == pcm) throw new java.lang.Exception ("BondComponent::nextCouponRate => Null PCM!");
- return pcm.rate();
- }
- @Override public double accrued (
- final int iDate,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- org.drip.analytics.date.JulianDate dt = new org.drip.analytics.date.JulianDate (iDate);
- if (iDate >= maturityDate().julian())
- throw new java.lang.Exception ("BondComponent::accrued => Val date " + dt +
- " greater than maturity " + maturityDate());
- org.drip.param.valuation.ValuationParams valParams = new org.drip.param.valuation.ValuationParams
- (dt, dt, "");
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iEndDate = period.endDate();
- int iStartDate = period.startDate();
- if (iStartDate < iDate && iEndDate >= iDate) {
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iEndDate,
- valParams, csqc);
- if (null == cpcm) throw new java.lang.Exception ("BondComponent::accrued => No PCM");
- double dblCoupon = cpcm.rate();
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblCoupon))
- throw new java.lang.Exception ("BondComponent::accrued => Invalid Coupon For " + dt);
- return period.accrualDCF (iDate) * dblCoupon * notional (iStartDate) * couponFactor
- (iEndDate);
- }
- }
- return 0.;
- }
- @Override public int weightedAverageMaturityDate (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::weightedAverageMaturityDate => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::weightedAverageMaturityDate => Val date " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iValueDate) + " greater than Work-out " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iWorkoutDate));
- int iPeriodEndDate = 0;
- double dblTotalCashflow = 0.;
- boolean bTerminateCouponFlow = false;
- double dblTimeWeightedTotalCashflow = 0.;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForward = null == vcp ? false : vcp.applyFlatForwardRate();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iNotionalEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = iNotionalEndDate;
- int iAccrualStartDate = iPeriodStartDate > iValueDate ? iPeriodStartDate : iValueDate;
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iAccrualEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::weightedAverageMaturityDate => No CPCM");
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- double dblPeriodTimeWidth = period.accrualDCF (iAccrualEndDate) - period.accrualDCF
- (iAccrualStartDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodCashflow = dblPeriodTimeWidth * (bApplyFlatForward ? dblFlatForwardRate :
- cpcm.rate()) * couponFactor (iPeriodEndDate) * dblCouponNotional + dblPeriodStartNotional -
- dblPeriodEndNotional;
- dblTotalCashflow += dblPeriodCashflow;
- iPeriodEndDate += (iAccrualEndDate - iAccrualStartDate);
- dblTimeWeightedTotalCashflow += iPeriodEndDate * dblPeriodCashflow;
- if (bTerminateCouponFlow) break;
- }
- double dblTerminalCashflow = dblWorkoutFactor * notional (iWorkoutDate);
- dblTotalCashflow += dblTerminalCashflow;
- dblTimeWeightedTotalCashflow += iPeriodEndDate * dblTerminalCashflow;
- return (int) (dblTimeWeightedTotalCashflow / dblTotalCashflow);
- }
- @Override public int weightedAverageMaturityDate (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- return weightedAverageMaturityDate (valParams, csqc, maturityDate().julian(), 1.);
- }
- @Override public double weightedAverageLife (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::weightedAverageLife => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::weightedAverageLife => Val date " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iValueDate) + " greater than Work-out " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iWorkoutDate));
- double dblTotalCashflow = 0.;
- double dblPeriodEndTime = 0.;
- boolean bTerminateCouponFlow = false;
- double dblTimeWeightedTotalCashflow = 0.;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForward = null == vcp ? false : vcp.applyFlatForwardRate();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iNotionalEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = iNotionalEndDate;
- int iAccrualStartDate = iPeriodStartDate > iValueDate ? iPeriodStartDate : iValueDate;
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iAccrualEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::weightedAverageLife => No CPCM");
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- double dblPeriodTimeWidth = period.accrualDCF (iAccrualEndDate) - period.accrualDCF
- (iAccrualStartDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodCashflow = dblPeriodTimeWidth * (bApplyFlatForward ? dblFlatForwardRate :
- cpcm.rate()) * couponFactor (iNotionalEndDate) * dblCouponNotional + dblPeriodStartNotional -
- dblPeriodEndNotional;
- dblTotalCashflow += dblPeriodCashflow;
- dblPeriodEndTime += dblPeriodTimeWidth;
- dblTimeWeightedTotalCashflow += dblPeriodEndTime * dblPeriodCashflow;
- if (bTerminateCouponFlow) break;
- }
- double dblTerminalCashflow = dblWorkoutFactor * notional (iWorkoutDate);
- dblTotalCashflow += dblTerminalCashflow;
- dblTimeWeightedTotalCashflow += dblPeriodEndTime * dblTerminalCashflow;
- return dblTimeWeightedTotalCashflow / dblTotalCashflow;
- }
- @Override public double weightedAverageLife (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- return weightedAverageLife (valParams, csqc, maturityDate().julian(), 1.);
- }
- @Override public double weightedAverageLifePrincipalOnly (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception
- ("BondComponent::weightedAverageLifePrincipalOnly => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifePrincipalOnly => Val date " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iValueDate) + " greater than Work-out " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iWorkoutDate));
- double dblTotalCashflow = 0.;
- double dblPeriodEndTime = 0.;
- boolean bTerminateCouponFlow = false;
- double dblTimeWeightedTotalCashflow = 0.;
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iNotionalEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = iNotionalEndDate;
- int iAccrualStartDate = iPeriodStartDate > iValueDate ? iPeriodStartDate : iValueDate;
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblPeriodTimeWidth = period.accrualDCF (iAccrualEndDate) - period.accrualDCF
- (iAccrualStartDate);
- double dblPeriodCashflow = dblPeriodStartNotional - dblPeriodEndNotional;
- dblTimeWeightedTotalCashflow += dblPeriodEndTime * dblPeriodCashflow;
- dblTotalCashflow += dblPeriodCashflow;
- dblPeriodEndTime += dblPeriodTimeWidth;
- if (bTerminateCouponFlow) break;
- }
- double dblTerminalCashflow = dblWorkoutFactor * notional (iWorkoutDate);
- dblTotalCashflow += dblTerminalCashflow;
- dblTimeWeightedTotalCashflow += dblPeriodEndTime * dblTerminalCashflow;
- return dblTimeWeightedTotalCashflow / dblTotalCashflow;
- }
- @Override public double weightedAverageLifePrincipalOnly (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- return weightedAverageLifePrincipalOnly (valParams, csqc, maturityDate().julian(), 1.);
- }
- @Override public double weightedAverageLifeCouponOnly (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeCouponOnly => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeCouponOnly => Val date " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iValueDate) + " greater than Work-out " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iWorkoutDate));
- double dblTotalCashflow = 0.;
- double dblPeriodEndTime = 0.;
- boolean bTerminateCouponFlow = false;
- double dblTimeWeightedTotalCashflow = 0.;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForward = null == vcp ? false : vcp.applyFlatForwardRate();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iNotionalEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = iNotionalEndDate;
- int iAccrualStartDate = iPeriodStartDate > iValueDate ? iPeriodStartDate : iValueDate;
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iAccrualEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeCouponOnly => No CPCM");
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- double dblPeriodTimeWidth = period.accrualDCF (iAccrualEndDate) - period.accrualDCF
- (iAccrualStartDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodCashflow = dblPeriodTimeWidth * (bApplyFlatForward ? dblFlatForwardRate :
- cpcm.rate()) * couponFactor (iNotionalEndDate) * dblCouponNotional;
- dblTotalCashflow += dblPeriodCashflow;
- dblPeriodEndTime += dblPeriodTimeWidth;
- dblTimeWeightedTotalCashflow += dblPeriodEndTime * dblPeriodCashflow;
- if (bTerminateCouponFlow) break;
- }
- return dblTimeWeightedTotalCashflow / dblTotalCashflow;
- }
- @Override public double weightedAverageLifeCouponOnly (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- return weightedAverageLifeCouponOnly (valParams, csqc, maturityDate().julian(), 1.);
- }
- @Override public double weightedAverageLifeLossOnly (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeLossOnly => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- org.drip.state.credit.CreditCurve cc = csqc.creditState (creditLabel());
- if (iValueDate >= iWorkoutDate || null == cc)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeLossOnly => Invalid Inputs");
- double dblPeriodEndTime = 0.;
- double dblTotalLossCashflow = 0.;
- boolean bTerminateCouponFlow = false;
- double dblTimeWeightedTotalLossCashflow = 0.;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForward = null == vcp ? false : vcp.applyFlatForwardRate();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iNotionalEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = iNotionalEndDate;
- int iAccrualStartDate = iPeriodStartDate > iValueDate ? iPeriodStartDate : iValueDate;
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iAccrualEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeLossOnly => No CPCM");
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- double dblPeriodTimeWidth = period.accrualDCF (iAccrualEndDate) - period.accrualDCF
- (iAccrualStartDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodLossCashflow = (dblPeriodTimeWidth * (bApplyFlatForward ? dblFlatForwardRate :
- cpcm.rate()) * couponFactor (iNotionalEndDate) * dblCouponNotional + dblPeriodStartNotional -
- dblPeriodEndNotional) * cc.survival (iPeriodPayDate) * (1. - cc.effectiveRecovery
- (iPeriodStartDate, period.endDate()));
- dblPeriodEndTime += dblPeriodTimeWidth;
- dblTotalLossCashflow += dblPeriodLossCashflow;
- dblTimeWeightedTotalLossCashflow += dblPeriodEndTime * dblPeriodLossCashflow;
- if (bTerminateCouponFlow) break;
- }
- double dblTerminalLossCashflow = dblWorkoutFactor * notional (iWorkoutDate) * cc.survival
- (iWorkoutDate) * (1. - cc.recovery (iWorkoutDate));
- dblTotalLossCashflow += dblTerminalLossCashflow;
- dblTimeWeightedTotalLossCashflow += dblPeriodEndTime * dblTerminalLossCashflow;
- return dblTimeWeightedTotalLossCashflow / dblTotalLossCashflow;
- }
- @Override public double weightedAverageLifeLossOnly (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- return weightedAverageLifeLossOnly (valParams, csqc, maturityDate().julian(), 1.);
- }
- @Override public double weightedAverageLifeCredit (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeCredit => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- org.drip.state.credit.CreditCurve cc = csqc.creditState (creditLabel());
- if (iValueDate >= iWorkoutDate || null == cc)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeCredit => Invalid Inputs");
- double dblPeriodEndTime = 0.;
- double dblTotalLossCashflow = 0.;
- boolean bTerminateCouponFlow = false;
- double dblTimeWeightedTotalLossCashflow = 0.;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForward = null == vcp ? false : vcp.applyFlatForwardRate();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iNotionalEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- int iAccrualEndDate = iNotionalEndDate;
- int iAccrualStartDate = iPeriodStartDate > iValueDate ? iPeriodStartDate : iValueDate;
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iAccrualEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::weightedAverageLifeCredit => No CPCM");
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- double dblPeriodTimeWidth = period.accrualDCF (iAccrualEndDate) - period.accrualDCF
- (iAccrualStartDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodSurvival = cc.survival (iPeriodPayDate);
- double dblPeriodLossCashflow = (dblPeriodTimeWidth * (bApplyFlatForward ? dblFlatForwardRate :
- cpcm.rate()) * couponFactor (iNotionalEndDate) * dblCouponNotional + dblPeriodStartNotional -
- dblPeriodEndNotional) * (dblPeriodSurvival * (1. - cc.effectiveRecovery
- (iPeriodStartDate, iNotionalEndDate)) + 1. - dblPeriodSurvival);
- dblPeriodEndTime += dblPeriodTimeWidth;
- dblTotalLossCashflow += dblPeriodLossCashflow;
- dblTimeWeightedTotalLossCashflow += dblPeriodEndTime * dblPeriodLossCashflow;
- if (bTerminateCouponFlow) break;
- }
- double dblTerminalSurvival = cc.survival (iWorkoutDate);
- double dblTerminalLossCashflow = dblWorkoutFactor * notional (iWorkoutDate) * (dblTerminalSurvival *
- (1. - cc.recovery (iWorkoutDate)) + 1. - dblTerminalSurvival);
- dblTotalLossCashflow += dblTerminalLossCashflow;
- dblTimeWeightedTotalLossCashflow += dblPeriodEndTime * dblTerminalLossCashflow;
- return dblTimeWeightedTotalLossCashflow / dblTotalLossCashflow;
- }
- @Override public double weightedAverageLifeCredit (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc)
- throws java.lang.Exception
- {
- return weightedAverageLifeCredit (valParams, csqc, maturityDate().julian(), 1.);
- }
- @Override public double priceFromZeroCurve (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iZeroCurveBaseDC,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBump)
- throws java.lang.Exception
- {
- if (null == valParams)
- throw new java.lang.Exception ("BondComponent::priceFromZeroCurve => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid
- (dblWorkoutFactor) || !org.drip.numerical.common.NumberUtil.IsValid (dblBump))
- throw new java.lang.Exception ("BondComponent::priceFromZeroCurve => Invalid Inputs " + dblBump);
- double dblPV = 0.;
- boolean bTerminateCouponFlow = false;
- boolean bApplyFlatForwardRate = false;
- org.drip.state.discount.ZeroCurve zc = null;
- int iCashPayDate = java.lang.Integer.MIN_VALUE;
- double dblFlatForwardRate = java.lang.Double.NaN;
- double dblScalingNotional = null != _notionalSetting && _notionalSetting.priceOffOfOriginalNotional()
- ? 1. : notional (iValueDate);
- if (null != vcp)
- bApplyFlatForwardRate = vcp.applyFlatForwardRate();
- else {
- org.drip.param.valuation.ValuationCustomizationParams vcpQuote = null == _quoteConvention ? null
- : _quoteConvention.valuationCustomizationParams();
- if (null != vcpQuote) bApplyFlatForwardRate = vcpQuote.applyFlatForwardRate();
- }
- org.drip.state.discount.DiscountCurve dcBase = ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE ==
- iZeroCurveBaseDC ? csqc.fundingState (fundingLabel()) : csqc.govvieState (govvieLabel());
- if (null == dcBase)
- throw new java.lang.Exception ("BondComponent::priceFromZeroCurve => Invalid Discount Curve");
- try {
- iCashPayDate = null != _quoteConvention ? _quoteConvention.settleDate (valParams) :
- valParams.cashPayDate();
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- iCashPayDate = valParams.cashPayDate();
- }
- java.util.List<org.drip.analytics.cashflow.CompositePeriod> lsCompositePeriod = couponPeriods();
- try {
- zc = org.drip.state.curve.DerivedZeroRate.FromBaseCurve (freq(), couponDC(), currency(),
- _stream.couponEOMAdjustment(), lsCompositePeriod, terminationAdjust (iWorkoutDate),
- iValueDate, iCashPayDate, dcBase, dblBump, null == vcp ? (null == _quoteConvention ? null
- : _quoteConvention.valuationCustomizationParams()) : vcp, new
- org.drip.spline.params.SegmentCustomBuilderControl
- (org.drip.spline.stretch.MultiSegmentSequenceBuilder.BASIS_SPLINE_POLYNOMIAL,
- new org.drip.spline.basis.PolynomialFunctionSetParams (2),
- org.drip.spline.params.SegmentInelasticDesignControl.Create (0, 2),
- new org.drip.spline.params.ResponseScalingShapeControl (true, new
- org.drip.function.r1tor1.QuadraticRationalShapeControl (0.)),
- null));
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- if (null == zc)
- throw new java.lang.Exception ("BondComponent::priceFromZeroCurve => Cannot create shifted ZC");
- for (org.drip.analytics.cashflow.CompositePeriod period : lsCompositePeriod) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iPeriodStartDate = period.startDate();
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- int iAccrualEndDate = period.endDate();
- int iNotionalEndDate = iAccrualEndDate;
- double dblCouponNotional = dblPeriodStartNotional;
- double dblPeriodEndNotional = notional (iNotionalEndDate);
- if (iAccrualEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iAccrualEndDate = iWorkoutDate;
- iNotionalEndDate = iWorkoutDate;
- }
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START ==
- _notionalSetting.periodAmortizationMode())
- dblCouponNotional = dblPeriodStartNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END ==
- _notionalSetting.periodAmortizationMode())
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- _notionalSetting.periodAmortizationMode())
- dblCouponNotional = notional (iPeriodStartDate, iNotionalEndDate);
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iValueDate,
- valParams, csqc);
- if (null == cpcm) throw new java.lang.Exception ("BondComponent::priceFromZeroCurve => No PCM");
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- dblPV += (period.accrualDCF (iAccrualEndDate) * (bApplyFlatForwardRate ? dblFlatForwardRate :
- cpcm.rate()) * couponFactor (iNotionalEndDate) * dblCouponNotional + dblPeriodStartNotional -
- dblPeriodEndNotional) * zc.df (iPeriodPayDate);
- if (bTerminateCouponFlow) break;
- }
- return ((dblPV + dblWorkoutFactor * zc.df (terminationAdjust (iWorkoutDate)) * notional
- (iWorkoutDate)) / zc.df (iCashPayDate) - accrued (iValueDate, csqc)) / dblScalingNotional;
- }
- @Override public double priceFromFundingCurve (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBump)
- throws java.lang.Exception
- {
- return priceFromDiscountCurve (valParams, csqc, iWorkoutDate, dblWorkoutFactor, dblBump,
- PRICE_OFF_OF_FUNDING_CURVE);
- }
- @Override public double priceFromTreasuryCurve (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBump)
- throws java.lang.Exception
- {
- return priceFromDiscountCurve (valParams, csqc, iWorkoutDate, dblWorkoutFactor, dblBump,
- PRICE_OFF_OF_TREASURY_CURVE);
- }
- @Override public double priceFromCreditCurve (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis,
- final boolean bFlat)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor)
- || !org.drip.numerical.common.NumberUtil.IsValid (dblCreditBasis) || null == _creditSetting)
- throw new java.lang.Exception ("BondComponent::priceFromCreditCurve => Invalid inputs");
- org.drip.state.credit.CreditCurve ccIn = csqc.creditState (creditLabel());
- if (null == ccIn)
- throw new java.lang.Exception ("BondComponent::priceFromCreditCurve => Invalid inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::priceFromCreditCurve => No funding curve");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::priceFromCreditCurve => Val date " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iValueDate) + " greater than Work-out " +
- org.drip.analytics.date.DateUtil.YYYYMMDD (iWorkoutDate));
- double dblRecoveryToUse = !_creditSetting.useCurveRecovery() ? _creditSetting.recovery() :
- java.lang.Double.NaN;
- org.drip.state.credit.CreditCurve cc = bFlat ? ccIn.flatCurve (dblCreditBasis, true,
- dblRecoveryToUse) : (org.drip.state.credit.CreditCurve) ccIn.parallelShiftManifestMeasure
- ("SwapRate", dblCreditBasis);
- if (null == cc)
- throw new java.lang.Exception
- ("BondComponent::priceFromCreditCurve => Cannot create adjusted Curve");
- double dblPV = 0.;
- boolean bTerminateCashFlow = false;
- int iCashPayDate = java.lang.Integer.MIN_VALUE;
- double dblFlatForwardRate = java.lang.Double.NaN;
- double dblScalingNotional = null != _notionalSetting && _notionalSetting.priceOffOfOriginalNotional()
- ? 1. : notional (iValueDate);
- org.drip.param.valuation.ValuationCustomizationParams vcp = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- boolean bApplyFlatForwardRate = null == vcp ? false : vcp.applyFlatForwardRate();
- org.drip.param.pricer.CreditPricerParams pricerParams = new org.drip.param.pricer.CreditPricerParams
- (7, null, false, s_iDiscretizationScheme);
- int iLossPayLag = _creditSetting.lossPayLag();
- boolean bAccrualOnDefault = _creditSetting.accrualOnDefault();
- int iPeriodAmortizationMode = _notionalSetting.periodAmortizationMode();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- if (bTerminateCashFlow) continue;
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iPeriodEndDate = period.endDate();
- if (iPeriodEndDate >= iWorkoutDate) {
- bTerminateCashFlow = true;
- iPeriodEndDate = iWorkoutDate;
- }
- int iPeriodStartDate = period.startDate();
- if (iPeriodStartDate < iValueDate) iPeriodStartDate = iValueDate;
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iPeriodEndDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::priceFromCreditCurve => No PCM");
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodCoupon = bApplyFlatForwardRate ? dblFlatForwardRate : cpcm.rate();
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iPeriodEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate);
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodEndDate);
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE ==
- iPeriodAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iPeriodEndDate);
- dblPV += (period.accrualDCF (iPeriodEndDate) * dblPeriodCoupon * couponFactor (iPeriodEndDate) *
- dblCouponNotional + dblPeriodStartNotional - dblPeriodEndNotional) * dcFunding.df
- (iPeriodPayDate) * cpcm.cumulative() * cc.survival (iPeriodEndDate);
- for (org.drip.analytics.cashflow.LossQuadratureMetrics lqm : period.lossMetrics (this, valParams,
- pricerParams, iPeriodEndDate, csqc)) {
- if (null == lqm) continue;
- int iSubPeriodEndDate = lqm.endDate();
- int iSubPeriodStartDate = lqm.startDate();
- double dblSubPeriodDF = dcFunding.effectiveDF (iSubPeriodStartDate + iLossPayLag,
- iSubPeriodEndDate + iLossPayLag);
- double dblSubPeriodNotional = notional (iSubPeriodStartDate, iSubPeriodEndDate);
- double dblSubPeriodSurvival = cc.survival (iSubPeriodStartDate) - cc.survival
- (iSubPeriodEndDate);
- if (bAccrualOnDefault)
- dblPV += 0.0001 * lqm.accrualDCF() * dblSubPeriodSurvival * dblSubPeriodDF *
- dblSubPeriodNotional * dblPeriodCoupon;
- dblPV += (_creditSetting.useCurveRecovery() ? cc.effectiveRecovery (iSubPeriodStartDate,
- iSubPeriodEndDate) : _creditSetting.recovery()) * dblSubPeriodSurvival *
- dblSubPeriodNotional * dblSubPeriodDF;
- }
- }
- try {
- iCashPayDate = null == _quoteConvention ? valParams.cashPayDate() : _quoteConvention.settleDate
- (valParams);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- iCashPayDate = valParams.cashPayDate();
- }
- return ((dblPV + dblWorkoutFactor * dcFunding.df (terminationAdjust (iWorkoutDate)) * cc.survival
- (iWorkoutDate) * notional (iWorkoutDate)) / dcFunding.df (iCashPayDate) - accrued (iValueDate,
- csqc)) / dblScalingNotional;
- }
- @Override public double aswFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double aswFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return aswFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double aswFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromBondBasisToOptimalExercise => " +
- "Cannot calc ASW from Bond Basis to Optimal Exercise for bonds w emb option");
- return aswFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double aswFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double aswFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return aswFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double aswFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromCreditBasisToOptimalExercise => " +
- "Cannot calc ASW from Credit Basis to Optimal Exercise for bonds w emb option");
- return aswFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double aswFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromDiscountMargin
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblDiscountMargin));
- }
- @Override public double aswFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return aswFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1., dblDiscountMargin);
- }
- @Override public double aswFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromDiscountMarginToOptimalExercise => " +
- "Cannot calc ASW from Discount Margin to optimal exercise for bonds w emb option");
- return aswFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1., dblDiscountMargin);
- }
- @Override public double aswFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double aswFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return aswFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double aswFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromESpreadToOptimalExercise => " +
- "Cannot calc ASW from E Spread to optimal exercise for bonds w emb option");
- return aswFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double aswFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double aswFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return aswFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double aswFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromGSpreadToOptimalExercise => " +
- "Cannot calc ASW from G Spread to optimal exercise for bonds w emb option");
- return aswFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double aswFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double aswFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return aswFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double aswFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromISpreadToOptimalExercise => " +
- "Cannot calc ASW from I Spread to optimal exercise for bonds w emb option");
- return aswFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double aswFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double aswFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return aswFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double aswFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromJSpreadToOptimalExercise => " +
- "Cannot calc ASW from J Spread to optimal exercise for bonds w emb option");
- return aswFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double aswFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double aswFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return aswFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double aswFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromNSpreadToOptimalExercise => " +
- "Cannot calc ASW from N Spread to optimal exercise for bonds w emb option");
- return aswFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double aswFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS (valParams,
- csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double aswFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return aswFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double aswFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromOASToOptimalExercise => " +
- "Cannot calc ASW from OAS to optimal exercise for bonds w emb option");
- return aswFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double aswFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double aswFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return aswFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double aswFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromPECSToOptimalExercise => " +
- "Cannot calc ASW from PECS to optimal exercise for bonds w emb option");
- return aswFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double aswFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor)
- || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception ("BondComponent::aswFromPrice => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::aswFromPrice => Invalid Inputs");
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iValueDate, valParams,
- csqc);
- if (null == cpcm) throw new java.lang.Exception ("BondComponent::aswFromPrice => No CPCM");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::aswFromPrice => Invalid Inputs");
- return cpcm.rate() - dcFunding.estimateManifestMeasure ("SwapRate", iWorkoutDate) + 0.0001 *
- (dblWorkoutFactor - dblPrice) / dcFunding.parSwapDV01 (iWorkoutDate);
- }
- @Override public double aswFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double aswFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::aswFromPriceToOptimalExercise => Can't determine Optimal Work-out");
- return aswFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double aswFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double aswFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return aswFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double aswFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromTSYSpreadToOptimalExercise => " +
- "Cannot calc ASW from TSY Spread to optimal exercise for bonds w emb option");
- return aswFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double aswFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield (valParams,
- csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double aswFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return aswFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double aswFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromYieldToOptimalExercise => " +
- "Cannot calc ASW from Yield to optimal exercise for bonds w emb option");
- return aswFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double aswFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double aswFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return aswFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double aswFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromYieldSpreadToOptimalExercise => " +
- "Cannot calc ASW from Yield Spread to optimal exercise for bonds w emb option");
- return aswFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double aswFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return aswFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double aswFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return aswFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double aswFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::aswFromZSpreadToOptimalExercise => " +
- "Cannot calc ASW from Yield Spread to optimal exercise for bonds w emb option");
- return aswFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double bondBasisFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double bondBasisFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return bondBasisFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double bondBasisFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromASWToOptimalExercise => " +
- "Cannot calc Bond Basis from ASW to optimal exercise for bonds w emb option");
- return bondBasisFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double bondBasisFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double bondBasisFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return bondBasisFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double bondBasisFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromCreditBasisToOptimalExercise => " +
- "Cannot calc Bond Basis from Credit Basis to optimal exercise for bonds w emb option");
- return bondBasisFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double bondBasisFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double bondBasisFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return bondBasisFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double bondBasisFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromDiscountMarginToOptimalExercise " +
- "=> Cant calc Bond Basis from Discount Margin to optimal exercise for bonds w emb option");
- return bondBasisFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double bondBasisFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return bondBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double bondBasisFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return bondBasisFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double bondBasisFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromESpreadToOptimalExercise => " +
- "Cant calc Bond Basis from E Spread to optimal exercise for bonds w emb option");
- return bondBasisFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double bondBasisFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double bondBasisFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return bondBasisFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double bondBasisFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromGSpreadToOptimalExercise => " +
- "Cant calc Bond Basis from G Spread to optimal exercise for bonds w emb option");
- return bondBasisFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double bondBasisFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double bondBasisFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return bondBasisFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double bondBasisFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromISpreadToOptimalExercise => " +
- "Cant calc Bond Basis from I Spread to optimal exercise for bonds w emb option");
- return bondBasisFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double bondBasisFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double bondBasisFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return bondBasisFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double bondBasisFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromJSpreadToOptimalExercise => " +
- "Cant calc Bond Basis from J Spread to optimal exercise for bonds w emb option");
- return bondBasisFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double bondBasisFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double bondBasisFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return bondBasisFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double bondBasisFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromNSpreadToOptimalExercise => " +
- "Cant calc Bond Basis from N Spread to optimal exercise for bonds w emb option");
- return bondBasisFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double bondBasisFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double bondBasisFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return bondBasisFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double bondBasisFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromOASToOptimalExercise => " +
- "Cant calc Bond Basis from OAS to optimal exercise for bonds w emb option");
- return bondBasisFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double bondBasisFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double bondBasisFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return bondBasisFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double bondBasisFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromPECSToOptimalExercise => " +
- "Cant calc Bond Basis from PECS to optimal exercise for bonds w emb option");
- return bondBasisFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double bondBasisFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double bondBasisFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return bondBasisFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double bondBasisFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
-
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::bondBasisFromPriceToOptimalExercise => cant calc Work-out info");
- return bondBasisFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double bondBasisFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double bondBasisFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return bondBasisFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double bondBasisFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromTSYSpreadToOptimalExercise => " +
- "Cant calc Bond Basis from TSY Spread to optimal exercise for bonds w emb option");
- return bondBasisFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double bondBasisFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::bondBasisFromYield => Invalid inputs");
- return dblYield - yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromFundingCurve (valParams, csqc, iWorkoutDate, dblWorkoutFactor, 0.));
- }
- @Override public double bondBasisFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double bondBasisFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromYieldToOptimalExercise => " +
- "Cant calc Bond Basis from Yield to optimal exercise for bonds w emb option");
- return bondBasisFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double bondBasisFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double bondBasisFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double bondBasisFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromYieldSpreadToOptimalExercise " +
- "=> Cant calc Bond Basis from Yield Spread to optimal exercise for bonds w emb option");
- return bondBasisFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double bondBasisFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return bondBasisFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double bondBasisFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return bondBasisFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double bondBasisFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::bondBasisFromZSpreadToOptimalExercise => " +
- "Cant calc Bond Basis from Z Spread to optimal exercise for bonds w emb option");
- return bondBasisFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double convexityFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double convexityFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return convexityFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double convexityFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromASWToOptimalExercise => " +
- "Cant calc Convexity from ASW to optimal exercise for bonds w emb option");
- return convexityFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double convexityFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double convexityFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return convexityFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double convexityFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromBondBasisToOptimalExercise => " +
- "Cant calc Convexity from Bond Basis to optimal exercise for bonds w emb option");
- return convexityFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double convexityFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double convexityFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return convexityFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double convexityFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromCreditBasisToOptimalExercise => " +
- "Cant calc Convexity from Credit Basis to optimal exercise for bonds w emb option");
- return convexityFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double convexityFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double convexityFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return convexityFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double convexityFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromDiscountMarginToOptimalExercise " +
- "=> Cant calc Convexity from Discount Margin to optimal exercise for bonds w emb option");
- return convexityFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double convexityFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double convexityFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return convexityFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double convexityFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromESpreadToOptimalExercise => " +
- "Cant calc Convexity from E Spread to optimal exercise for bonds w emb option");
- return convexityFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double convexityFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double convexityFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return convexityFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double convexityFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromGSpreadToOptimalExercise => " +
- "Cant calc Convexity from G Spread to optimal exercise for bonds w emb option");
- return convexityFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double convexityFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double convexityFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return convexityFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double convexityFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromISpreadToOptimalExercise => " +
- "Cant calc Convexity from I Spread to optimal exercise for bonds w emb option");
- return convexityFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double convexityFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double convexityFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return convexityFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double convexityFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromJSpreadToOptimalExercise => " +
- "Cant calc Convexity from J Spread to optimal exercise for bonds w emb option");
- return convexityFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double convexityFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double convexityFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return convexityFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double convexityFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromNSpreadToOptimalExercise => " +
- "Cant calc Convexity from N Spread to optimal exercise for bonds w emb option");
- return convexityFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double convexityFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double convexityFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return convexityFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double convexityFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromOASToOptimalExercise => " +
- "Cant calc Convexity from OAS to optimal exercise for bonds w emb option");
- return convexityFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double convexityFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double convexityFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return convexityFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double convexityFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromPECSToOptimalExercise => " +
- "Cant calc Convexity from PECS to optimal exercise for bonds w emb option");
- return convexityFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double convexityFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception ("BondComponent::convexityFromPrice => Input inputs");
- double dblYield = yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice);
- return (priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield - 0.0001) +
- priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield + 0.0001) - 2. *
- dblPrice) / (dblPrice + accrued (valParams.valueDate(), csqc));
- }
- @Override public double convexityFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double convexityFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::calcConvexityFromPriceToOptimalExercise => " +
- "Cant calc Convexity from Price to optimal exercise for bonds w emb option");
- return convexityFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double convexityFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double convexityFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return convexityFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double convexityFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromTSYSpreadToOptimalExercise => " +
- "Cant calc Convexity from TSY Sprd to optimal exercise for bonds w emb option");
- return convexityFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double convexityFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double convexityFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return convexityFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double convexityFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromYieldToOptimalExercise => " +
- "Cant calc Convexity from Yield to optimal exercise for bonds w emb option");
- return convexityFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double convexityFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double convexityFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return convexityFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double convexityFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromYieldSpreadToOptimalExercise => " +
- "Cant calc Convexity from Yld Sprd to optimal exercise for bonds w emb option");
- return convexityFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double convexityFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return convexityFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double convexityFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return convexityFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double convexityFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::convexityFromZSpreadToOptimalExercise => " +
- "Cant calc Convexity from Z Spread to optimal exercise for bonds w emb option");
- return convexityFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double creditBasisFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double creditBasisFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return creditBasisFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double creditBasisFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromASWToOptimalExercise => " +
- "Cannot calc Credit Basis from ASW to optimal exercise for bonds w emb option");
- return creditBasisFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double creditBasisFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromBondBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double creditBasisFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return creditBasisFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double creditBasisFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromBondBasisToOptimalExercise " +
- "=> Cant calc Credit Basis from Bond Basis to optimal exercise for bonds w emb option");
- return creditBasisFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double creditBasisFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double creditBasisFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return creditBasisFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double creditBasisFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::creditBasisFromDiscountMarginToOptimalExercise => " +
- "Cant calc Credit Basis from Discnt Margin to optimal exercise for bonds w emb option");
- return creditBasisFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double creditBasisFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double creditBasisFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return creditBasisFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double creditBasisFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromESpreadToOptimalExercise => " +
- "Cant calc Credit Basis from E Spread to optimal exercise for bonds w emb option");
- return creditBasisFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double creditBasisFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double creditBasisFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return creditBasisFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double creditBasisFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromGSpreadToOptimalExercise => " +
- "Cant calc Credit Basis from G Spread to optimal exercise for bonds w emb option");
- return creditBasisFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double creditBasisFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double creditBasisFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return creditBasisFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double creditBasisFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromISpreadToOptimalExercise => " +
- "Cant calc Credit Basis from I Spread to optimal exercise for bonds w emb option");
- return creditBasisFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double creditBasisFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double creditBasisFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return creditBasisFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double creditBasisFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromJSpreadToOptimalExercise => " +
- "Cant calc Credit Basis from J Spread to optimal exercise for bonds w emb option");
- return creditBasisFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double creditBasisFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double creditBasisFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return creditBasisFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double creditBasisFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromNSpreadToOptimalExercise => " +
- "Cant calc Credit Basis from N Spread to optimal exercise for bonds w emb option");
- return creditBasisFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double creditBasisFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double creditBasisFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return creditBasisFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double creditBasisFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromOASToOptimalExercise => " +
- "Cant calc Credit Basis from OAS to optimal exercise for bonds w emb option");
- return creditBasisFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double creditBasisFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double creditBasisFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return creditBasisFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double creditBasisFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromPECSToOptimalExercise => " +
- "Cant calc Credit Basis from PECS to optimal exercise for bonds w emb option");
- return creditBasisFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double creditBasisFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, false).calibrateCreditBasisFromPrice (valParams, csqc, iWorkoutDate,
- dblWorkoutFactor, dblPrice, false);
- }
- @Override public double creditBasisFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double creditBasisFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::creditBasisFromPriceToOptimalExercise => cant calc Work-out");
- return creditBasisFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double creditBasisFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double creditBasisFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return creditBasisFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double creditBasisFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromTSYSpreadToOptimalExercise => " +
- "Cant calc Credit Basis from TSY Spread to optimal exercise for bonds w emb option");
- return creditBasisFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double creditBasisFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double creditBasisFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return creditBasisFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double creditBasisFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromYieldToOptimalExercise => " +
- "Cant calc Credit Basis from Yield to optimal exercise for bonds w emb option");
- return creditBasisFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double creditBasisFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double creditBasisFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return creditBasisFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double creditBasisFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromYieldSpreadToOptimalExercise " +
- "=> Cant calc Credit Basis from Yield Spread to optimal exercise for bonds w emb option");
- return creditBasisFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double creditBasisFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return creditBasisFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double creditBasisFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return creditBasisFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double creditBasisFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::creditBasisFromZSpreadToOptimalExercise => " +
- "Cant calc Credit Basis from Z Spread to optimal exercise for bonds w emb option");
- return creditBasisFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double discountMarginFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double discountMarginFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return discountMarginFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double discountMarginFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromASWToOptimalExercise => " +
- "Cant calc Discount Margin from ASW to optimal exercise for bonds w emb option");
- return discountMarginFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double discountMarginFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromBondBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double discountMarginFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return discountMarginFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double discountMarginFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromBondBasisToOptimalExercise " +
- "=> Cant calc Discount Margin from Bond Basis to optimal exercise for bonds w emb option");
- return discountMarginFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double discountMarginFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double discountMarginFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return discountMarginFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double discountMarginFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::discountMarginFromCreditBasisToOptimalExercise => " +
- "Cant calc Discount Margin from Crdit Basis to optimal exercise for bonds w emb option");
- return discountMarginFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double discountMarginFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromESpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double discountMarginFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return discountMarginFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double discountMarginFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromESpreadToOptimalExercise =>" +
- " => Cant calc Discount Margin from E Spread to optimal exercise for bonds w emb option");
- return discountMarginFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double discountMarginFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromGSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double discountMarginFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return discountMarginFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double discountMarginFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromGSpreadToOptimalExercise =>" +
- " => Cant calc Discount Margin from G Spread to optimal exercise for bonds w emb option");
- return discountMarginFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double discountMarginFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromISpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double discountMarginFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return discountMarginFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double discountMarginFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromISpreadToOptimalExercise " +
- "=> Cant calc Discount Margin from I Spread to optimal exercise for bonds w emb option");
- return discountMarginFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double discountMarginFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromJSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double discountMarginFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return discountMarginFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double discountMarginFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromJSpreadToOptimalExercise " +
- "=> Cant calc Discount Margin from J Spread to optimal exercise for bonds w emb option");
- return discountMarginFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double discountMarginFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromNSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double discountMarginFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return discountMarginFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double discountMarginFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromNSpreadToOptimalExercise " +
- "=> Cant calc Discount Margin from N Spread to optimal exercise for bonds w emb option");
- return discountMarginFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double discountMarginFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double discountMarginFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return discountMarginFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double discountMarginFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::calcDiscountMarginFromOASToOptimalExercise => " +
- "Cant calc Discount Margin from OAS to optimal exercise for bonds w emb option");
- return discountMarginFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double discountMarginFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double discountMarginFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return discountMarginFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double discountMarginFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromPECSToOptimalExercise => " +
- "Cant calc Discount Margin from PECS to optimal exercise for bonds w emb option");
- return discountMarginFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double discountMarginFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double discountMarginFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return discountMarginFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double discountMarginFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::discountMarginFromPriceToOptimalExercise => Can't do Work-out");
- return discountMarginFromYield (valParams, csqc, vcp, wi.date(), wi.factor(), wi.yield());
- }
- @Override public double discountMarginFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double discountMarginFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return discountMarginFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double discountMarginFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromTSYSpreadToOptimalExercise " +
- "=> Cant calc Discount Margin from TSY Spread to optimal exercise for bonds w emb option");
- return discountMarginFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double discountMarginFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::discountMarginFromYield => Invalid inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::discountMarginFromYield => Invalid inputs");
- int iValueDate = valParams.valueDate();
- int iFreq = freq();
- org.drip.analytics.cashflow.CompositePeriod cp = currentPeriod (iValueDate);
- if (null == cp)
- throw new java.lang.Exception ("BondComponent::discountMarginFromYield => Invalid inputs");
- return null == _floaterSetting || !(cp instanceof
- org.drip.analytics.cashflow.CompositeFloatingPeriod) ? dblYield - dcFunding.libor (iValueDate,
- ((int) (12. / (0 == iFreq ? 2 : iFreq))) + "M") : dblYield - indexRate (iValueDate, csqc,
- (org.drip.analytics.cashflow.CompositeFloatingPeriod) cp);
- }
- @Override public double discountMarginFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double discountMarginFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromYieldToOptimalExercise =>" +
- " Cant calc Discount Margin from Yield to optimal exercise for bonds w emb option");
- return discountMarginFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double discountMarginFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double discountMarginFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double discountMarginFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::discountMarginFromYieldSpreadToOptimalExercise => " +
- "Cant calc Discount Margin from Yield Sprd to optimal exercise for bonds w emb option");
- return discountMarginFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double discountMarginFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return discountMarginFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromZSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double discountMarginFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return discountMarginFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double discountMarginFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::discountMarginFromZSpreadToOptimalExercise =>" +
- " Cant calc Discount Margin from Z Spread to optimal exercise for bonds w emb option");
- return discountMarginFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double durationFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double durationFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return durationFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double durationFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromASWToOptimalExercise => " +
- "Cant calc Duration from ASW to optimal exercise for bonds w emb option");
- return durationFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double durationFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double durationFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return durationFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double durationFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromBondBasisToOptimalExercise => " +
- "Cant calc Duration from Bond Basis to optimal exercise for bonds w emb option");
- return durationFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double durationFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double durationFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return durationFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double durationFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromCreditBasisToOptimalExercise => " +
- "Cant calc Duration from Credit Basis to optimal exercise for bonds w emb option");
- return durationFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double durationFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double durationFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return durationFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double durationFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromDiscountMarginToOptimalExercise " +
- "=> Cant calc Duration from Discount Margin to optimal exercise for bonds w emb option");
- return durationFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double durationFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double durationFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return durationFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double durationFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromESpreadToOptimalExercise => " +
- "Cant calc Duration from E Spread to optimal exercise for bonds w emb option");
- return durationFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double durationFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double durationFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return durationFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double durationFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromGSpreadToOptimalExercise => " +
- "Cant calc Duration from G Spread to optimal exercise for bonds w emb option");
- return durationFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double durationFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double durationFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return durationFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double durationFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromISpreadToOptimalExercise => " +
- "Cant calc Duration from I Spread to optimal exercise for bonds w emb option");
- return durationFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double durationFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double durationFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return durationFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double durationFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromJSpreadToOptimalExercise => " +
- "Cant calc Duration from J Spread to optimal exercise for bonds w emb option");
- return durationFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double durationFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double durationFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return durationFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double durationFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromNSpreadToOptimalExercise => " +
- "Cant calc Duration from N Spread to optimal exercise for bonds w emb option");
- return durationFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double durationFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double durationFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return durationFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double durationFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromOASToOptimalExercise => " +
- "Cant calc Duration from OAS to optimal exercise for bonds w emb option");
- return durationFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double durationFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double durationFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return durationFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double durationFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromPECSToOptimalExercise => " +
- "Cant calc Duration from PECS to optimal exercise for bonds w emb option");
- return durationFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double durationFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice);
- }
- @Override public double durationFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double durationFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromPriceToOptimalExercise => " +
- "Cant calc Duration from Price to optimal exercise for bonds w emb option");
- return durationFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double durationFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double durationFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return durationFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double durationFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromTSYSpreadToOptimalExercise => " +
- "Cant calc Duration from TSY Sprd to optimal exercise for bonds w emb option");
- return durationFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double durationFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double durationFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return durationFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double durationFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromYieldToOptimalExercise => " +
- "Cant calc Duration from Yield to optimal exercise for bonds w emb option");
- return durationFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double durationFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double durationFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return durationFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double durationFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromYieldSpreadToOptimalExercise => " +
- "Cant calc Duration from Yield Spread to optimal exercise for bonds w emb option");
- return durationFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double durationFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return durationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double durationFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return durationFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double durationFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::durationFromZSpreadToOptimalExercise => " +
- "Cant calc Duration from Z Spread to optimal exercise for bonds w emb option");
- return durationFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double eSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double eSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return eSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double eSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromASWToOptimalExercise => " +
- "Cant calc E Spread from ASW to optimal exercise for bonds w emb option");
- return eSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double eSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double eSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return eSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double eSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromBondBasisToOptimalExercise => " +
- "Cant calc E Spread from Bond Basis to optimal exercise for bonds w emb option");
- return eSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double eSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double eSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return eSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double eSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc E Spread from Credit Basis to optimal exercise for bonds w emb option");
- return eSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double eSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double eSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return eSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double eSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::eSpreadFromDiscountMarginToOptimalExercise => " +
- "Cant calc E Spread from Discount Margin to optimal exercise for bonds w emb option");
- return eSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double eSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double eSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return eSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double eSpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromGSpreadToOptimalExercise => " +
- "Cant calc E Spread from G Spread to optimal exercise for bonds w emb option");
- return eSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double eSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double eSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return eSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double eSpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromISpreadToOptimalExercise => " +
- "Cant calc E Spread from I Spread to optimal exercise for bonds w emb option");
- return eSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double eSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double eSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return eSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double eSpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromJSpreadToOptimalExercise => " +
- "Cant calc E Spread from J Spread to optimal exercise for bonds w emb option");
- return eSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double eSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double eSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return eSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double eSpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromNSpreadToOptimalExercise => " +
- "Cant calc E Spread from N Spread to optimal exercise for bonds w emb option");
- return eSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double eSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double eSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return eSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double eSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromOASToOptimalExercise => " +
- "Cant calc E Spread from OAS to optimal exercise for bonds w emb option");
- return eSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double eSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double eSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return eSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double eSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromPECSToOptimalExercise => " +
- "Cant calc E Spread from PECS to optimal exercise for bonds w emb option");
- return eSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double eSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, false).calibrateZSpreadFromPrice (valParams, csqc, vcp,
- ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE, iWorkoutDate, dblWorkoutFactor, dblPrice);
- }
- @Override public double eSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double eSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception ("BondComponent::eSpreadFromPriceToOptimalExercise => " +
- "Cant calc Workout from Price to optimal exercise for bonds w emb option");
- return eSpreadFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double eSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double eSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return eSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double eSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc E Spread from TSY Spread to optimal exercise for bonds w emb option");
- return eSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double eSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double eSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return eSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double eSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromYieldToOptimalExercise => " +
- "Cant calc E Spread from Yield to optimal exercise for bonds w emb option");
- return eSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double eSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return eSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double eSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return eSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double eSpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::eSpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc E Spread from Yield Spread to optimal exercise for bonds w emb option");
- return eSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double gSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double gSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return gSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double gSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromASWToOptimalExercise => " +
- "Cant calc G Spread from ASW to optimal exercise for bonds w emb option");
- return gSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double gSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double gSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return gSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double gSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromBondBasisToOptimalExercise => " +
- "Cant calc G Spread from Bond Basis to optimal exercise for bonds w emb option");
- return gSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double gSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double gSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return gSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double gSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc G Spread from Credit Basis to optimal exercise for bonds w emb option");
- return gSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double gSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double gSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return gSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double gSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromDiscountMarginToOptimalExercise =>" +
- " Cant calc G Spread from Discount Margin to optimal exercise for bonds w emb option");
- return gSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double gSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double gSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return gSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double gSpreadFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromESpreadToOptimalExercise => " +
- "Cant calc G Spread from E Spread to optimal exercise for bonds w emb option");
- return gSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double gSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double gSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return gSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double gSpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromISpreadToOptimalExercise => " +
- "Cant calc G Spread from I Spread to optimal exercise for bonds w emb option");
- return gSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double gSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double gSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return gSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double gSpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromJSpreadToOptimalExercise => " +
- "Cant calc G Spread from J Spread to optimal exercise for bonds w emb option");
- return gSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double gSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double gSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return gSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double gSpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromNSpreadToOptimalExercise => " +
- "Cant calc G Spread from N Spread to optimal exercise for bonds w emb option");
- return gSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double gSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double gSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return gSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double gSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromOASToOptimalExercise => " +
- "Cant calc G Spread from OAS to optimal exercise for bonds w emb option");
- return gSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double gSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double gSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return gSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double gSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromPECSToOptimalExercise => " +
- "Cant calc G Spread from PECS to optimal exercise for bonds w emb option");
- return gSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double gSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double gSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return gSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double gSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::gSpreadFromPriceToOptimalExercise => Can't do Work-out");
- return gSpreadFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double gSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double gSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return gSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double gSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc G Spread from TSY Spread to optimal exercise for bonds w emb option");
- return gSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double gSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblYield) ||
- valParams.valueDate() >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::gSpreadFromYield => Invalid inputs");
- org.drip.state.govvie.GovvieCurve gc = csqc.govvieState (govvieLabel());
- if (null == gc) throw new java.lang.Exception ("BondComponent::gSpreadFromYield => Invalid inputs");
- return dblYield - gc.yield (iWorkoutDate);
- }
- @Override public double gSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double gSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromYieldToOptimalExercise => " +
- "Cant calc G Spread from Yield to optimal exercise for bonds w emb option");
- return gSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double gSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double gSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return gSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double gSpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc G Spread from Yield Spread to optimal exercise for bonds w emb option");
- return gSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double gSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return gSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double gSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return gSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double gSpreadFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::gSpreadFromZSpreadToOptimalExercise => " +
- "Cant calc G Spread from Z Spread to optimal exercise for bonds w emb option");
- return gSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double iSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double iSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return iSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double iSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromASWToOptimalExercise => " +
- "Cant calc I Spread from ASW to optimal exercise for bonds w emb option");
- return iSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double iSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double iSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return iSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double iSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromBondBasisToOptimalExercise => " +
- "Cant calc I Spread from Bond Basis to optimal exercise for bonds w emb option");
- return iSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double iSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double iSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return iSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double iSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc I Spread from Credit Basis to optimal exercise for bonds w emb option");
- return iSpreadFromCreditBasis (valParams, csqs, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double iSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double iSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return iSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double iSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromDiscountMarginToOptimalExercise =>" +
- " Cant calc I Spread from Discount Margin to optimal exercise for bonds w emb option");
- return iSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double iSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double iSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return iSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double iSpreadFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromESpreadToOptimalExercise => " +
- "Cant calc I Spread from E Spread to optimal exercise for bonds w emb option");
- return iSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double iSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double iSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return iSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double iSpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromGSpreadToOptimalExercise => " +
- "Cant calc I Spread from G Spread to optimal exercise for bonds w emb option");
- return iSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double iSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double iSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return iSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double iSpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromJSpreadToOptimalExercise => " +
- "Cant calc I Spread from J Spread to optimal exercise for bonds w emb option");
- return iSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double iSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double iSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return iSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double iSpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromNSpreadToOptimalExercise => " +
- "Cant calc I Spread from N Spread to optimal exercise for bonds w emb option");
- return iSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double iSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double iSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return iSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double iSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromOASToOptimalExercise => " +
- "Cant calc I Spread from OAS to optimal exercise for bonds w emb option");
- return iSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double iSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double iSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return iSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double iSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromPECSToOptimalExercise => " +
- "Cant calc I Spread from PECS to optimal exercise for bonds w emb option");
- return iSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double iSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double iSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return iSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double iSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::iSpreadFromPriceToOptimalExercise => Can't do Work-out");
- return iSpreadFromYield (valParams, csqc, vcp, wi.date(), wi.factor(), wi.yield());
- }
- @Override public double iSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double iSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return iSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double iSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc I Spread from TSY Spread to optimal exercise for bonds w emb option");
- return iSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double iSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::iSpreadFromYield => Invalid Inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::iSpreadFromYield => Invalid Inputs");
- return dblYield - dcFunding.estimateManifestMeasure ("SwapRate", iWorkoutDate);
- }
- @Override public double iSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double iSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromYieldToOptimalExercise => " +
- "Cant calc I Spread from Yield to optimal exercise for bonds w emb option");
- return iSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double iSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double iSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double iSpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc I Spread from Yield Spread to optimal exercise for bonds w emb option");
- return iSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double iSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return iSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double iSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return iSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double iSpreadFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromZSpreadToOptimalExercise => " +
- "Cant calc I Spread from Z Spread to optimal exercise for bonds w emb option");
- return iSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double jSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double jSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return jSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double jSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromASWToOptimalExercise => " +
- "Cant calc J Spread from ASW to optimal exercise for bonds w emb option");
- return jSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double jSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double jSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return jSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double jSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromBondBasisToOptimalExercise => " +
- "Cant calc J Spread from Bond Basis to optimal exercise for bonds w emb option");
- return jSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double jSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double jSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return jSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double jSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc I Spread from Credit Basis to optimal exercise for bonds w emb option");
- return iSpreadFromCreditBasis (valParams, csqs, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double jSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double jSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return jSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double jSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromDiscountMarginToOptimalExercise =>" +
- " Cant calc J Spread from Discount Margin to optimal exercise for bonds w emb option");
- return jSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double jSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double jSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return jSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double jSpreadFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromESpreadToOptimalExercise => " +
- "Cant calc J Spread from E Spread to optimal exercise for bonds w emb option");
- return jSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double jSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double jSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return jSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double jSpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromGSpreadToOptimalExercise => " +
- "Cant calc J Spread from G Spread to optimal exercise for bonds w emb option");
- return jSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double jSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double jSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return jSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double jSpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromISpreadToOptimalExercise => " +
- "Cant calc J Spread from I Spread to optimal exercise for bonds w emb option");
- return jSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double jSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double jSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return jSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double jSpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromNSpreadToOptimalExercise => " +
- "Cant calc J Spread from N Spread to optimal exercise for bonds w emb option");
- return jSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double jSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double jSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return jSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double jSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromOASToOptimalExercise => " +
- "Cant calc J Spread from OAS to optimal exercise for bonds w emb option");
- return jSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double jSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double jSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return jSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double jSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromPECSToOptimalExercise => " +
- "Cant calc J Spread from PECS to optimal exercise for bonds w emb option");
- return jSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double jSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double jSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return jSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double jSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::jSpreadFromPriceToOptimalExercise => Can't do Work-out");
- return jSpreadFromYield (valParams, csqc, vcp, wi.date(), wi.factor(), wi.yield());
- }
- @Override public double jSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double jSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return jSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double jSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc J Spread from TSY Spread to optimal exercise for bonds w emb option");
- return jSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double jSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::jSpreadFromYield => Invalid inputs");
- org.drip.state.govvie.GovvieCurve gc = csqc.govvieState (govvieLabel());
- if (null == gc) throw new java.lang.Exception ("BondComponent::jSpreadFromYield => Invalid inputs");
- return dblYield - gc.yield (weightedAverageMaturityDate (valParams, csqc, iWorkoutDate,
- dblWorkoutFactor));
- }
- @Override public double jSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double jSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromYieldToOptimalExercise => " +
- "Cant calc J Spread from Yield to optimal exercise for bonds w emb option");
- return jSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double jSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double jSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return jSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double jSpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::jSpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc J Spread from Yield Spread to optimal exercise for bonds w emb option");
- return jSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double jSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return jSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double jSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return jSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double jSpreadFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::iSpreadFromZSpreadToOptimalExercise => " +
- "Cant calc J Spread from Z Spread to optimal exercise for bonds w emb option");
- return jSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double macaulayDurationFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromASW (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double macaulayDurationFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return macaulayDurationFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double macaulayDurationFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromASWToOptimalExercise => " +
- "Cant calc Macaulay Duration from ASW to optimal exercise for bonds w emb option");
- return macaulayDurationFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double macaulayDurationFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromBondBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double macaulayDurationFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return macaulayDurationFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblBondBasis);
- }
- @Override public double macaulayDurationFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromBondBasisToOptimalExercise => " +
- "Cant calc Macaulay Duration from Bnd Basis to optimal exercise for bonds w emb option");
- return macaulayDurationFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblBondBasis);
- }
- @Override public double macaulayDurationFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double macaulayDurationFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return macaulayDurationFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double macaulayDurationFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromCreditBasisToOptimalExercise => " +
- "Cant calc Macaulay Duration from Crd Basis to optimal exercise for bonds w emb option");
- return macaulayDurationFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double macaulayDurationFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double macaulayDurationFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return macaulayDurationFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double macaulayDurationFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromDiscountMarginToOptimalExercise => " +
- "Cant calc Macaulay Duration from Disc Marg to optimal exercise for bonds w emb option");
- return macaulayDurationFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double macaulayDurationFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromESpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double macaulayDurationFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double macaulayDurationFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromESpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from E Spread to optimal exercise for bonds w emb option");
- return macaulayDurationFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double macaulayDurationFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromGSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double macaulayDurationFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double macaulayDurationFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromGSpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from G Spread to optimal exercise for bonds w emb option");
- return macaulayDurationFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double macaulayDurationFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromISpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double macaulayDurationFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double macaulayDurationFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromISpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from I Spread to optimal exercise for bonds w emb option");
- return macaulayDurationFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double macaulayDurationFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromJSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double macaulayDurationFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double macaulayDurationFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromJSpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from J Spread to optimal exercise for bonds w emb option");
- return macaulayDurationFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double macaulayDurationFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromNSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double macaulayDurationFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double macaulayDurationFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromNSpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from N Spread to optimal exercise for bonds w emb option");
- return macaulayDurationFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double macaulayDurationFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromOAS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double macaulayDurationFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return macaulayDurationFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double mnacaulayDurationFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::mnacaulayDurationFromOASToOptimalExercise => " +
- "Cant calc Macaulay Duration from OAS to optimal exercise for bonds w emb option");
- return macaulayDurationFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double macaulayDurationFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromPECS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double macaulayDurationFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return macaulayDurationFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double macaulayDurationFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromPECSToOptimalExercise => " +
- "Cant calc Macaulay Duration from PECS to optimal exercise for bonds w emb option");
- return macaulayDurationFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double macaulayDurationFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double macaulayDurationFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return macaulayDurationFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double macaulayDurationFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromPriceToOptimalExercise => Cant determine Work-out");
- return macaulayDurationFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), wi.yield());
- }
- @Override public double macaulayDurationFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double macaulayDurationFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblTSYSpread);
- }
- @Override public double macaulayDurationFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromTSYSpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from TSY Sprd to optimal exercise for bonds w emb option");
- return macaulayDurationFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblTSYSpread);
- }
- @Override public double macaulayDurationFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor))
- throw new java.lang.Exception ("BondComponent::macaulayDurationFromYield => Invalid inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::macaulayDurationFromYield => Invalid inputs");
- boolean bFirstPeriod = true;
- double dblPeriodYearFract = 0.;
- double dblCumulativePeriodPV = 0.;
- boolean bTerminateCouponFlow = false;
- boolean bApplyFlatForwardRate = false;
- double dblCumulativePeriodDuration = 0.;
- double dblFlatForwardRate = java.lang.Double.NaN;
- org.drip.analytics.daycount.ActActDCParams aap = null;
- org.drip.analytics.cashflow.CompositePeriod periodRef = null;
- int iFrequency = freq();
- java.lang.String strDC = couponDC();
- java.lang.String strCalendar = currency();
- boolean bApplyCpnEOMAdj = _stream.couponEOMAdjustment();
- if (null == strCalendar || strCalendar.isEmpty()) strCalendar = redemptionCurrency();
- org.drip.param.valuation.ValuationCustomizationParams vcpQuote = null == _quoteConvention ? null :
- _quoteConvention.valuationCustomizationParams();
- if (null != vcp) {
- strDC = vcp.yieldDayCount();
- iFrequency = vcp.yieldFreq();
- strCalendar = vcp.yieldCalendar();
- bApplyCpnEOMAdj = vcp.applyYieldEOMAdj();
- bApplyFlatForwardRate = vcp.applyFlatForwardRate();
- } else if (null != vcpQuote) {
- strDC = vcpQuote.yieldDayCount();
- iFrequency = vcpQuote.yieldFreq();
- strCalendar = vcpQuote.yieldCalendar();
- bApplyCpnEOMAdj = vcpQuote.applyYieldEOMAdj();
- bApplyFlatForwardRate = vcpQuote.applyFlatForwardRate();
- }
- int iAmortizationMode = _notionalSetting.periodAmortizationMode();
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- if (bFirstPeriod) {
- bFirstPeriod = false;
- dblPeriodYearFract = period.couponDCF() - period.accrualDCF (iValueDate);
- } else
- dblPeriodYearFract += period.couponDCF();
- periodRef = period;
- int iPeriodEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- if (iPeriodEndDate >= iWorkoutDate) {
- bTerminateCouponFlow = true;
- iPeriodEndDate = iWorkoutDate;
- }
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iValueDate,
- valParams, csqc);
- if (null == cpcm)
- throw new java.lang.Exception ("BondComponent::macaulayDurationFromYield => No CPCM");
- if (null != vcp) {
- if (null == (aap = vcp.yieldAAP()))
- aap = new org.drip.analytics.daycount.ActActDCParams (vcp.yieldFreq(), iPeriodEndDate -
- iPeriodStartDate);
- } else if (null != vcpQuote) {
- if (null == (aap = vcpQuote.yieldAAP()))
- aap = new org.drip.analytics.daycount.ActActDCParams (vcpQuote.yieldFreq(),
- iPeriodEndDate - iPeriodStartDate);
- } else
- aap = new org.drip.analytics.daycount.ActActDCParams (iFrequency, iPeriodEndDate -
- iPeriodStartDate);
- double dblYearFract = org.drip.analytics.daycount.Convention.YearFraction (iValueDate,
- iPeriodPayDate, strDC, bApplyCpnEOMAdj, aap, strCalendar);
- double dblYieldAnnuity = org.drip.analytics.support.Helper.Yield2DF (iFrequency, dblYield,
- s_bYieldDFOffofCouponAccrualDCF ? dblPeriodYearFract : dblYearFract) * cpcm.cumulative();
- double dblPeriodStartNotional = notional (iPeriodStartDate);
- double dblPeriodEndNotional = notional (iPeriodEndDate);
- double dblCouponNotional = dblPeriodStartNotional;
- if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_START == iAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate);
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_AT_END == iAmortizationMode)
- dblCouponNotional = dblPeriodEndNotional;
- else if (org.drip.product.params.NotionalSetting.PERIOD_AMORT_EFFECTIVE == iAmortizationMode)
- dblCouponNotional = notional (iPeriodStartDate, iPeriodEndDate);
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblCouponPV = period.accrualDCF (iPeriodEndDate) * (bApplyFlatForwardRate ?
- dblFlatForwardRate : cpcm.rate()) * couponFactor (iPeriodEndDate) * dblYieldAnnuity *
- dblCouponNotional;
- double dblPeriodNotionalPV = (dblPeriodStartNotional - dblPeriodEndNotional) * dblYieldAnnuity;
- dblCumulativePeriodDuration += dblPeriodYearFract * (dblCouponPV + dblPeriodNotionalPV);
- dblCumulativePeriodPV += (dblCouponPV + dblPeriodNotionalPV);
- if (bTerminateCouponFlow) break;
- }
- if (null != periodRef)
- aap = new org.drip.analytics.daycount.ActActDCParams (iFrequency, periodRef.endDate() -
- periodRef.startDate());
- double dblRedemptionPV = dblWorkoutFactor * org.drip.analytics.support.Helper.Yield2DF (iFrequency,
- dblYield, s_bYieldDFOffofCouponAccrualDCF ? dblPeriodYearFract :
- org.drip.analytics.daycount.Convention.YearFraction (iValueDate, terminationAdjust
- (iWorkoutDate), strDC, bApplyCpnEOMAdj, aap, strCalendar)) * notional (iWorkoutDate);
- return (dblCumulativePeriodDuration + dblPeriodYearFract * dblRedemptionPV) / (dblCumulativePeriodPV
- + dblRedemptionPV);
- }
- @Override public double macaulayDurationFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double macaulayDurationFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::macaulayDurationFromYieldToOptimalExercise =>" +
- " Cant calc Macaulay Duration from Yield to optimal exercise for bonds w emb option");
- return macaulayDurationFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double macaulayDurationFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double macaulayDurationFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double macaulayDurationFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromYieldSpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from Yld Sprd to optimal exercise for bonds w emb option");
- return macaulayDurationFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double macaulayDurationFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromZSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double macaulayDurationFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return macaulayDurationFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double macaulayDurationFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::macaulayDurationFromZSpreadToOptimalExercise => " +
- "Cant calc Macaulay Duration from Z Spread to optimal exercise for bonds w emb option");
- return macaulayDurationFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double modifiedDurationFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromASW (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double modifiedDurationFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return modifiedDurationFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double modifiedDurationFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromASWToOptimalExercise => " +
- "Cant calc Modified Duration from ASW to optimal exercise for bonds w emb option");
- return modifiedDurationFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double modifiedDurationFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromBondBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double modifiedDurationFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return modifiedDurationFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblBondBasis);
- }
- @Override public double modifiedDurationFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromBondBasisToOptimalExercise => " +
- "Cant calc Modified Duration from Bnd Basis to optimal exercise for bonds w emb option");
- return modifiedDurationFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblBondBasis);
- }
- @Override public double modifiedDurationFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double modifiedDurationFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return modifiedDurationFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double modifiedDurationFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromCreditBasisToOptimalExercise => " +
- "Cant calc Modified Duration from Crd Basis to optimal exercise for bonds w emb option");
- return modifiedDurationFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double modifiedDurationFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double modifiedDurationFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return modifiedDurationFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double modifiedDurationFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromDiscountMarginToOptimalExercise => " +
- "Cant calc Modified Duration from Disc Marg to optimal exercise for bonds w emb option");
- return modifiedDurationFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double modifiedDurationFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromESpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double modifiedDurationFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double modifiedDurationFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromESpreadToOptimalExercise => " +
- "Cant calc Modified Duration from E Spread to optimal exercise for bonds w emb option");
- return modifiedDurationFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double modifiedDurationFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromGSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double modifiedDurationFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double modifiedDurationFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromGSpreadToOptimalExercise => " +
- "Cant calc Modified Duration from G Spread to optimal exercise for bonds w emb option");
- return modifiedDurationFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double modifiedDurationFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromISpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double modifiedDurationFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double modifiedDurationFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromISpreadToOptimalExercise => " +
- "Cant calc Modified Duration from I Spread to optimal exercise for bonds w emb option");
- return modifiedDurationFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double modifiedDurationFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromJSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double modifiedDurationFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double modifiedDurationFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromJSpreadToOptimalExercise => " +
- "Cant calc Modified Duration from J Spread to optimal exercise for bonds w emb option");
- return modifiedDurationFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double modifiedDurationFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromNSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double modifiedDurationFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double modifiedDurationFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromNSpreadToOptimalExercise => " +
- "Cant calc Modified Duration from N Spread to optimal exercise for bonds w emb option");
- return modifiedDurationFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double modifiedDurationFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromOAS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double modifiedDurationFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return modifiedDurationFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double modifiedDurationFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromOASToOptimalExercise => " +
- "Cant calc Modified Duration from OAS to optimal exercise for bonds w emb option");
- return modifiedDurationFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double modifiedDurationFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromPECS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double modifiedDurationFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return modifiedDurationFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double modifiedDurationFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromPECSToOptimalExercise => " +
- "Cant calc Modified Duration from PECS to optimal exercise for bonds w emb option");
- return modifiedDurationFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double modifiedDurationFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null == valParams || !org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception ("BondComponent::modifiedDurationFromPrice => Input inputs");
- if (null == _floaterSetting)
- return (dblPrice - priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice) + 0.0001)) /
- (dblPrice + accrued (valParams.valueDate(), csqc));
- return (dblPrice - priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- discountMarginFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice) +
- 0.0001)) / (dblPrice + accrued (valParams.valueDate(), csqc));
- }
- @Override public double modifiedDurationFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double modifiedDurationFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromPriceToOptimalExercise => Cant determine Work-out");
- return modifiedDurationFromYield (valParams, csqc, vcp, wi.date(), wi.factor(), wi.yield());
- }
- @Override public double modifiedDurationFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double modifiedDurationFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblTSYSpread);
- }
- @Override public double modifiedDurationFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromTSYSpreadToOptimalExercise => " +
- "Cant calc Modified Duration from TSY Sprd to optimal exercise for bonds w emb option");
- return modifiedDurationFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblTSYSpread);
- }
- @Override public double modifiedDurationFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double modifiedDurationFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return modifiedDurationFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double modifiedDurationFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::modifiedDurationFromYieldToOptimalExercise =>" +
- " Cant calc Modified Duration from Yield to optimal exercise for bonds w emb option");
- return modifiedDurationFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double modifiedDurationFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double modifiedDurationFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double modifiedDurationFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromYieldSpreadToOptimalExercise => " +
- "Cant calc Modified Duration from Yld Sprd to optimal exercise for bonds w emb option");
- return modifiedDurationFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblYieldSpread);
- }
- @Override public double modifiedDurationFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromZSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double modifiedDurationFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return modifiedDurationFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double modifiedDurationFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::modifiedDurationFromZSpreadToOptimalExercise => " +
- "Cant calc Modified Duration from Z Spread to optimal exercise for bonds w emb option");
- return modifiedDurationFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double nSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double nSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return nSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double nSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromASWToOptimalExercise => " +
- "Cant calc N Spread from ASW to optimal exercise for bonds w emb option");
- return nSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double nSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double nSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return nSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double nSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromBondBasisToOptimalExercise => " +
- "Cant calc N Spread from Bond Basis to optimal exercise for bonds w emb option");
- return nSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double nSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double nSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return nSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double nSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc N Spread from Credit Basis to optimal exercise for bonds w emb option");
- return nSpreadFromCreditBasis (valParams, csqs, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double nSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double nSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return nSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double nSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromDiscountMarginToOptimalExercise =>" +
- " Cant calc N Spread from Discount Margin to optimal exercise for bonds w emb option");
- return nSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double nSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double nSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return nSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double nSpreadFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromESpreadToOptimalExercise => " +
- "Cant calc N Spread from E Spread to optimal exercise for bonds w emb option");
- return nSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double nSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double nSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return nSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double nSpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromGSpreadToOptimalExercise => " +
- "Cant calc N Spread from G Spread to optimal exercise for bonds w emb option");
- return nSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double nSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double nSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return nSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double nSpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromISpreadToOptimalExercise => " +
- "Cant calc N Spread from I Spread to optimal exercise for bonds w emb option");
- return nSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double nSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double nSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return nSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double nSpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromJSpreadToOptimalExercise => " +
- "Cant calc N Spread from J Spread to optimal exercise for bonds w emb option");
- return nSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double nSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double nSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return nSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double nSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromOASToOptimalExercise => " +
- "Cant calc N Spread from OAS to optimal exercise for bonds w emb option");
- return nSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double nSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double nSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return nSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double nSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromPECSToOptimalExercise => " +
- "Cant calc N Spread from PECS to optimal exercise for bonds w emb option");
- return nSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double nSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double nSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return nSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double nSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::nSpreadFromPriceToOptimalExercise => Can't do Work-out");
- return nSpreadFromYield (valParams, csqc, vcp, wi.date(), wi.factor(), wi.yield());
- }
- @Override public double nSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double nSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return nSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double nSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc N Spread from TSY Spread to optimal exercise for bonds w emb option");
- return nSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double nSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::nSpreadFromYield => Invalid inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::nSpreadFromYield => Invalid inputs");
- return dblYield - dcFunding.proxyManifestMeasure ("SwapRate", iWorkoutDate);
- }
- @Override public double nSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double nSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromYieldToOptimalExercise => " +
- "Cant calc N Spread from Yield to optimal exercise for bonds w emb option");
- return nSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double nSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double nSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return nSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double nSpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc N Spread from Yield Spread to optimal exercise for bonds w emb option");
- return nSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double nSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return nSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double nSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return nSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double nSpreadFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::nSpreadFromZSpreadToOptimalExercise => " +
- "Cant calc N Spread from Z Spread to optimal exercise for bonds w emb option");
- return nSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double oasFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW (valParams,
- csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double oasFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return oasFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double oasFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromASWToOptimalExercise => " +
- "Cant calc OAS from ASW to optimal exercise for bonds w emb option");
- return oasFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double oasFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double oasFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return oasFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double oasFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromBondBasisToOptimalExercise => " +
- "Cant calc OAS from Bnd Basis to optimal exercise for bonds w emb option");
- return oasFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double oasFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double oasFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return oasFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double oasFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromCreditBasisToOptimalExercise => " +
- "Cant calc OAS from Credit Basis to optimal exercise for bonds w emb option");
- return oasFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double oasFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromDiscountMargin
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblDiscountMargin));
- }
- @Override public double oasFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return oasFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1., dblDiscountMargin);
- }
- @Override public double oasFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromDiscountMarginToOptimalExercise => " +
- "Cant calc OAS from Discount Margin to optimal exercise for bonds w emb option");
- return oasFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1., dblDiscountMargin);
- }
- @Override public double oasFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double oasFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return oasFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double oasFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromESpreadToOptimalExercise => " +
- "Cant calc OAS from E Spread to optimal exercise for bonds w emb option");
- return oasFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double oasFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double oasFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return oasFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double oasFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromGSpreadToOptimalExercise => " +
- "Cant calc OAS from G Spread to optimal exercise for bonds w emb option");
- return oasFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double oasFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double oasFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return oasFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double oasFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromISpreadToOptimalExercise => " +
- "Cant calc OAS from I Spread to optimal exercise for bonds w emb option");
- return oasFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double oasFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double oasFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return oasFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double oasFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromJSpreadToOptimalExercise => " +
- "Cant calc OAS from J Spread to optimal exercise for bonds w emb option");
- return oasFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double oasFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double oasFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return oasFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double oasFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromNSpreadToOptimalExercise => " +
- "Cant calc OAS from N Spread to optimal exercise for bonds w emb option");
- return oasFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double oasFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double oasFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return oasFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double oasFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromPECSToOptimalExercise => " +
- "Cant calc OAS from PECS to optimal exercise for bonds w emb option");
- return oasFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double oasFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, false).calibrateOASFromPrice (valParams, csqc, vcp,
- ZERO_OFF_OF_TREASURIES_DISCOUNT_CURVE, iWorkoutDate, dblWorkoutFactor, dblPrice);
- }
- @Override public double oasFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double oasFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::oasFromPriceToOptimalExercise - cant calc Work-out");
- return oasFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double oasFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double oasFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return oasFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double oasFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromTSYSpreadToOptimalExercise => " +
- "Cant calc OAS from TSY Sprd to optimal exercise for bonds w emb option");
- return oasFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double oasFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double oasFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return oasFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double oasFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromYieldToOptimalExercise => " +
- "Cant calc OAS from Yield to optimal exercise for bonds w emb option");
- return oasFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double oasFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double oasFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return oasFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double oasFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromYieldSpreadToOptimalExercise => " +
- "Cant calc OAS from Yield Sprd to optimal exercise for bonds w emb option");
- return oasFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double oasFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return oasFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double oasFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return oasFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double oasFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::oasFromZSpreadToOptimalExercise => " +
- "Cant calc OAS from Z Spread to optimal exercise for bonds w emb option");
- return oasFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double pecsFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double pecsFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return pecsFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double pecsFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromASWToOptimalExercise => " +
- "Cant calc PECS from ASW to optimal exercise for bonds w emb option");
- return pecsFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double pecsFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double pecsFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return pecsFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double pecsFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromBondBasisToOptimalExercise => " +
- "Cant calc PECS from Bond Basis to optimal exercise for bonds w emb option");
- return pecsFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double pecsFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double pecsFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return pecsFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double pecsFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromCreditBasisToOptimalExercise => " +
- "Cant calc PECS from Credit Basis to optimal exercise for bonds w emb option");
- return pecsFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double pecsFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromDiscountMargin
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblDiscountMargin));
- }
- @Override public double pecsFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return pecsFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1., dblDiscountMargin);
- }
- @Override public double pecsFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromDiscountMarginToOptimalExercise => " +
- "Cant calc PECS from Discount Margin to optimal exercise for bonds w emb option");
- return pecsFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1., dblDiscountMargin);
- }
- @Override public double pecsFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double pecsFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return pecsFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double pecsFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromESpreadToOptimalExercise => " +
- "Cant calc PECS from E Spread to optimal exercise for bonds w emb option");
- return pecsFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double pecsFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double pecsFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return pecsFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double pecsFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromGSpreadToOptimalExercise => " +
- "Cant calc PECS from G Spread to optimal exercise for bonds w emb option");
- return pecsFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double pecsFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double pecsFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return pecsFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double pecsFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromISpreadToOptimalExercise => " +
- "Cant calc PECS from I Spread to optimal exercise for bonds w emb option");
- return pecsFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double pecsFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double pecsFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return pecsFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double pecsFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromJSpreadToOptimalExercise => " +
- "Cant calc PECS from J Spread to optimal exercise for bonds w emb option");
- return pecsFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double pecsFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double pecsFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return pecsFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double pecsFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromNSpreadToOptimalExercise => " +
- "Cant calc PECS from N Spread to optimal exercise for bonds w emb option");
- return pecsFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double pecsFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double pecsFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return pecsFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double pecsFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromOASToOptimalExercise => " +
- "Cant calc PECS from OAS to optimal exercise for bonds w emb option");
- return pecsFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double pecsFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, false).calibrateCreditBasisFromPrice (valParams, csqc, iWorkoutDate,
- dblWorkoutFactor, dblPrice, true);
- }
- @Override public double pecsFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double pecsFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::pecsFromPriceToOptimalExercise => Cant determine Work-out");
- return pecsFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double pecsFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double pecsFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return pecsFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double pecsFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromTSYSpreadToOptimalExercise => " +
- "Cant calc PECS from TSY Spread to optimal exercise for bonds w emb option");
- return pecsFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double pecsFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double pecsFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return pecsFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double pecsFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromYieldToOptimalExercise => " +
- "Cant calc PECS from Yield to optimal exercise for bonds w emb option");
- return pecsFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double pecsFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double pecsFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return pecsFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double pecsFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromYieldSpreadToOptimalExercise => " +
- "Cant calc PECS from Yield Spread to optimal exercise for bonds w emb option");
- return pecsFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double pecsFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return pecsFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double pecsFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return pecsFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double pecsFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::pecsFromZSpreadToOptimalExercise => " +
- "Cant calc PECS from Z Spread to optimal exercise for bonds w emb option");
- return pecsFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double priceFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor)
- || !org.drip.numerical.common.NumberUtil.IsValid (dblASW))
- throw new java.lang.Exception ("BondComponent::priceFromASW => Invalid Inputs");
- int iValueDate = valParams.valueDate();
- if (iValueDate >= iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::priceFromASW => Invalid Inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::priceFromASW => Invalid Inputs");
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iValueDate, valParams,
- csqc);
- if (null == cpcm) throw new java.lang.Exception ("BondComponent::priceFromASW => No CPCM");
- return dblWorkoutFactor - 100. * dcFunding.parSwapDV01 (iWorkoutDate) * (dblASW +
- dcFunding.estimateManifestMeasure ("SwapRate", iWorkoutDate) - cpcm.rate());
- }
- @Override public double priceFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return priceFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double priceFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromASWToOptimalExercise => " +
- "Cant calc Price from ASW to optimal exercise for bonds w emb option");
- return priceFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double priceFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double priceFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return priceFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double priceFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromBondBasisToOptimalExercise => " +
- "Cant calc Price from Bond Basis to optimal exercise for bonds w emb option");
- return priceFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double priceFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return priceFromCreditCurve (valParams, csqc, iWorkoutDate, dblWorkoutFactor, dblCreditBasis,
- false);
- }
- @Override public double priceFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return priceFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double priceFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromCreditBasisToOptimalExercise => " +
- "Cant calc Price from Credit Basis to optimal exercise for bonds w emb option");
- return priceFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double priceFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double priceFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- double dblDiscountMargin)
- throws java.lang.Exception
- {
- return priceFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double priceFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromDiscountMarginToOptimalExercise => " +
- "Cant calc Price from Discount Margin to optimal exercise for bonds w emb option");
- return priceFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double priceFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double priceFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return priceFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double priceFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromESpreadToOptimalExercise => " +
- "Cant calc Price from E Spread to optimal exercise for bonds w emb option");
- return priceFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double priceFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double priceFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return priceFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double priceFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromGSpreadToOptimalExercise => " +
- "Cant calc Price from G Spread to optimal exercise for bonds w emb option");
- return priceFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double priceFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double priceFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return priceFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double priceFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromISpreadToOptimalExercise => " +
- "Cant calc Price from I Spread to optimal exercise for bonds w emb option");
- return priceFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double priceFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double priceFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return priceFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double priceFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromJSpreadToOptimalExercise => " +
- "Cant calc Price from J Spread to optimal exercise for bonds w emb option");
- return priceFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double priceFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double priceFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return priceFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double priceFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromNSpreadToOptimalExercise => " +
- "Cant calc Price from N Spread to optimal exercise for bonds w emb option");
- return priceFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double priceFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return priceFromZeroCurve (valParams, csqc, vcp, ZERO_OFF_OF_TREASURIES_DISCOUNT_CURVE,
- iWorkoutDate, dblWorkoutFactor, dblOAS);
- }
- @Override public double priceFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return priceFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double priceFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromOASToOptimalExercise => " +
- "Cant calc Price from OAS to optimal exercise for bonds w emb option");
- return priceFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double priceFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return priceFromCreditCurve (valParams, csqc, iWorkoutDate, dblWorkoutFactor, dblPECS, true);
- }
- @Override public double priceFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return priceFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double priceFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromPECSToOptimalExercise => " +
- "Cant calc Price from PECS to optimal exercise for bonds w emb option");
- return priceFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double priceFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double priceFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return priceFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double priceFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromTSYSpreadToOptimalExercise => " +
- "Cant calc Price from TSY Spread to optimal exercise for bonds w emb option");
- return priceFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double priceFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield, false);
- }
- @Override public double priceFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double priceFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromYieldToOptimalExercise => " +
- "Cannot calc exercise px from yld for bonds w emb option");
- return priceFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double priceFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double priceFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return priceFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double priceFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromYieldSpreadToOptimalExercise => " +
- "Cant calc Price from Yield Spread to optimal exercise for bonds w emb option");
- return priceFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double priceFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return priceFromZeroCurve (valParams, csqc, vcp, ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE,
- iWorkoutDate, dblWorkoutFactor, dblZSpread);
- }
- @Override public double priceFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return priceFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double priceFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::priceFromZSpreadToOptimalExercise => " +
- "Cant calc Price from Z Spread to optimal exercise for bonds w emb option");
- return priceFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double tsySpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return tsySpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double tsySpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return tsySpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double tsySpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromASWToOptimalExercise => " +
- "Cant calc TSY Spread from ASW to optimal exercise for bonds w emb option");
- return tsySpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double tsySpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double tsySpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return tsySpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double tsySpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromBondBasisToOptimalExercise => " +
- "Cant calc TSY Spread from Bond Basis to optimal exercise for bonds w emb option");
- return tsySpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double tsySpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double tsySpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return tsySpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double tsySpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc TSY Spread from Credit Basis to optimal exercise for bonds w emb option");
- return tsySpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double tsySpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double tsySpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return tsySpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double tsySpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromDiscountMarginToOptimalExercise " +
- "=> Cant calc TSY Spread from Discount Margin to optimal exercise for bonds w emb option");
- return tsySpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double tsySpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double tsySpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return tsySpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double tsySpreadFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromESpreadToOptimalExercise => " +
- "Cant calc TSY Spread from E Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double tsySpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double tsySpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double tsySpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromGSpreadToOptimalExercise => " +
- "Cant calc TSY Spread from G Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double tsySpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double tsySpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return tsySpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double tsySpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromISpreadToOptimalExercise => " +
- "Cant calc TSY Spread from I Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double tsySpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double tsySpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double tsySpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromJSpreadToOptimalExercise => " +
- "Cant calc TSY Spread from J Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double tsySpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double tsySpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double tsySpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromNSpreadToOptimalExercise => " +
- "Cant calc TSY Spread from N Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double tsySpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double tsySpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return tsySpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double tsySpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromOASToOptimalExercise => " +
- "Cant calc TSY Spread from OAS to optimal exercise for bonds w emb option");
- return tsySpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double tsySpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double tsySpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return tsySpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double tsySpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromPECSToOptimalExercise => " +
- "Cant calc TSY Spread from PECS to optimal exercise for bonds w emb option");
- return tsySpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double tsySpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double tsySpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return tsySpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double tsySpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception
- ("BondComponent::tsySpreadFromPriceToOptimalExercise => Cant determine Work-out");
- return tsySpreadFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double tsySpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return dblYield - treasuryBenchmarkYield (valParams, csqc, iWorkoutDate);
- }
- @Override public double tsySpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double tsySpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromYieldToOptimalExercise => " +
- "Cant calc TSY Spread from Yield to optimal exercise for bonds w emb option");
- return tsySpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double tsySpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromYieldSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double tsySpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double tsySpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc TSY Spread from Yield Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double tsySpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double tsySpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return tsySpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double tsySpreadFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::tsySpreadFromZSpreadToOptimalExercise => " +
- "Cant calc TSY Spread from Z Spread to optimal exercise for bonds w emb option");
- return tsySpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double yieldFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double yieldFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return yieldFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double yieldFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromASWToOptimalExercise => " +
- "Cant calc Yield from ASW to optimal exercise for bonds w emb option");
- return yieldFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double yieldFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblBondBasis))
- throw new java.lang.Exception ("BondComponent::yieldFromBondBasis => Invalid Inputs");
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromFundingCurve
- (valParams, csqc, iWorkoutDate, dblWorkoutFactor, 0.)) + dblBondBasis;
- }
- @Override public double yieldFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return yieldFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double yieldFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromBondBasisToOptimalExercise => " +
- "Cant calc Yield from Bond Basis to optimal exercise for bonds w emb option");
- return yieldFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double yieldFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double yieldFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return yieldFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double yieldFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromCreditBasisToOptimalExercise => " +
- "Cant calc Yield from Credit Basis to optimal exercise for bonds w emb option");
- return yieldFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double yieldFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc || !org.drip.numerical.common.NumberUtil.IsValid (dblWorkoutFactor)
- || !org.drip.numerical.common.NumberUtil.IsValid (dblDiscountMargin))
- throw new java.lang.Exception ("BondComponent::yieldFromDiscountMargin => Invalid inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding)
- throw new java.lang.Exception ("BondComponent::yieldFromDiscountMargin => Invalid inputs");
- int iValueDate = valParams.valueDate();
- int iFreq = freq();
- org.drip.analytics.cashflow.CompositePeriod cp = currentPeriod (iValueDate);
- if (null == cp)
- throw new java.lang.Exception ("BondComponent::yieldFromDiscountMargin => Invalid inputs");
- return null == _floaterSetting || !(cp instanceof
- org.drip.analytics.cashflow.CompositeFloatingPeriod) ? dblDiscountMargin + dcFunding.libor
- (iValueDate, ((int) (12. / (0 == iFreq ? 2 : iFreq))) + "M") : dblDiscountMargin + indexRate
- (iValueDate, csqc, (org.drip.analytics.cashflow.CompositeFloatingPeriod) currentPeriod
- (iValueDate));
- }
- @Override public double yieldFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return yieldFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double yieldFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return yieldFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double yieldFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZeroCurve
- (valParams, csqc, vcp, ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE, iWorkoutDate,
- dblWorkoutFactor, dblESpread));
- }
- @Override public double yieldFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return yieldFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double yieldFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromESpreadToOptimalExercise => " +
- "Cant calc Yield from E Spread to optimal exercise for bonds w emb option");
- return yieldFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double yieldFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblGSpread) || valParams.valueDate() >= iWorkoutDate
- || null == csqc)
- throw new java.lang.Exception ("BondComponent::yieldFromGSpread => Invalid Inputs");
- org.drip.state.govvie.GovvieCurve gc = csqc.govvieState (govvieLabel());
- if (null == gc) throw new java.lang.Exception ("BondComponent::yieldFromGSpread => Invalid Inputs");
- return gc.yield (iWorkoutDate) + dblGSpread;
- }
- @Override public double yieldFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return yieldFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double yieldFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromGSpreadToOptimalExercise => " +
- "Cant calc Yield from G Spread to optimal exercise for bonds w emb option");
- return yieldFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double yieldFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null == valParams || valParams.valueDate() >= iWorkoutDate || null == csqc ||
- !org.drip.numerical.common.NumberUtil.IsValid (dblISpread))
- throw new java.lang.Exception ("BondComponent::yieldFromISpread => Invalid Inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dc = csqc.fundingState
- (org.drip.state.identifier.FundingLabel.Standard (payCurrency()));
- if (null == dc) throw new java.lang.Exception ("BondComponent::yieldFromISpread => Invalid Inputs");
- return dc.estimateManifestMeasure ("SwapRate", iWorkoutDate) + dblISpread;
- }
- @Override public double yieldFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return yieldFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double yieldFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return yieldFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double yieldFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null == valParams || valParams.valueDate() >= iWorkoutDate || null == csqc ||
- !org.drip.numerical.common.NumberUtil.IsValid (dblJSpread))
- throw new java.lang.Exception ("BondComponent::yieldFromJSpread => Invalid Inputs");
- org.drip.state.govvie.GovvieCurve gc = csqc.govvieState (govvieLabel());
- if (null == gc) throw new java.lang.Exception ("BondComponent::yieldFromJSpread => Invalid Inputs");
- return dblJSpread + gc.yield (weightedAverageMaturityDate (valParams, csqc, iWorkoutDate,
- dblWorkoutFactor));
- }
- @Override public double yieldFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return yieldFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double yieldFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return yieldFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double yieldFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null == valParams || valParams.valueDate() >= iWorkoutDate || null == csqc ||
- !org.drip.numerical.common.NumberUtil.IsValid (dblNSpread))
- throw new java.lang.Exception ("BondComponent::yieldFromNSpread => Invalid Inputs");
- org.drip.state.discount.MergedDiscountForwardCurve dc = csqc.fundingState
- (org.drip.state.identifier.FundingLabel.Standard (payCurrency()));
- if (null == dc) throw new java.lang.Exception ("BondComponent::yieldFromNSpread => Invalid Inputs");
- return dc.proxyManifestMeasure ("SwapRate", iWorkoutDate) + dblNSpread;
- }
- @Override public double yieldFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return yieldFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double yieldFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return yieldFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double yieldFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return yieldFromOAS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS (valParams,
- csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double yieldFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return yieldFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double yieldFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromOASToOptimalExercise => " +
- "Cant calc Yield from OAS to optimal exercise for bonds w emb option");
- return yieldFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double yieldFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double yieldFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return yieldFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double yieldFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromPECSToOptimalExercise => " +
- "Cant calc Yield from PECS to optimal exercise for bonds w emb option");
- return yieldFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double yieldFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, false).calibrateYieldFromPrice (valParams, csqc, vcp, iWorkoutDate,
- dblWorkoutFactor, dblPrice);
- }
- @Override public double yieldFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yieldFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yieldFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception ("BondComponent::yieldFromPriceToOptimalExercise => " +
- "Cant calc Workout from Price to optimal exercise for bonds w emb option");
- return wi.yield();
- }
- @Override public double yieldFromPriceTC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, true).calibrateYieldFromPrice (valParams, csqc, vcp, iWorkoutDate,
- dblWorkoutFactor, dblPrice);
- }
- @Override public double yieldFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblTSYSpread) || valParams.valueDate() >=
- iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::calcYieldFromTSYSpread => Invalid Inputs");
- return treasuryBenchmarkYield (valParams, csqc, iWorkoutDate) + dblTSYSpread;
- }
- @Override public double yieldFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yieldFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yieldFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromTSYSpreadToOptimalExercise => " +
- "Cant calc Yield from TSY Spread to optimal exercise for bonds w emb option");
- return yieldFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yieldFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblYieldSpread) || valParams.valueDate() >=
- iWorkoutDate)
- throw new java.lang.Exception ("BondComponent::yieldFromYieldSpread => Invalid Inputs");
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromFundingCurve
- (valParams, csqc, iWorkoutDate, dblWorkoutFactor, 0.)) + dblYieldSpread;
- }
- @Override public double yieldFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return yieldFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double yieldFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromYieldSpreadToOptimalExercise => " +
- "Cant calc Yield from Yield Spread to optimal exercise for bonds w emb option");
- return yieldFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double yieldFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromZeroCurve
- (valParams, csqc, vcp, ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE, iWorkoutDate,
- dblWorkoutFactor, dblZSpread));
- }
- @Override public double yieldFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return yieldFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double yieldFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldFromZSpreadToOptimalExercise => " +
- "Cant calc Yield from Z Spread to optimal exercise for bonds w emb option");
- return yieldFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double yield01FromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double yield01FromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return yield01FromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double yield01FromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromASWToOptimalExercise => " +
- "Cant calc Yield from ASW to optimal exercise for bonds w emb option");
- return yield01FromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double yield01FromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double yield01FromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return yieldFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double yield01FromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromBondBasisToOptimalExercise => " +
- "Cant calc Yield01 from Bond Basis to optimal exercise for bonds w emb option");
- return yield01FromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double yield01FromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double yield01FromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return yield01FromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double yield01FromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromCreditBasisToOptimalExercise => " +
- "Cant calc Yield01 from Credit Basis to optimal exercise for bonds w emb option");
- return yield01FromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double yield01FromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double yield01FromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return yield01FromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double yield01FromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromDiscountMarginToOptimalExercise =>" +
- " Cant calc Yield01 from Discount Margin to optimal exercise for bonds w emb option");
- return yield01FromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double yield01FromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double yield01FromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return yield01FromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double yield01FromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromESpreadToOptimalExercise => " +
- "Cant calc Yield01 from E Spread to optimal exercise for bonds w emb option");
- return yield01FromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double yield01FromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double yield01FromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return yield01FromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double yield01FromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromGSpreadToOptimalExercise => " +
- "Cant calc Yield01 from G Spread to optimal exercise for bonds w emb option");
- return yield01FromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double yield01FromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double yield01FromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return yield01FromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double yield01FromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromISpreadToOptimalExercise => " +
- "Cant calc Yield01 from I Spread to optimal exercise for bonds w emb option");
- return yield01FromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double yield01FromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double yield01FromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return yield01FromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double yield01FromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromJSpreadToOptimalExercise => " +
- "Cant calc Yield01 from J Spread to optimal exercise for bonds w emb option");
- return yield01FromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double yield01FromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double yield01FromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return yield01FromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double yield01FromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromOASToOptimalExercise => " +
- "Cant calc Yield01 from OAS to optimal exercise for bonds w emb option");
- return yield01FromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double yield01FromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double yield01FromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return yield01FromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double yield01FromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromPECSToOptimalExercise => " +
- "Cant calc Yield01 from PECS to optimal exercise for bonds w emb option");
- return yield01FromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double yield01FromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double yield01FromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yield01FromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yield01FromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception ("BondComponent::yield01FromPriceToOptimalExercise => " +
- "Cant calc Workout from Price to optimal exercise for bonds w emb option");
- return yield01FromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double yield01FromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double yield01FromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yield01FromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yield01FromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromTSYSpreadToOptimalExercise => " +
- "Cant calc Yield01 from TSY Spread to optimal exercise for bonds w emb option");
- return yield01FromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yield01FromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::yield01FromYield => Invalid Inputs");
- return priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield) -
- priceFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield + 0.0001);
- }
- @Override public double yield01FromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double yield01FromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromYieldToOptimalExercise => " +
- "Cant calc Yield01 from Yield to optimal exercise for bonds w emb option");
- return yield01FromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double yield01FromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double yield01FromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return yield01FromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double yield01FromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromYieldSpreadToOptimalExercise => " +
- "Cant calc Yield01 from Yield Spread to optimal exercise for bonds w emb option");
- return yield01FromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double yield01FromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return yield01FromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double yield01FromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return yield01FromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double yield01FromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yield01FromZSpreadToOptimalExercise => " +
- "Cant calc Yield01 from Z Spread to optimal exercise for bonds w emb option");
- return yield01FromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double yieldSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double yieldSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return yieldSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double yieldSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromASWToOptimalExercise => " +
- "Cant calc Yield Spread from ASW to optimal exercise for bonds w emb option");
- return yieldSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double yieldSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return yieldSpreadFromBondBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromBondBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double yieldSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return yieldSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double yieldSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromBondBasisToOptimalExercise => "
- + "Cant calc Yield Spread from Bond Basis to optimal exercise for bonds w emb option");
- return yieldSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double yieldSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return yieldSpreadFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromCreditBasis (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double yieldSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return yieldSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double yieldSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromCreditBasisToOptimalExercise " +
- "=> Cant calc Yield Spread from Credit Basis to optimal exercise for bonds w emb option");
- return yieldSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblCreditBasis);
- }
- @Override public double yieldSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return yieldSpreadFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double yieldSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return yieldSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double yieldSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::yieldSpreadFromDiscountMarginToOptimalExercise => " +
- "Cant calc Yield Spread from Disc Margin to optimal exercise for bonds w emb option");
- return yieldSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double yieldSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblESpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromESpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblESpread));
- }
- @Override public double yieldSpreadFromESpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double yieldSpreadFromESpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblESpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromESpreadToOptimalExercise => " +
- "Cant calc Yield Spread from E Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromESpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblESpread);
- }
- @Override public double yieldSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double yieldSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double yieldSpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromGSpreadToOptimalExercise => " +
- "Cant calc Yield Spread from G Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double yieldSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double yieldSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double yieldSpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromISpreadToOptimalExercise => " +
- "Cant calc Yield Spread from I Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double yieldSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double yieldSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double yieldSpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromJSpreadToOptimalExercise => " +
- "Cant calc Yield Spread from J Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double yieldSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double yieldSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double yieldSpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromNSpreadToOptimalExercise => " +
- "Cant calc Yield Spread from N Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double yieldSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return yieldSpreadFromOAS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double yieldSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return yieldSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double yieldSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromOASToOptimalExercise => " +
- "Cant calc Yield Spread from OAS to optimal exercise for bonds w emb option");
- return yieldSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double yieldSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return yieldSpreadFromPECS (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double yieldSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return yieldSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double yieldSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromPECSToOptimalExercise => " +
- "Cant calc Yield Spread from PECS to optimal exercise for bonds w emb option");
- return yieldSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double yieldSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromPrice
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice));
- }
- @Override public double yieldSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return yieldSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double yieldSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromPriceToOptimalExercise => " +
- "Cant calc Workout from Price to optimal exercise for bonds w emb option");
- return yieldSpreadFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double yieldSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- yieldFromTSYSpread (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double yieldSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double yieldSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc Yield Spread from TSY Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double yieldSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblYield))
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromYield => Invalid Inputs");
- return dblYield - yieldFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromFundingCurve (valParams, csqc, iWorkoutDate, dblWorkoutFactor, 0.));
- }
- @Override public double yieldSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double yieldSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromYieldToOptimalExercise => " +
- "Cant calc Yield Spread from Yield to optimal exercise for bonds w emb option");
- return yieldSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double yieldSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromYield (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, yieldFromZSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblZSpread));
- }
- @Override public double yieldSpreadFromZSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- return yieldSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double yieldSpreadFromZSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblZSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::yieldSpreadFromZSpreadToOptimalExercise => " +
- "Cant calc Yield Spread from Z Spread to optimal exercise for bonds w emb option");
- return yieldSpreadFromZSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblZSpread);
- }
- @Override public double zSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblASW)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromASW
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblASW));
- }
- @Override public double zSpreadFromASW (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- return zSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double zSpreadFromASWToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblASW)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromASWToOptimalExercise => " +
- "Cant calc Z Spread from ASW to optimal exercise for bonds w emb option");
- return zSpreadFromASW (valParams, csqc, vcp, maturityDate().julian(), 1., dblASW);
- }
- @Override public double zSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromBondBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblBondBasis));
- }
- @Override public double zSpreadFromBondBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- return zSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double zSpreadFromBondBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblBondBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromBondBasisToOptimalExercise => " +
- "Cant calc Z Spread from Bond Basis to optimal exercise for bonds w emb option");
- return zSpreadFromBondBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblBondBasis);
- }
- @Override public double zSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromCreditBasis
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblCreditBasis));
- }
- @Override public double zSpreadFromCreditBasis (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return zSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double zSpreadFromCreditBasisToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromCreditBasisToOptimalExercise => " +
- "Cant calc Z Spread from Credit Basis to optimal exercise for bonds w emb option");
- return zSpreadFromCreditBasis (valParams, csqc, vcp, maturityDate().julian(), 1., dblCreditBasis);
- }
- @Override public double zSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- priceFromDiscountMargin (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor,
- dblDiscountMargin));
- }
- @Override public double zSpreadFromDiscountMargin (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- return zSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double zSpreadFromDiscountMarginToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblDiscountMargin)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception
- ("BondComponent::zSpreadFromDiscountMarginToOptimalExercise => " +
- "Cant calc Z Spread from Discount Margin to optimal exercise for bonds w emb option");
- return zSpreadFromDiscountMargin (valParams, csqc, vcp, maturityDate().julian(), 1.,
- dblDiscountMargin);
- }
- @Override public double zSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromGSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblGSpread));
- }
- @Override public double zSpreadFromGSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- return zSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double zSpreadFromGSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblGSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromGSpreadToOptimalExercise => " +
- "Cant calc Z Spread from G Spread to optimal exercise for bonds w emb option");
- return zSpreadFromGSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblGSpread);
- }
- @Override public double zSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblISpread)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromISpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblISpread));
- }
- @Override public double zSpreadFromISpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- return zSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double zSpreadFromISpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblISpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromISpreadToOptimalExercise => " +
- "Cant calc Z Spread from I Spread to optimal exercise for bonds w emb option");
- return zSpreadFromISpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblISpread);
- }
- @Override public double zSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromJSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblJSpread));
- }
- @Override public double zSpreadFromJSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- return zSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double zSpreadFromJSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblJSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromJSpreadToOptimalExercise => " +
- "Cant calc Z Spread from J Spread to optimal exercise for bonds w emb option");
- return zSpreadFromJSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblJSpread);
- }
- @Override public double zSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromNSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblNSpread));
- }
- @Override public double zSpreadFromNSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- return zSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double zSpreadFromNSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblNSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromNSpreadToOptimalExercise => " +
- "Cant calc Z Spread from N Spread to optimal exercise for bonds w emb option");
- return zSpreadFromNSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblNSpread);
- }
- @Override public double zSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblOAS)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromOAS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblOAS));
- }
- @Override public double zSpreadFromOAS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- return zSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double zSpreadFromOASToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblOAS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromOASToOptimalExercise => " +
- "Cant calc Z Spread from OAS to optimal exercise for bonds w emb option");
- return zSpreadFromOAS (valParams, csqc, vcp, maturityDate().julian(), 1., dblOAS);
- }
- @Override public double zSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPECS)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromPECS
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblPECS));
- }
- @Override public double zSpreadFromPECS (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- return zSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double zSpreadFromPECSToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPECS)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromPECSToOptimalExercise => " +
- "Cant calc Z Spread from PECS to optimal exercise for bonds w emb option");
- return zSpreadFromPECS (valParams, csqc, vcp, maturityDate().julian(), 1., dblPECS);
- }
- @Override public double zSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- return new BondCalibrator (this, false).calibrateZSpreadFromPrice (valParams, csqc, vcp,
- ZERO_OFF_OF_RATES_INSTRUMENTS_DISCOUNT_CURVE, iWorkoutDate, dblWorkoutFactor, dblPrice);
- }
- @Override public double zSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, maturityDate().julian(), 1., dblPrice);
- }
- @Override public double zSpreadFromPriceToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblPrice)
- throws java.lang.Exception
- {
- org.drip.param.valuation.WorkoutInfo wi = exerciseYieldFromPrice (valParams, csqc, vcp, dblPrice);
- if (null == wi)
- throw new java.lang.Exception ("BondComponent::zSpreadFromPriceToOptimalExercise => " +
- "Cant calc Workout from Price to optimal exercise for bonds w emb option");
- return zSpreadFromPrice (valParams, csqc, vcp, wi.date(), wi.factor(), dblPrice);
- }
- @Override public double zSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromTSYSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblTSYSpread));
- }
- @Override public double zSpreadFromTSYSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- return zSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double zSpreadFromTSYSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblTSYSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromTSYSpreadToOptimalExercise => " +
- "Cant calc Z Spread from TSY Spread to optimal exercise for bonds w emb option");
- return zSpreadFromTSYSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblTSYSpread);
- }
- @Override public double zSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYield)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYield
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYield));
- }
- @Override public double zSpreadFromYield (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- return zSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double zSpreadFromYieldToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYield)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromYieldToOptimalExercise => " +
- "Cant calc Z Spread from Yield to optimal exercise for bonds w emb option");
- return zSpreadFromYield (valParams, csqc, vcp, maturityDate().julian(), 1., dblYield);
- }
- @Override public double zSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return zSpreadFromPrice (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, priceFromYieldSpread
- (valParams, csqc, vcp, iWorkoutDate, dblWorkoutFactor, dblYieldSpread));
- }
- @Override public double zSpreadFromYieldSpread (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- return zSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public double zSpreadFromYieldSpreadToOptimalExercise (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblYieldSpread)
- throws java.lang.Exception
- {
- if (null != _eosCall || null != _eosPut)
- throw new java.lang.Exception ("BondComponent::zSpreadFromYieldSpreadToOptimalExercise => " +
- "Cant calc Z Spread from Yield Spread to optimal exercise for bonds w emb option");
- return zSpreadFromYieldSpread (valParams, csqc, vcp, maturityDate().julian(), 1., dblYieldSpread);
- }
- @Override public org.drip.analytics.output.BondRVMeasures standardMeasures (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.param.valuation.WorkoutInfo wi,
- final double dblPrice)
- {
- if (null == valParams || null == csqs || null == wi || !org.drip.numerical.common.NumberUtil.IsValid
- (dblPrice))
- return null;
- int iWorkoutDate = wi.date();
- double dblWorkoutYield = wi.yield();
- double dblWorkoutFactor = wi.factor();
- if (valParams.valueDate() >= iWorkoutDate) return null;
- double dblASW = java.lang.Double.NaN;
- double dblPECS = java.lang.Double.NaN;
- double dblGSpread = java.lang.Double.NaN;
- double dblISpread = java.lang.Double.NaN;
- double dblYield01 = java.lang.Double.NaN;
- double dblZSpread = java.lang.Double.NaN;
- double dblOASpread = java.lang.Double.NaN;
- double dblBondBasis = java.lang.Double.NaN;
- double dblConvexity = java.lang.Double.NaN;
- double dblTSYSpread = java.lang.Double.NaN;
- double dblCreditBasis = java.lang.Double.NaN;
- double dblDiscountMargin = java.lang.Double.NaN;
- double dblMacaulayDuration = java.lang.Double.NaN;
- double dblModifiedDuration = java.lang.Double.NaN;
- try {
- dblDiscountMargin = discountMarginFromYield (valParams, csqs, vcp, iWorkoutDate,
- dblWorkoutFactor, dblWorkoutYield);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- if (null == _floaterSetting) {
- try {
- dblZSpread = zSpreadFromPrice (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- }
- try {
- dblOASpread = oasFromPrice (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblISpread = iSpreadFromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblWorkoutYield);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblGSpread = gSpreadFromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblWorkoutYield);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblTSYSpread = tsySpreadFromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblWorkoutYield);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblMacaulayDuration = macaulayDurationFromPrice (valParams, csqs, vcp, iWorkoutDate,
- dblWorkoutFactor, dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblModifiedDuration = modifiedDurationFromPrice (valParams, csqs, vcp, iWorkoutDate,
- dblWorkoutFactor, dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblASW = aswFromPrice (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblConvexity = convexityFromPrice (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblCreditBasis = creditBasisFromPrice (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- // dblPECS = pecsFromPrice (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor, dblPrice);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblBondBasis = bondBasisFromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblWorkoutYield);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- dblYield01 = yield01FromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblWorkoutYield);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- try {
- return new org.drip.analytics.output.BondRVMeasures (dblPrice, dblBondBasis, dblZSpread,
- dblGSpread, dblISpread, dblOASpread, dblTSYSpread, dblDiscountMargin, dblASW, dblCreditBasis,
- dblPECS, dblYield01, dblModifiedDuration, dblMacaulayDuration, dblConvexity, wi);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- return null;
- }
- @Override public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> value (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp)
- {
- if (null == valParams || null == csqs) return null;
- if (null != pricerParams) {
- org.drip.param.definition.CalibrationParams calibParams = pricerParams.calibParams();
- if (null != calibParams) {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapCalibMeasures =
- calibMeasures (valParams, pricerParams, csqs, vcp);
- if (null != mapCalibMeasures && mapCalibMeasures.containsKey (calibParams.measure()))
- return mapCalibMeasures;
- }
- }
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapMeasures = fairMeasures
- (valParams, pricerParams, csqs, vcp);
- if (null == mapMeasures) return null;
- java.lang.String strName = name();
- org.drip.param.definition.ProductQuote pq = csqs.productQuote (strName);
- if (null == pq) return mapMeasures;
- int iMaturityDate = maturityDate().julian();
- if (null == _floaterSetting) {
- double dblParSpread = (mapMeasures.get ("FairDirtyPV") - mapMeasures.get ("FairParPV") -
- mapMeasures.get ("FairPrincipalPV")) / mapMeasures.get ("FairDirtyDV01");
- mapMeasures.put ("ParSpread", dblParSpread);
- mapMeasures.put ("FairParSpread", dblParSpread);
- } else {
- double dblCleanIndexCouponPV = mapMeasures.containsKey ("FairRiskyCleanIndexCouponPV") ?
- mapMeasures.get ("FairRiskyCleanIndexCouponPV") : mapMeasures.get
- ("FairRisklessCleanIndexCouponPV");
- double dblZeroDiscountMargin = (mapMeasures.get ("FairCleanPV") - mapMeasures.get ("FairParPV") -
- dblCleanIndexCouponPV - mapMeasures.get ("FairPrincipalPV")) / mapMeasures.get
- ("FairCleanDV01");
- mapMeasures.put ("ZeroDiscountMargin", dblZeroDiscountMargin);
- mapMeasures.put ("FairZeroDiscountMargin", dblZeroDiscountMargin);
- }
- org.drip.param.valuation.WorkoutInfo wiMarket = null;
- if (pq.containsQuote ("Price")) {
- double dblMarketPrice = pq.quote ("Price").value ("mid");
- mapMeasures.put ("MarketInputType=CleanPrice", dblMarketPrice);
- wiMarket = exerciseYieldFromPrice (valParams, csqs, vcp, dblMarketPrice);
- } else if (pq.containsQuote ("CleanPrice")) {
- double dblCleanMarketPrice = pq.quote ("CleanPrice").value ("mid");
- mapMeasures.put ("MarketInputType=CleanPrice", dblCleanMarketPrice);
- wiMarket = exerciseYieldFromPrice (valParams, csqs, vcp, dblCleanMarketPrice);
- } else if (pq.containsQuote ("QuotedMargin")) {
- double dblQuotedMargin = pq.quote ("QuotedMargin").value ("mid");
- mapMeasures.put ("MarketInputType=QuotedMargin", dblQuotedMargin);
- try {
- wiMarket = exerciseYieldFromPrice (valParams, csqs, vcp, priceFromDiscountMargin (valParams,
- csqs, vcp, dblQuotedMargin));
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- }
- } else if (pq.containsQuote ("DirtyPrice")) {
- try {
- double dblDirtyMarketPrice = pq.quote ("DirtyPrice").value ("mid");
- mapMeasures.put ("MarketInputType=DirtyPrice", dblDirtyMarketPrice);
- wiMarket = exerciseYieldFromPrice (valParams, csqs, vcp, dblDirtyMarketPrice - accrued
- (valParams.valueDate(), csqs));
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- } else if (pq.containsQuote ("TSYSpread")) {
- try {
- double dblTSYSpread = pq.quote ("TSYSpread").value ("mid");
- mapMeasures.put ("MarketInputType=TSYSpread", dblTSYSpread);
- wiMarket = new org.drip.param.valuation.WorkoutInfo (iMaturityDate, treasuryBenchmarkYield
- (valParams, csqs, iMaturityDate) + dblTSYSpread, 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- } else if (pq.containsQuote ("Yield")) {
- try {
- double dblYield = pq.quote ("Yield").value ("mid");
- mapMeasures.put ("MarketInputType=Yield", dblYield);
- wiMarket = new org.drip.param.valuation.WorkoutInfo (iMaturityDate, dblYield, 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- } else if (pq.containsQuote ("ZSpread")) {
- try {
- double dblZSpread = pq.quote ("ZSpread").value ("mid");
- mapMeasures.put ("MarketInputType=ZSpread", dblZSpread);
- wiMarket = new org.drip.param.valuation.WorkoutInfo (iMaturityDate, yieldFromZSpread
- (valParams, csqs, vcp, dblZSpread), 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- } else if (pq.containsQuote ("ISpread")) {
- try {
- double dblISpread = pq.quote ("ISpread").value ("mid");
- mapMeasures.put ("MarketInputType=ISpread", dblISpread);
- wiMarket = new org.drip.param.valuation.WorkoutInfo (iMaturityDate, yieldFromISpread
- (valParams, csqs, vcp, dblISpread), 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- } else if (pq.containsQuote ("CreditBasis")) {
- try {
- double dblCreditBasis = pq.quote ("CreditBasis").value ("mid");
- mapMeasures.put ("MarketInputType=CreditBasis", dblCreditBasis);
- wiMarket = new org.drip.param.valuation.WorkoutInfo (iMaturityDate, yieldFromCreditBasis
- (valParams, csqs, vcp, dblCreditBasis), 1.,
- org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- } else if (pq.containsQuote ("PECS")) {
- try {
- double dblCreditBasis = pq.quote ("PECS").value ("mid");
- mapMeasures.put ("MarketInputType=PECS", dblCreditBasis);
- wiMarket = new org.drip.param.valuation.WorkoutInfo (iMaturityDate, yieldFromPECS (valParams,
- csqs, vcp, dblCreditBasis), 1., org.drip.param.valuation.WorkoutInfo.WO_TYPE_MATURITY);
- } catch (java.lang.Exception e) {
- if (!s_bSuppressErrors) e.printStackTrace();
- wiMarket = null;
- }
- }
- if (null != wiMarket) {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapWorkoutMeasures =
- marketMeasures (valParams, pricerParams, csqs, vcp, wiMarket);
- if (null == _floaterSetting) {
- double dblParSpread = (mapWorkoutMeasures.get ("Price") - mapMeasures.get ("FairParPV") -
- mapMeasures.get ("FairPrincipalPV")) / mapMeasures.get ("FairCleanDV01");
- mapMeasures.put ("ParSpread", dblParSpread);
- mapMeasures.put ("MarketParSpread", dblParSpread);
- } else {
- double dblCleanIndexCouponPV = mapMeasures.containsKey ("FairRiskyCleanIndexCouponPV") ?
- mapMeasures.get ("FairRiskyCleanIndexCouponPV") : mapMeasures.get
- ("FairRisklessCleanIndexCouponPV");
- double dblZeroDiscountMargin = (mapMeasures.get ("Price") - mapMeasures.get ("FairParPV") -
- dblCleanIndexCouponPV - mapMeasures.get ("FairPrincipalPV")) / mapMeasures.get
- ("FairCleanDV01");
- mapMeasures.put ("ZeroDiscountMargin", dblZeroDiscountMargin);
- mapMeasures.put ("MarketZeroDiscountMargin", dblZeroDiscountMargin);
- }
- org.drip.numerical.common.CollectionUtil.MergeWithMain (mapMeasures, mapWorkoutMeasures);
- org.drip.state.credit.CreditCurve cc = csqs.creditState (creditLabel());
- if (null != mapMeasures.get ("FairYield")) {
- org.drip.param.market.CurveSurfaceQuoteContainer csqsMarket =
- org.drip.param.creator.MarketParamsBuilder.Create
- ((org.drip.state.discount.MergedDiscountForwardCurve) csqs.fundingState
- (fundingLabel()).parallelShiftQuantificationMetric (wiMarket.yield() -
- mapMeasures.get ("FairYield")), csqs.govvieState (govvieLabel()), cc,
- strName, csqs.productQuote (strName), csqs.quoteMap(), csqs.fixings());
- if (null != csqsMarket) {
- org.drip.analytics.output.BondWorkoutMeasures bwmMarket = workoutMeasures (valParams,
- pricerParams, csqsMarket, wiMarket.date(), wiMarket.factor());
- if (null != bwmMarket) {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapMarketMeasures
- = bwmMarket.toMap ("");
- org.drip.numerical.common.CollectionUtil.MergeWithMain (mapMarketMeasures,
- org.drip.numerical.common.CollectionUtil.PrefixKeys (mapMarketMeasures, "Market"));
- org.drip.numerical.common.CollectionUtil.MergeWithMain (mapMeasures, mapMarketMeasures);
- }
- }
- }
- }
- return mapMeasures;
- }
- @Override public java.util.Set<java.lang.String> measureNames()
- {
- java.util.Set<java.lang.String> setstrMeasureNames = new java.util.TreeSet<java.lang.String>();
- setstrMeasureNames.add ("Accrued");
- setstrMeasureNames.add ("Accrued01");
- setstrMeasureNames.add ("AssetSwapSpread");
- setstrMeasureNames.add ("ASW");
- setstrMeasureNames.add ("BondBasis");
- setstrMeasureNames.add ("CleanCouponPV");
- setstrMeasureNames.add ("CleanDV01");
- setstrMeasureNames.add ("CleanIndexCouponPV");
- setstrMeasureNames.add ("CleanPrice");
- setstrMeasureNames.add ("CleanPV");
- setstrMeasureNames.add ("Convexity");
- setstrMeasureNames.add ("CreditRisklessParPV");
- setstrMeasureNames.add ("CreditRisklessPrincipalPV");
- setstrMeasureNames.add ("CreditRiskyParPV");
- setstrMeasureNames.add ("CreditRiskyPrincipalPV");
- setstrMeasureNames.add ("CreditBasis");
- setstrMeasureNames.add ("DiscountMargin");
- setstrMeasureNames.add ("DefaultExposure");
- setstrMeasureNames.add ("DefaultExposureNoRec");
- setstrMeasureNames.add ("DirtyCouponPV");
- setstrMeasureNames.add ("DirtyDV01");
- setstrMeasureNames.add ("DirtyIndexCouponPV");
- setstrMeasureNames.add ("DirtyPrice");
- setstrMeasureNames.add ("DirtyPV");
- setstrMeasureNames.add ("Duration");
- setstrMeasureNames.add ("DV01");
- setstrMeasureNames.add ("ExpectedRecovery");
- setstrMeasureNames.add ("FairAccrued");
- setstrMeasureNames.add ("FairAccrued01");
- setstrMeasureNames.add ("FairAssetSwapSpread");
- setstrMeasureNames.add ("FairASW");
- setstrMeasureNames.add ("FairBondBasis");
- setstrMeasureNames.add ("FairCleanCouponPV");
- setstrMeasureNames.add ("FairCleanDV01");
- setstrMeasureNames.add ("FairCleanIndexCouponPV");
- setstrMeasureNames.add ("FairCleanPrice");
- setstrMeasureNames.add ("FairCleanPV");
- setstrMeasureNames.add ("FairConvexity");
- setstrMeasureNames.add ("FairCreditBasis");
- setstrMeasureNames.add ("FairCreditRisklessParPV");
- setstrMeasureNames.add ("FairCreditRisklessPrincipalPV");
- setstrMeasureNames.add ("FairCreditRiskyParPV");
- setstrMeasureNames.add ("FairCreditRiskyPrincipalPV");
- setstrMeasureNames.add ("FairDefaultExposure");
- setstrMeasureNames.add ("FairDefaultExposureNoRec");
- setstrMeasureNames.add ("FairDirtyCouponPV");
- setstrMeasureNames.add ("FairDirtyDV01");
- setstrMeasureNames.add ("FairDirtyIndexCouponPV");
- setstrMeasureNames.add ("FairDirtyPrice");
- setstrMeasureNames.add ("FairDirtyPV");
- setstrMeasureNames.add ("FairDiscountMargin");
- setstrMeasureNames.add ("FairDuration");
- setstrMeasureNames.add ("FairDV01");
- setstrMeasureNames.add ("FairExpectedRecovery");
- setstrMeasureNames.add ("FairFirstIndexRate");
- setstrMeasureNames.add ("FairGSpread");
- setstrMeasureNames.add ("FairISpread");
- setstrMeasureNames.add ("FairLossOnInstantaneousDefault");
- setstrMeasureNames.add ("FairMacaulayDuration");
- setstrMeasureNames.add ("FairModifiedDuration");
- setstrMeasureNames.add ("FairOAS");
- setstrMeasureNames.add ("FairOASpread");
- setstrMeasureNames.add ("FairOptionAdjustedSpread");
- setstrMeasureNames.add ("FairParPV");
- setstrMeasureNames.add ("FairParSpread");
- setstrMeasureNames.add ("FairPECS");
- setstrMeasureNames.add ("FairPrice");
- setstrMeasureNames.add ("FairPrincipalPV");
- setstrMeasureNames.add ("FairPV");
- setstrMeasureNames.add ("FairRecoveryPV");
- setstrMeasureNames.add ("FairRisklessCleanCouponPV");
- setstrMeasureNames.add ("FairRisklessCleanDV01");
- setstrMeasureNames.add ("FairRisklessCleanIndexCouponPV");
- setstrMeasureNames.add ("FairRisklessCleanPV");
- setstrMeasureNames.add ("FairRisklessDirtyCouponPV");
- setstrMeasureNames.add ("FairRisklessDirtyDV01");
- setstrMeasureNames.add ("FairRisklessDirtyIndexCouponPV");
- setstrMeasureNames.add ("FairRisklessDirtyPV");
- setstrMeasureNames.add ("FairRiskyCleanCouponPV");
- setstrMeasureNames.add ("FairRiskyCleanDV01");
- setstrMeasureNames.add ("FairRiskyCleanIndexCouponPV");
- setstrMeasureNames.add ("FairRiskyCleanPV");
- setstrMeasureNames.add ("FairRiskyDirtyCouponPV");
- setstrMeasureNames.add ("FairRiskyDirtyDV01");
- setstrMeasureNames.add ("FairRiskyDirtyIndexCouponPV");
- setstrMeasureNames.add ("FairRiskyDirtyPV");
- setstrMeasureNames.add ("FairTSYSpread");
- setstrMeasureNames.add ("FairWorkoutDate");
- setstrMeasureNames.add ("FairWorkoutFactor");
- setstrMeasureNames.add ("FairWorkoutType");
- setstrMeasureNames.add ("FairWorkoutYield");
- setstrMeasureNames.add ("FairYield");
- setstrMeasureNames.add ("FairYield01");
- setstrMeasureNames.add ("FairYieldBasis");
- setstrMeasureNames.add ("FairYieldSpread");
- setstrMeasureNames.add ("FairZeroDiscountMargin");
- setstrMeasureNames.add ("FairZSpread");
- setstrMeasureNames.add ("FirstCouponRate");
- setstrMeasureNames.add ("FirstIndexRate");
- setstrMeasureNames.add ("GSpread");
- setstrMeasureNames.add ("ISpread");
- setstrMeasureNames.add ("LossOnInstantaneousDefault");
- setstrMeasureNames.add ("MacaulayDuration");
- setstrMeasureNames.add ("MarketAccrued");
- setstrMeasureNames.add ("MarketAccrued01");
- setstrMeasureNames.add ("MarketCleanCouponPV");
- setstrMeasureNames.add ("MarketCleanDV01");
- setstrMeasureNames.add ("MarketCleanIndexCouponPV");
- setstrMeasureNames.add ("MarketCleanPrice");
- setstrMeasureNames.add ("MarketCleanPV");
- setstrMeasureNames.add ("MarketCreditRisklessParPV");
- setstrMeasureNames.add ("MarketCreditRisklessPrincipalPV");
- setstrMeasureNames.add ("MarketCreditRiskyParPV");
- setstrMeasureNames.add ("MarketCreditRiskyPrincipalPV");
- setstrMeasureNames.add ("MarketDefaultExposure");
- setstrMeasureNames.add ("MarketDefaultExposureNoRec");
- setstrMeasureNames.add ("MarketDirtyCouponPV");
- setstrMeasureNames.add ("MarketDirtyDV01");
- setstrMeasureNames.add ("MarketDirtyIndexCouponPV");
- setstrMeasureNames.add ("MarketDirtyPrice");
- setstrMeasureNames.add ("MarketDirtyPV");
- setstrMeasureNames.add ("MarketDV01");
- setstrMeasureNames.add ("MarketExpectedRecovery");
- setstrMeasureNames.add ("MarketFirstCouponRate");
- setstrMeasureNames.add ("MarketFirstIndexRate");
- setstrMeasureNames.add ("MarketInputType=CleanPrice");
- setstrMeasureNames.add ("MarketInputType=CreditBasis");
- setstrMeasureNames.add ("MarketInputType=DirtyPrice");
- setstrMeasureNames.add ("MarketInputType=GSpread");
- setstrMeasureNames.add ("MarketInputType=ISpread");
- setstrMeasureNames.add ("MarketInputType=PECS");
- setstrMeasureNames.add ("MarketInputType=QuotedMargin");
- setstrMeasureNames.add ("MarketInputType=TSYSpread");
- setstrMeasureNames.add ("MarketInputType=Yield");
- setstrMeasureNames.add ("MarketInputType=ZSpread");
- setstrMeasureNames.add ("MarketLossOnInstantaneousDefault");
- setstrMeasureNames.add ("MarketParPV");
- setstrMeasureNames.add ("MarketPrincipalPV");
- setstrMeasureNames.add ("MarketPV");
- setstrMeasureNames.add ("MarketRecoveryPV");
- setstrMeasureNames.add ("MarketRisklessDirtyCouponPV");
- setstrMeasureNames.add ("MarketRisklessDirtyDV01");
- setstrMeasureNames.add ("MarketRisklessDirtyIndexCouponPV");
- setstrMeasureNames.add ("MarketRisklessDirtyPV");
- setstrMeasureNames.add ("MarketRiskyDirtyCouponPV");
- setstrMeasureNames.add ("MarketRiskyDirtyDV01");
- setstrMeasureNames.add ("MarketRiskyDirtyIndexCouponPV");
- setstrMeasureNames.add ("MarketRiskyDirtyPV");
- setstrMeasureNames.add ("ModifiedDuration");
- setstrMeasureNames.add ("OAS");
- setstrMeasureNames.add ("OASpread");
- setstrMeasureNames.add ("OptionAdjustedSpread");
- setstrMeasureNames.add ("ParEquivalentCDSSpread");
- setstrMeasureNames.add ("ParPV");
- setstrMeasureNames.add ("ParSpread");
- setstrMeasureNames.add ("PECS");
- setstrMeasureNames.add ("Price");
- setstrMeasureNames.add ("PrincipalPV");
- setstrMeasureNames.add ("PV");
- setstrMeasureNames.add ("RecoveryPV");
- setstrMeasureNames.add ("RisklessCleanCouponPV");
- setstrMeasureNames.add ("RisklessCleanDV01");
- setstrMeasureNames.add ("RisklessCleanIndexCouponPV");
- setstrMeasureNames.add ("RisklessCleanPV");
- setstrMeasureNames.add ("RisklessDirtyCouponPV");
- setstrMeasureNames.add ("RisklessDirtyDV01");
- setstrMeasureNames.add ("RisklessDirtyIndexCouponPV");
- setstrMeasureNames.add ("RisklessDirtyPV");
- setstrMeasureNames.add ("RiskyCleanCouponPV");
- setstrMeasureNames.add ("RiskyCleanDV01");
- setstrMeasureNames.add ("RiskyCleanIndexCouponPV");
- setstrMeasureNames.add ("RiskyCleanPV");
- setstrMeasureNames.add ("RiskyDirtyCouponPV");
- setstrMeasureNames.add ("RiskyDirtyDV01");
- setstrMeasureNames.add ("RiskyDirtyIndexCouponPV");
- setstrMeasureNames.add ("RiskyDirtyPV");
- setstrMeasureNames.add ("TSYSpread");
- setstrMeasureNames.add ("WorkoutDate");
- setstrMeasureNames.add ("WorkoutFactor");
- setstrMeasureNames.add ("WorkoutType");
- setstrMeasureNames.add ("WorkoutYield");
- setstrMeasureNames.add ("Yield");
- setstrMeasureNames.add ("Yield01");
- setstrMeasureNames.add ("YieldBasis");
- setstrMeasureNames.add ("YieldSpread");
- setstrMeasureNames.add ("ZeroDiscountMargin");
- setstrMeasureNames.add ("ZSpread");
- return setstrMeasureNames;
- }
- @Override public double pv (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParamsIn,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp)
- throws java.lang.Exception
- {
- if (null == valParams || null == csqc)
- throw new java.lang.Exception ("BondComponent::pv => Invalid Inputs!");
- int iValueDate = valParams.valueDate();
- org.drip.state.discount.MergedDiscountForwardCurve dcFunding = csqc.fundingState (fundingLabel());
- if (null == dcFunding) throw new java.lang.Exception ("BondComponent::pv => Invalid Inputs!");
- int iLossPayLag = null == _creditSetting ? 0 : _creditSetting.lossPayLag();
- double dblProductRecovery = null == _creditSetting ? java.lang.Double.NaN :
- _creditSetting.recovery();
- boolean bUseCurveRecovery = null == _creditSetting ? false : _creditSetting.useCurveRecovery();
- boolean bAccrualOnDefault = null == _creditSetting ? false : _creditSetting.accrualOnDefault();
- org.drip.state.credit.CreditCurve cc = csqc.creditState (creditLabel());
- double dblRecoveryPV = 0.;
- double dblPrincipalPV = 0.;
- double dblDirtyCouponPV = 0.;
- boolean bApplyFlatForwardRate = false;
- double dblFlatForwardRate = java.lang.Double.NaN;
- if (null != vcp)
- bApplyFlatForwardRate = vcp.applyFlatForwardRate();
- else {
- org.drip.param.valuation.ValuationCustomizationParams vcpQuote = null == _quoteConvention ? null
- : _quoteConvention.valuationCustomizationParams();
- if (null != vcpQuote) bApplyFlatForwardRate = vcpQuote.applyFlatForwardRate();
- }
- int iMaturityDate = maturityDate().julian();
- org.drip.param.pricer.CreditPricerParams pricerParams = null != pricerParamsIn ? pricerParamsIn : new
- org.drip.param.pricer.CreditPricerParams (7, null, false,
- org.drip.param.pricer.CreditPricerParams.PERIOD_DISCRETIZATION_FULL_COUPON);
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods()) {
- int iPeriodPayDate = period.payDate();
- if (iPeriodPayDate < iValueDate) continue;
- int iPeriodEndDate = period.endDate();
- int iPeriodStartDate = period.startDate();
- org.drip.analytics.output.CompositePeriodCouponMetrics cpcm = couponMetrics (iValueDate,
- valParams, csqc);
- if (null == cpcm) throw new java.lang.Exception ("BondComponent::pv => Invalid Inputs!");
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblFlatForwardRate))
- dblFlatForwardRate = cpcm.rate();
- double dblPeriodCoupon = bApplyFlatForwardRate ? dblFlatForwardRate : cpcm.rate();
- double dblPeriodAnnuity = dcFunding.df (iPeriodPayDate) * cpcm.cumulative();
- double dblPeriodDirtyDV01 = 0.0001 * period.accrualDCF (iPeriodEndDate) * dblPeriodAnnuity *
- notional (iPeriodStartDate);
- double dblPeriodPrincipalPV = (notional (iPeriodStartDate) - notional (iPeriodEndDate)) *
- dblPeriodAnnuity;
- if (null != cc && null != pricerParams) {
- double dblSurvProb = cc.survival (pricerParams.survivalToPayDate() ? iPeriodPayDate :
- iPeriodEndDate);
- dblPeriodDirtyDV01 *= dblSurvProb;
- dblPeriodPrincipalPV *= dblSurvProb;
- for (org.drip.analytics.cashflow.LossQuadratureMetrics lqm : period.lossMetrics (this,
- valParams, pricerParams, iMaturityDate, csqc)) {
- if (null == lqm) continue;
- int iSubPeriodEndDate = lqm.endDate();
- int iSubPeriodStartDate = lqm.startDate();
- double dblSubPeriodDF = dcFunding.effectiveDF (iSubPeriodStartDate + iLossPayLag,
- iSubPeriodEndDate + iLossPayLag);
- double dblSubPeriodNotional = notional (iSubPeriodStartDate, iSubPeriodEndDate);
- double dblSubPeriodSurvival = cc.survival (iSubPeriodStartDate) - cc.survival
- (iSubPeriodEndDate);
- if (bAccrualOnDefault)
- dblPeriodDirtyDV01 += 0.0001 * lqm.accrualDCF() * dblSubPeriodSurvival *
- dblSubPeriodDF * dblSubPeriodNotional;
- dblRecoveryPV += (bUseCurveRecovery ? cc.effectiveRecovery (iSubPeriodStartDate,
- iSubPeriodEndDate) : dblProductRecovery) * dblSubPeriodSurvival *
- dblSubPeriodNotional * dblSubPeriodDF;
- }
- }
- dblPrincipalPV += dblPeriodPrincipalPV;
- dblDirtyCouponPV += 10000. * dblPeriodCoupon * couponFactor (iPeriodEndDate) *
- dblPeriodDirtyDV01;
- }
- double dblParPV = dcFunding.df (iMaturityDate) * notional (iMaturityDate);
- if (null != cc && null != pricerParams) dblParPV *= cc.survival (iMaturityDate);
- return (dblDirtyCouponPV + dblPrincipalPV + dblParPV + dblRecoveryPV) / dcFunding.df (null !=
- _quoteConvention ? _quoteConvention.settleDate (valParams) : valParams.cashPayDate());
- }
- @Override public org.drip.numerical.differentiation.WengertJacobian jackDDirtyPVDManifestMeasure (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp)
- {
- return null;
- }
- @Override public org.drip.product.calib.ProductQuoteSet calibQuoteSet (
- final org.drip.state.representation.LatentStateSpecification[] aLSS)
- {
- return null;
- }
- @Override public org.drip.state.estimator.PredictorResponseWeightConstraint fundingPRWC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.product.calib.ProductQuoteSet pqs)
- {
- return null;
- }
- @Override public org.drip.state.estimator.PredictorResponseWeightConstraint forwardPRWC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.product.calib.ProductQuoteSet pqs)
- {
- return null;
- }
- @Override public org.drip.state.estimator.PredictorResponseWeightConstraint fundingForwardPRWC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.product.calib.ProductQuoteSet pqs)
- {
- return null;
- }
- @Override public org.drip.state.estimator.PredictorResponseWeightConstraint fxPRWC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.product.calib.ProductQuoteSet pqs)
- {
- return null;
- }
- @Override public org.drip.state.estimator.PredictorResponseWeightConstraint govviePRWC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.product.calib.ProductQuoteSet pqs)
- {
- return null;
- }
- @Override public org.drip.state.estimator.PredictorResponseWeightConstraint volatilityPRWC (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final org.drip.product.calib.ProductQuoteSet pqs)
- {
- return null;
- }
- @Override public org.drip.numerical.differentiation.WengertJacobian manifestMeasureDFMicroJack (
- final java.lang.String strManifestMeasure,
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.pricer.CreditPricerParams pricerParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp)
- {
- return null;
- }
- /**
- * The BondCalibrator implements a calibrator that calibrates the yield, the credit basis, or the Z
- * Spread for the bond given the price input. Calibration happens via either Newton-Raphson method,
- * or via bracketing/root searching.
- *
- * @author Lakshmi Krishnamurthy
- *
- */
- public class BondCalibrator {
- private BondComponent _bond = null;
- private boolean _bApplyCouponExtension = false;
- /**
- * Constructor: Construct the calibrator from the parent bond.
- *
- * @param bond Parent
- * @param bApplyCouponExtension TRUE - Apply the Coupon Extension
- *
- * @throws java.lang.Exception Thrown if the inputs are invalid
- */
- public BondCalibrator (
- final BondComponent bond,
- final boolean bApplyCouponExtension)
- throws java.lang.Exception
- {
- if (null == (_bond = bond))
- throw new java.lang.Exception ("BondComponent::BondCalibrator ctr => Invalid Inputs");
- _bApplyCouponExtension = bApplyCouponExtension;
- }
- /**
- * Calibrate the bond yield from the market price using the root bracketing technique.
- *
- * @param valParams Valuation Parameters
- * @param csqs Bond Market Parameters
- * @param vcp Valuation Customization Parameters
- * @param iWorkoutDate JulianDate Work-out
- * @param dblWorkoutFactor Work-out factor
- * @param dblPrice Price to be calibrated to
- *
- * @return The calibrated Yield
- *
- * @throws java.lang.Exception Thrown if the yield cannot be calibrated
- */
- public double calibrateYieldFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateYieldFromPrice => Invalid Inputs!");
- org.drip.function.definition.R1ToR1 ofYieldToPrice = new org.drip.function.definition.R1ToR1
- (null) {
- @Override public double evaluate (
- final double dblYield)
- throws java.lang.Exception
- {
- return _bond.priceFromYield (valParams, csqs, vcp, iWorkoutDate, dblWorkoutFactor,
- dblYield, _bApplyCouponExtension) - dblPrice;
- }
- };
- org.drip.function.r1tor1solver.FixedPointFinderOutput rfop = new
- org.drip.function.r1tor1solver.FixedPointFinderNewton (0., ofYieldToPrice, true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderZheng (0., ofYieldToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBracketing (0., ofYieldToPrice,
- null, org.drip.function.r1tor1solver.VariateIteratorPrimitive.FALSE_POSITION,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateYieldFromPrice => Cannot get root!");
- return rfop.getRoot();
- }
- /**
- * Calibrate the bond Z Spread from the market price using the root bracketing technique.
- *
- * @param valParams Valuation Parameters
- * @param csqs Bond Market Parameters
- * @param vcp Valuation Customization Parameters
- * @param iZeroCurveBaseDC The Discount Curve to derive the zero curve off of
- * @param iWorkoutDate JulianDate Work-out
- * @param dblWorkoutFactor Work-out factor
- * @param dblPrice Price to be calibrated to
- *
- * @return The calibrated Z Spread
- *
- * @throws java.lang.Exception Thrown if the Z Spread cannot be calibrated
- */
- public double calibrateZSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iZeroCurveBaseDC,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateZSpreadFromPrice => Invalid Inputs!");
- if (null != _floaterSetting)
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateZSpreadFromPrice => Z Spread Calculation turned off for floaters!");
- org.drip.function.definition.R1ToR1 ofZSpreadToPrice = new org.drip.function.definition.R1ToR1
- (null) {
- @Override public double evaluate (
- final double dblZSpread)
- throws java.lang.Exception
- {
- return _bond.priceFromZeroCurve (valParams, csqs, vcp, iZeroCurveBaseDC, iWorkoutDate,
- dblWorkoutFactor, dblZSpread) - dblPrice;
- }
- };
- org.drip.function.r1tor1solver.FixedPointFinderOutput rfop = new
- org.drip.function.r1tor1solver.FixedPointFinderNewton (0., ofZSpreadToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBrent (0., ofZSpreadToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBracketing (0., ofZSpreadToPrice,
- new org.drip.function.r1tor1solver.ExecutionControl (ofZSpreadToPrice, new
- org.drip.function.r1tor1solver.ExecutionControlParams (200, false, 1.e-02, 1.e-02,
- 1.e-01, 1.e-01)),
- org.drip.function.r1tor1solver.VariateIteratorPrimitive.FALSE_POSITION,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateZSpreadFromPrice => Cannot get root!");
- return rfop.getRoot();
- }
- /**
- * Calibrate the Bond OAS from the Market Price using the Root Bracketing Technique.
- *
- * @param valParams Valuation Parameters
- * @param csqs Bond Market Parameters
- * @param vcp Valuation Customization Parameters
- * @param iZeroCurveBaseDC The Discount Curve to derive the zero curve off of
- * @param iWorkoutDate JulianDate Work-out
- * @param dblWorkoutFactor Work-out factor
- * @param dblPrice Price to be calibrated to
- *
- * @return The Calibrated OAS
- *
- * @throws java.lang.Exception Thrown if the OAS cannot be calibrated
- */
- public double calibrateOASFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final int iZeroCurveBaseDC,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateOASFromPrice => Invalid Inputs!");
- org.drip.function.definition.R1ToR1 r1ToR1OASToPrice = new org.drip.function.definition.R1ToR1
- (null) {
- @Override public double evaluate (
- final double dblZSpread)
- throws java.lang.Exception
- {
- return _bond.priceFromZeroCurve (valParams, csqs, vcp, iZeroCurveBaseDC, iWorkoutDate,
- dblWorkoutFactor, dblZSpread) - dblPrice;
- }
- };
- org.drip.function.r1tor1solver.FixedPointFinderOutput rfop = new
- org.drip.function.r1tor1solver.FixedPointFinderNewton (0., r1ToR1OASToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBrent (0., r1ToR1OASToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBracketing (0., r1ToR1OASToPrice,
- null, org.drip.function.r1tor1solver.VariateIteratorPrimitive.FALSE_POSITION,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateOASFromPrice => Cannot get root!");
- return rfop.getRoot();
- }
- /**
- * Calibrate the bond Z Spread from the market price. Calibration is done by bumping the discount
- * curve.
- *
- * @param valParams Valuation Parameters
- * @param csqs Bond Market Parameters
- * @param iWorkoutDate JulianDate Work-out
- * @param dblWorkoutFactor Work-out factor
- * @param dblPrice Price to be calibrated to
- *
- * @return The calibrated Z Spread
- *
- * @throws java.lang.Exception Thrown if the yield cannot be calibrated
- */
- public double calibDiscCurveSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateDiscCurveSpreadFromPrice => Invalid Inputs!");
- org.drip.function.definition.R1ToR1 ofDiscCurveSpreadToPrice = new
- org.drip.function.definition.R1ToR1 (null) {
- @Override public double evaluate (
- final double dblZSpread)
- throws java.lang.Exception
- {
- return _bond.priceFromFundingCurve (valParams, csqs, iWorkoutDate, dblWorkoutFactor,
- dblZSpread) - dblPrice;
- }
- };
- org.drip.function.r1tor1solver.FixedPointFinderOutput rfop = new
- org.drip.function.r1tor1solver.FixedPointFinderNewton (0., ofDiscCurveSpreadToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderZheng (0.,
- ofDiscCurveSpreadToPrice, true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBracketing (0.,
- ofDiscCurveSpreadToPrice, null,
- org.drip.function.r1tor1solver.VariateIteratorPrimitive.FALSE_POSITION,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibDiscCurveSpreadFromPrice => Cannot get root!");
- return rfop.getRoot();
- }
- /**
- * Calibrate the bond Z Spread from the market price. Calibration is done by bumping the Zero Curve.
- *
- * @param valParams Valuation Parameters
- * @param csqs Bond Market Parameters
- * @param iWorkoutDate JulianDate Work-out
- * @param dblWorkoutFactor Work-out factor
- * @param dblPrice Price to be calibrated to
- *
- * @return The calibrated Z Spread
- *
- * @throws java.lang.Exception Thrown if the yield cannot be calibrated
- */
- public double calibZeroCurveSpreadFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateZeroCurveSpreadFromPrice => Invalid Inputs!");
- if (null != _floaterSetting)
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibZeroCurveSpreadFromPrice => Z Spread Calculation turned off for floaters!");
- org.drip.function.definition.R1ToR1 ofZSpreadToPrice = new org.drip.function.definition.R1ToR1
- (null) {
- @Override public double evaluate (
- final double dblZSpread)
- throws java.lang.Exception
- {
- return _bond.priceFromFundingCurve (valParams, csqs, iWorkoutDate, dblWorkoutFactor,
- dblZSpread) - dblPrice;
- }
- };
- org.drip.function.r1tor1solver.FixedPointFinderOutput rfop = new
- org.drip.function.r1tor1solver.FixedPointFinderNewton (0., ofZSpreadToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderZheng (0., ofZSpreadToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBracketing (0., ofZSpreadToPrice,
- null, org.drip.function.r1tor1solver.VariateIteratorPrimitive.FALSE_POSITION,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- throw new java.lang.Exception
- ("BondComponent.calibZeroCurveSpreadFromPrice => Cannot get root!");
- return rfop.getRoot();
- }
- /**
- * Calibrate the bond Credit Basis from the market price
- *
- * @param valParams Valuation Parameters
- * @param csqs Bond Market Parameters
- * @param iWorkoutDate JulianDate Work-out
- * @param dblWorkoutFactor Work-out factor
- * @param dblPrice Price to be calibrated to
- * @param bFlat TRUE - Calibrate to Flat Curve
- *
- * @return The calibrated Credit Basis
- *
- * @throws java.lang.Exception Thrown if the Credit Basis cannot be calibrated
- */
- public double calibrateCreditBasisFromPrice (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqs,
- final int iWorkoutDate,
- final double dblWorkoutFactor,
- final double dblPrice,
- final boolean bFlat)
- throws java.lang.Exception
- {
- if (!org.drip.numerical.common.NumberUtil.IsValid (dblPrice))
- throw new java.lang.Exception
- ("BondComponent::BondCalibrator::calibrateCreditBasisFromPrice => Invalid Inputs!");
- org.drip.function.definition.R1ToR1 ofCreditBasisToPrice = new
- org.drip.function.definition.R1ToR1 (null) {
- @Override public double evaluate (
- final double dblCreditBasis)
- throws java.lang.Exception
- {
- return _bond.priceFromCreditCurve (valParams, csqs, iWorkoutDate, dblWorkoutFactor,
- dblCreditBasis, bFlat) - dblPrice;
- }
- };
- org.drip.function.r1tor1solver.FixedPointFinderOutput rfop = new
- org.drip.function.r1tor1solver.FixedPointFinderNewton (0., ofCreditBasisToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderZheng (0., ofCreditBasisToPrice,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- rfop = new org.drip.function.r1tor1solver.FixedPointFinderBracketing (0., ofCreditBasisToPrice,
- null, org.drip.function.r1tor1solver.VariateIteratorPrimitive.FALSE_POSITION,
- true).findRoot();
- if (null == rfop || !rfop.containsRoot())
- throw new java.lang.Exception
- ("BondComponent.calibrateCreditBasisFromPrice => Cannot get root!");
- return rfop.getRoot();
- }
- }
- /**
- * Generate the EOS Callable Option Adjusted Metrics
- *
- * @param valParams The Valuation Parameters
- * @param csqc The Market Parameters
- * @param vcp The Valuation Customization Parameters
- * @param dblCleanPrice Clean Price
- * @param gbs The Govvie Builder Settings
- * @param deGovvieForward The Govvie Forward Diffusion Evolver
- * @param iNumPath The Number of Paths
- *
- * @return The Bond EOS Metrics
- */
- public org.drip.analytics.output.BondEOSMetrics callMetrics (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCleanPrice,
- final org.drip.state.sequence.GovvieBuilderSettings gbs,
- final org.drip.measure.process.DiffusionEvolver deGovvieForward,
- final int iNumPath)
- {
- if (null == valParams || null == csqc || null == gbs) return null;
- org.drip.product.params.EmbeddedOptionSchedule eosCall = callSchedule();
- if (null == eosCall) return null;
- int iNumDimension = gbs.dimension();
- int iValueDate = valParams.valueDate();
- int[] aiExerciseDate = eosCall.exerciseDates (iValueDate);
- double[] adblExercisePrice = eosCall.exerciseFactors (iValueDate);
- if (null == aiExerciseDate || null == adblExercisePrice) return null;
- double dblOAS = java.lang.Double.NaN;
- int iNumVertex = aiExerciseDate.length;
- org.drip.state.sequence.PathVertexGovvie pvg = null;
- double[] adblOptimalExercisePV = new double[iNumPath];
- int[] aiOptimalExerciseVertexIndex = new int[iNumPath];
- double[] adblOptimalExerciseOAS = new double[iNumPath];
- double[] adblOptimalExercisePrice = new double[iNumPath];
- double[] adblOptimalExerciseOASGap = new double[iNumPath];
- double[] adblOptimalExerciseDuration = new double[iNumPath];
- double[] adblOptimalExerciseConvexity = new double[iNumPath];
- double[][] aadblForwardPrice = new double[iNumPath][iNumVertex];
- boolean[][] aabExerciseIndicator = new boolean[iNumPath][iNumVertex];
- double[][] aadblCorrelation = new double[iNumDimension][iNumDimension];
- org.drip.analytics.date.JulianDate[] adtOptimalExerciseDate = new
- org.drip.analytics.date.JulianDate[iNumPath];
- org.drip.param.valuation.ValuationParams[] aValParamsEvent = new
- org.drip.param.valuation.ValuationParams[iNumVertex];
- for (int i = 0; i < iNumDimension; ++i) {
- for (int j = 0; j < iNumDimension; ++j)
- aadblCorrelation[i][j] = i == j ? 1. : 0.;
- }
- try {
- if (null == (pvg = org.drip.state.sequence.PathVertexGovvie.Standard (gbs, new
- org.drip.measure.discrete.CorrelatedPathVertexDimension (new
- org.drip.measure.crng.RandomNumberGenerator(), aadblCorrelation, iNumVertex, iNumPath,
- false, null), deGovvieForward)))
- return null;
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- org.drip.state.govvie.GovvieCurve[][] aaGCPathEvent = pvg.pathVertex (aiExerciseDate);
- if (null == aaGCPathEvent) return null;
- try {
- dblOAS = oasFromPrice (valParams, csqc, vcp, dblCleanPrice);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- for (int iVertex = 0; iVertex < iNumVertex; ++iVertex) {
- if (null == (aValParamsEvent[iVertex] = org.drip.param.valuation.ValuationParams.Spot
- (aiExerciseDate[iVertex])))
- return null;
- }
- org.drip.state.discount.MergedDiscountForwardCurve mdfcFunding = csqc.fundingState (fundingLabel());
- for (int iPath = 0; iPath < iNumPath; ++iPath) {
- for (int iVertex = 0; iVertex < iNumVertex; ++iVertex) {
- try {
- aadblForwardPrice[iPath][iVertex] = priceFromOAS (aValParamsEvent[iVertex],
- org.drip.param.creator.MarketParamsBuilder.Create (mdfcFunding,
- aaGCPathEvent[iPath][iVertex], null, null, null, null, null), null, dblOAS);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- }
- for (int iPath = 0; iPath < iNumPath; ++iPath) {
- adblOptimalExercisePV[iPath] = 0.;
- adblOptimalExercisePrice[iPath] = 1.;
- aiOptimalExerciseVertexIndex[iPath] = iNumVertex;
- adtOptimalExerciseDate[iPath] = maturityDate();
- for (int iVertex = 0; iVertex < iNumVertex; ++iVertex) {
- double dblExercisePV = java.lang.Double.NaN;
- aabExerciseIndicator[iPath][iVertex] = false;
- try {
- dblExercisePV = (aadblForwardPrice[iPath][iVertex] - adblExercisePrice[iVertex]) *
- mdfcFunding.df (aiExerciseDate[iVertex]);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- if (dblExercisePV > adblOptimalExercisePV[iPath]) {
- adtOptimalExerciseDate[iPath] = new org.drip.analytics.date.JulianDate
- (aiExerciseDate[iVertex]);
- adblOptimalExercisePrice[iPath] = adblExercisePrice[iVertex];
- aiOptimalExerciseVertexIndex[iPath] = iVertex;
- adblOptimalExercisePV[iPath] = dblExercisePV;
- aabExerciseIndicator[iPath][iVertex] = true;
- }
- }
- }
- for (int iPath = 0; iPath < iNumPath; ++iPath) {
- int iOptimalExerciseDate = adtOptimalExerciseDate[iPath].julian();
- try {
- adblOptimalExerciseOAS[iPath] = oasFromPrice (valParams, csqc, null, iOptimalExerciseDate,
- adblOptimalExercisePrice[iPath], dblCleanPrice);
- adblOptimalExerciseDuration[iPath] = modifiedDurationFromPrice (valParams, csqc, null,
- iOptimalExerciseDate, adblOptimalExercisePrice[iPath], dblCleanPrice);
- adblOptimalExerciseConvexity[iPath] = convexityFromPrice (valParams, csqc, null,
- iOptimalExerciseDate, adblOptimalExercisePrice[iPath], dblCleanPrice);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- adblOptimalExerciseOASGap[iPath] = adblOptimalExerciseOAS[iPath] - dblOAS;
- }
- try {
- return new org.drip.analytics.output.BondEOSMetrics (dblOAS, adblOptimalExercisePrice,
- adblOptimalExercisePV, adblOptimalExerciseOAS, adblOptimalExerciseOASGap,
- adblOptimalExerciseDuration, adblOptimalExerciseConvexity, aadblForwardPrice,
- aabExerciseIndicator);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * Generate the EOS Putable Option Adjusted Metrics
- *
- * @param valParams The Valuation Parameters
- * @param csqc The Market Parameters
- * @param vcp The Valuation Customization Parameters
- * @param dblCleanPrice Clean Price
- * @param gbs The Govvie Builder Settings
- * @param deGovvieForward The Govvie Forward Diffusion Evolver
- * @param iNumPath The Number of Paths
- *
- * @return The Bond EOS Metrics
- */
- public org.drip.analytics.output.BondEOSMetrics putMetrics (
- final org.drip.param.valuation.ValuationParams valParams,
- final org.drip.param.market.CurveSurfaceQuoteContainer csqc,
- final org.drip.param.valuation.ValuationCustomizationParams vcp,
- final double dblCleanPrice,
- final org.drip.state.sequence.GovvieBuilderSettings gbs,
- final org.drip.measure.process.DiffusionEvolver deGovvieForward,
- final int iNumPath)
- {
- if (null == valParams || null == csqc || null == gbs) return null;
- org.drip.product.params.EmbeddedOptionSchedule eosPut = putSchedule();
- if (null == eosPut) return null;
- int iNumDimension = gbs.dimension();
- int iValueDate = valParams.valueDate();
- int[] aiExerciseDate = eosPut.exerciseDates (iValueDate);
- double[] adblExercisePrice = eosPut.exerciseFactors (iValueDate);
- if (null == aiExerciseDate || null == adblExercisePrice) return null;
- double dblOAS = java.lang.Double.NaN;
- int iNumVertex = aiExerciseDate.length;
- org.drip.state.sequence.PathVertexGovvie pvg = null;
- double[] adblOptimalExercisePV = new double[iNumPath];
- int[] aiOptimalExerciseVertexIndex = new int[iNumPath];
- double[] adblOptimalExerciseOAS = new double[iNumPath];
- double[] adblOptimalExercisePrice = new double[iNumPath];
- double[] adblOptimalExerciseOASGap = new double[iNumPath];
- double[] adblOptimalExerciseDuration = new double[iNumPath];
- double[] adblOptimalExerciseConvexity = new double[iNumPath];
- double[][] aadblForwardPrice = new double[iNumPath][iNumVertex];
- boolean[][] aabExerciseIndicator = new boolean[iNumPath][iNumVertex];
- double[][] aadblCorrelation = new double[iNumDimension][iNumDimension];
- org.drip.analytics.date.JulianDate[] adtOptimalExerciseDate = new
- org.drip.analytics.date.JulianDate[iNumPath];
- org.drip.param.valuation.ValuationParams[] aValParamsEvent = new
- org.drip.param.valuation.ValuationParams[iNumVertex];
- for (int i = 0; i < iNumDimension; ++i) {
- for (int j = 0; j < iNumDimension; ++j)
- aadblCorrelation[i][j] = i == j ? 1. : 0.;
- }
- try {
- if (null == (pvg = org.drip.state.sequence.PathVertexGovvie.Standard (gbs, new
- org.drip.measure.discrete.CorrelatedPathVertexDimension (new
- org.drip.measure.crng.RandomNumberGenerator(), aadblCorrelation, iNumVertex, iNumPath,
- false, null), deGovvieForward)))
- return null;
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- org.drip.state.govvie.GovvieCurve[][] aaGCPathEvent = pvg.pathVertex (aiExerciseDate);
- if (null == aaGCPathEvent) return null;
- try {
- dblOAS = oasFromPrice (valParams, csqc, vcp, dblCleanPrice);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- for (int iVertex = 0; iVertex < iNumVertex; ++iVertex) {
- if (null == (aValParamsEvent[iVertex] = org.drip.param.valuation.ValuationParams.Spot
- (aiExerciseDate[iVertex])))
- return null;
- }
- org.drip.state.discount.MergedDiscountForwardCurve mdfcFunding = csqc.fundingState (fundingLabel());
- for (int iPath = 0; iPath < iNumPath; ++iPath) {
- for (int iVertex = 0; iVertex < iNumVertex; ++iVertex) {
- try {
- aadblForwardPrice[iPath][iVertex] = priceFromOAS (aValParamsEvent[iVertex],
- org.drip.param.creator.MarketParamsBuilder.Create (mdfcFunding,
- aaGCPathEvent[iPath][iVertex], null, null, null, null, null), null, dblOAS);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- }
- for (int iPath = 0; iPath < iNumPath; ++iPath) {
- adblOptimalExercisePV[iPath] = 0.;
- adblOptimalExercisePrice[iPath] = 1.;
- aiOptimalExerciseVertexIndex[iPath] = iNumVertex;
- adtOptimalExerciseDate[iPath] = maturityDate();
- for (int iVertex = 0; iVertex < iNumVertex; ++iVertex) {
- double dblExercisePV = java.lang.Double.NaN;
- aabExerciseIndicator[iPath][iVertex] = false;
- try {
- dblExercisePV = (adblExercisePrice[iVertex] - aadblForwardPrice[iPath][iVertex]) *
- mdfcFunding.df (aiExerciseDate[iVertex]);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- if (dblExercisePV > adblOptimalExercisePV[iPath]) {
- adtOptimalExerciseDate[iPath] = new org.drip.analytics.date.JulianDate
- (aiExerciseDate[iVertex]);
- adblOptimalExercisePrice[iPath] = adblExercisePrice[iVertex];
- aiOptimalExerciseVertexIndex[iPath] = iVertex;
- adblOptimalExercisePV[iPath] = dblExercisePV;
- aabExerciseIndicator[iPath][iVertex] = true;
- }
- }
- }
- for (int iPath = 0; iPath < iNumPath; ++iPath) {
- int iOptimalExerciseDate = adtOptimalExerciseDate[iPath].julian();
- try {
- adblOptimalExerciseOAS[iPath] = oasFromPrice (valParams, csqc, null, iOptimalExerciseDate,
- adblOptimalExercisePrice[iPath], dblCleanPrice);
- adblOptimalExerciseDuration[iPath] = modifiedDurationFromPrice (valParams, csqc, null,
- iOptimalExerciseDate, adblOptimalExercisePrice[iPath], dblCleanPrice);
- adblOptimalExerciseConvexity[iPath] = convexityFromPrice (valParams, csqc, null,
- iOptimalExerciseDate, adblOptimalExercisePrice[iPath], dblCleanPrice);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- return null;
- }
- adblOptimalExerciseOASGap[iPath] = adblOptimalExerciseOAS[iPath] - dblOAS;
- }
- try {
- return new org.drip.analytics.output.BondEOSMetrics (dblOAS, adblOptimalExercisePrice,
- adblOptimalExercisePV, adblOptimalExerciseOAS, adblOptimalExerciseOASGap,
- adblOptimalExerciseDuration, adblOptimalExerciseConvexity, aadblForwardPrice,
- aabExerciseIndicator);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override public void showPeriods()
- throws java.lang.Exception
- {
- for (org.drip.analytics.cashflow.CompositePeriod period : couponPeriods())
- System.out.println ("\t" + org.drip.analytics.date.DateUtil.YYYYMMDD (period.startDate()) +
- "->" + org.drip.analytics.date.DateUtil.YYYYMMDD (period.endDate()) + " " +
- period.accrualDCF (period.endDate()));
- }
- }