public static final void main(final java.lang.String[] astrArgs) throws java.lang.Exception { FloatingStream fs = new org.drip.product.rates.FloatingStream( org.drip.analytics.date.JulianDate.Today().getJulian(), org.drip.analytics.date.JulianDate.Today().addTenor("4Y").getJulian(), 0.03, org.drip.product.params.FloatingRateIndex.Create("JPY-LIBOR-6M"), 2, "30/360", "30/360", false, null, null, null, null, null, null, null, null, null, 100., "JPY", "JPY"); byte[] abFS = fs.serialize(); System.out.println(new java.lang.String(abFS)); FloatingStream fsDeser = new FloatingStream(abFS); System.out.println(new java.lang.String(fsDeser.serialize())); }
private static final void CreditCurveEODAPISample() throws Exception { JulianDate dt = JulianDate.CreateFromYMD(2011, 7, 21); /* * Retrieves all the CDS curves available for the given EOD */ Set<String> setstrCDSCurves = CreditAnalytics.GetEODCDSCurveNames(dt); for (String strCDSCurveName : setstrCDSCurves) System.out.println(strCDSCurveName); /* * Retrieves the calibrated credit curve from the CDS instruments for the given CDS curve name, * IR curve name, and EOD. Also shows the 10Y survival probability and hazard rate. */ CreditCurve ccEOD = CreditAnalytics.LoadEODCDSCreditCurve("813796", "USD", dt); JulianDate dt10Y = JulianDate.Today().addYears(10); System.out.println( "CCFromEOD[" + dt10Y.toString() + "]; Survival=" + ccEOD.getSurvival("10Y") + "; Hazard=" + ccEOD.calcHazard("10Y")); /* * Displays the CDS quotes used to construct the closing credit curve */ CalibratableComponent[] aCompCDS = ccEOD.calibComp(); for (int i = 0; i < aCompCDS.length; ++i) System.out.println( aCompCDS[i].getPrimaryCode() + " => " + (int) (ccEOD.manifestMeasure(aCompCDS[i].getPrimaryCode()))); /* * Loads all available credit curves for the given curve ID built from CDS instruments between 2 dates */ Map<JulianDate, CreditCurve> mapCC = CreditAnalytics.LoadEODCDSCreditCurves( "813796", "USD", JulianDate.CreateFromYMD(2011, 7, 14), dt); /* * Displays their 5Y CDS quote */ for (Map.Entry<JulianDate, CreditCurve> meCC : mapCC.entrySet()) { JulianDate dtME = meCC.getKey(); CreditCurve ccCOB = meCC.getValue(); System.out.println(dtME + "[CDS.5Y] => " + (int) (ccCOB.manifestMeasure("CDS.5Y"))); } }
public static final void main(final java.lang.String[] astrArgs) throws java.lang.Exception { double dblScheduleStart = org.drip.analytics.date.JulianDate.Today().getJulian(); double[] adblDate = new double[3]; double[] adblFactor = new double[3]; adblFactor[0] = 1.20; adblFactor[1] = 1.10; adblFactor[2] = 1.00; adblDate[0] = dblScheduleStart + 30.; adblDate[1] = dblScheduleStart + 396.; adblDate[2] = dblScheduleStart + 761.; EmbeddedOptionSchedule eos = EmbeddedOptionSchedule.fromAmerican( dblScheduleStart, adblDate, adblFactor, true, 30, false, java.lang.Double.NaN, "CRAP", java.lang.Double.NaN); byte[] abEOS = eos.serialize(); System.out.println(new java.lang.String(abEOS)); EmbeddedOptionSchedule eosDeser = new EmbeddedOptionSchedule(abEOS); System.out.println(new java.lang.String(eosDeser.serialize())); }
public static final void main(final java.lang.String[] astrArgs) throws java.lang.Exception { CashComponent cash = new CashComponent( org.drip.analytics.date.JulianDate.Today(), org.drip.analytics.date.JulianDate.Today().addTenor("1Y"), "AUD", "Act/360", "BMA"); byte[] abCash = cash.serialize(); System.out.println(new java.lang.String(abCash)); CashComponent cashDeser = new CashComponent(abCash); System.out.println(new java.lang.String(cashDeser.serialize())); }
private static final void CreditCurveAPISample() throws Exception { JulianDate dtStart = JulianDate.Today(); JulianDate dt10Y = dtStart.addYears(10); /* * Create Credit Curve from flat Hazard Rate */ CreditCurve ccFlatHazard = CreditCurveBuilder.FromFlatHazard(dtStart.getJulian(), "CC", "USD", 0.02, 0.4); System.out.println( "CCFromFlatHazard[" + dt10Y.toString() + "]; Survival=" + ccFlatHazard.getSurvival("10Y") + "; Hazard=" + ccFlatHazard.calcHazard("10Y")); double[] adblDate = new double[5]; double[] adblSurvival = new double[5]; for (int i = 0; i < 5; ++i) { adblDate[i] = dtStart.addYears(2 * i + 2).getJulian(); adblSurvival[i] = 1. - 0.1 * (i + 1); } /* * Create Credit Curve from an array of dates and their corresponding survival probabilities */ CreditCurve ccFromSurvival = CreditCurveBuilder.FromSurvival( dtStart.getJulian(), "CC", "USD", adblDate, adblSurvival, 0.4); System.out.println( "CCFromSurvival[" + dt10Y.toString() + "]; Survival=" + ccFromSurvival.getSurvival("10Y") + "; Hazard=" + ccFromSurvival.calcHazard("10Y")); }
private static final void CDSEODMeasuresAPISample() { JulianDate dtEOD = JulianDate.CreateFromYMD(2011, 7, 21); // EOD /* * Create a spot starting CDS based off of a specific credit curve */ CreditDefaultSwap cds = CDSBuilder.CreateSNAC(JulianDate.Today(), "5Y", 0.1, "813796"); /* * Calculate the EOD CDS measures */ CaseInsensitiveTreeMap<Double> mapEODCDSMeasures = CreditAnalytics.GetEODCDSMeasures(cds, dtEOD); /* * Display the EOD CDS measures */ for (Map.Entry<String, Double> me : mapEODCDSMeasures.entrySet()) System.out.println(me.getKey() + " => " + me.getValue()); }
private static final void CDSAPISample() throws Exception { JulianDate dtStart = JulianDate.Today(); /* * Flat Discount Curve */ DiscountCurve dc = DiscountCurveBuilder.CreateFromFlatRate(dtStart, "USD", 0.05); /* * Flat Credit Curve */ CreditCurve cc = CreditCurveBuilder.FromFlatHazard(dtStart.getJulian(), "CC", "USD", 0.02, 0.4); /* * Component Market Parameters built from the Discount and the Credit Curves */ ComponentMarketParams cmp = ComponentMarketParamsBuilder.MakeCreditCMP(dc, cc); /* * Create an SNAC CDS */ CreditDefaultSwap cds = CDSBuilder.CreateSNAC(dtStart, "5Y", 0.1, "CC"); /* * Valuation Parameters */ ValuationParams valParams = ValuationParams.CreateValParams(dtStart, 0, "", Convention.DR_ACTUAL); /* * Standard Credit Pricer Parameters (check javadoc for details) */ PricerParams pricerParams = PricerParams.MakeStdPricerParams(); System.out.println( "Acc Start Acc End Pay Date Index Spread Cpn DCF Pay01 Surv01"); System.out.println( "--------- --------- --------- ------ ------ -------- --------- --------"); /* * CDS Coupon Cash Flow */ for (CashflowPeriodCurveFactors p : cds.getCouponFlow(valParams, pricerParams, cmp)) System.out.println( JulianDate.fromJulian(p.getAccrualStartDate()) + FIELD_SEPARATOR + JulianDate.fromJulian(p.getAccrualEndDate()) + FIELD_SEPARATOR + JulianDate.fromJulian(p.getPayDate()) + FIELD_SEPARATOR + FormatUtil.FormatDouble(p.getIndexRate(), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(p.getSpread(), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(p.getCouponDCF(), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dc.df(p.getPayDate()), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(cc.getSurvival(p.getPayDate()), 1, 4, 1.)); System.out.println( "Loss Start Loss End Pay Date Cpn Notl Rec EffDF StartSurv EndSurv"); System.out.println( "---------- -------- -------- --- ---- --- ----- --------- -------"); /* * CDS Loss Cash Flow */ for (LossPeriodCurveFactors dp : cds.getLossFlow(valParams, pricerParams, cmp)) System.out.println( JulianDate.fromJulian(dp.getStartDate()) + FIELD_SEPARATOR + JulianDate.fromJulian(dp.getEndDate()) + FIELD_SEPARATOR + JulianDate.fromJulian(dp.getPayDate()) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dp.getCouponDCF(), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dp.effectiveNotional(), 1, 0, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dp.effectiveRecovery(), 1, 2, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dp.effectiveDF(), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dp.startSurvival(), 1, 4, 1.) + FIELD_SEPARATOR + FormatUtil.FormatDouble(dp.endSurvival(), 1, 4, 1.)); }
private static void CreateCreditCurveFromCDSInstruments() throws Exception { JulianDate dtStart = JulianDate.Today(); /* * Populate the instruments, the calibration measures, and the calibration quotes */ double[] adblQuotes = new double[5]; String[] astrCalibMeasure = new String[5]; CreditDefaultSwap[] aCDS = new CreditDefaultSwap[5]; for (int i = 0; i < 5; ++i) { /* * The Calibration CDS */ aCDS[i] = CDSBuilder.CreateSNAC(dtStart, (i + 1) + "Y", 0.01, "CORP"); /* * Calibration Quote */ adblQuotes[i] = 100.; /* * Calibration Measure */ astrCalibMeasure[i] = "FairPremium"; } /* * Flat Discount Curve */ DiscountCurve dc = DiscountCurveBuilder.CreateFromFlatRate(dtStart, "USD", 0.05); /* * Create the Credit Curve from the give CDS instruments */ CreditCurve cc = CreditScenarioCurveBuilder.CreateCreditCurve( "CORP", dtStart, aCDS, dc, adblQuotes, astrCalibMeasure, 0.4, false); /* * Valuation Parameters */ ValuationParams valParams = ValuationParams.CreateValParams(dtStart, 0, "", Convention.DR_ACTUAL); /* * Standard Credit Pricer Parameters (check javadoc for details) */ PricerParams pricerParams = PricerParams.MakeStdPricerParams(); /* * Re-calculate the input calibration measures for the input CDSes */ for (int i = 0; i < aCDS.length; ++i) System.out.println( "\t" + astrCalibMeasure[i] + "[" + i + "] = " + aCDS[i].calcMeasureValue( valParams, pricerParams, ComponentMarketParamsBuilder.CreateComponentMarketParams( dc, null, null, cc, null, null, null), null, astrCalibMeasure[i])); }