Package org.jquantlib.instruments.bonds

Examples of org.jquantlib.instruments.bonds.ConvertibleFixedCouponBond


        // final Quote rate = new SimpleQuote(riskFreeRate);
        //
        // final Handle<YieldTermStructure> discountCurve = new Handle<YieldTermStructure>(
        //         new FlatForward(today, new Handle<Quote>(rate), dayCounter));

        final ConvertibleFixedCouponBond europeanBond = new ConvertibleFixedCouponBond(
                europeanExercise, conversionRatio, dividends, callability,
                creditSpread, issueDate, settlementDays,
                coupons, bondDayCount, schedule, redemption);

        final ConvertibleFixedCouponBond americanBond = new ConvertibleFixedCouponBond(
                americanExercise, conversionRatio, dividends, callability,
                creditSpread, issueDate, settlementDays,
                coupons, bondDayCount, schedule, redemption);

        String method;
        PricingEngine engine;

        method = "Jarrow-Rudd";
        engine = new BinomialConvertibleEngine<JarrowRudd>(JarrowRudd.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );

        method = "Cox-Ross-Rubinstein";
        engine = new BinomialConvertibleEngine<CoxRossRubinstein>(CoxRossRubinstein.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );

        method = "Additive equiprobabilities";
        engine = new BinomialConvertibleEngine<AdditiveEQPBinomialTree>(AdditiveEQPBinomialTree.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );

        method = "Trigeorgis";
        engine = new BinomialConvertibleEngine<Trigeorgis>(Trigeorgis.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );

        method = "Tian";
        engine = new BinomialConvertibleEngine<Tian>(Tian.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );

        method = "Leisen-Reimer";
        engine = new BinomialConvertibleEngine<LeisenReimer>(LeisenReimer.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );

        method = "Joshi";
        engine = new BinomialConvertibleEngine<Joshi4>(Joshi4.class, stochasticProcess, timeSteps);
        europeanBond.setPricingEngine(engine);
        americanBond.setPricingEngine(engine);
        System.out.printf(fmt, method, europeanBond.NPV(), americanBond.NPV() );


        clock.stopClock();
        clock.log();
    }
View Full Code Here


    schedule = new MakeSchedule(vars.issueDate, vars.maturityDate,
        new Period(vars.frequency), vars.calendar,
        BusinessDayConvention.Following).backwards().schedule();

    final ConvertibleFixedCouponBond euFixed = new ConvertibleFixedCouponBond(
        euExercise, vars.conversionRatio, vars.no_dividends,
        vars.no_callability, vars.creditSpread, vars.issueDate,
        vars.settlementDays, coupons, vars.dayCounter, schedule,
        vars.redemption);
    euFixed.setPricingEngine(engine);

    final ConvertibleFixedCouponBond amFixed = new ConvertibleFixedCouponBond(
        amExercise, vars.conversionRatio, vars.no_dividends,
        vars.no_callability, vars.creditSpread, vars.issueDate,
        vars.settlementDays, coupons, vars.dayCounter, schedule,
        vars.redemption);
    amFixed.setPricingEngine(engine);

    final FixedRateBond fixed = new FixedRateBond(vars.settlementDays,
        vars.faceAmount, schedule, coupons, vars.dayCounter,
        BusinessDayConvention.Following, vars.redemption,
        vars.issueDate);

    fixed.setPricingEngine(bondEngine);

    tolerance = 2.0e-2 * (vars.faceAmount / 100.0);

    error = Math.abs(euFixed.NPV() - fixed.settlementValue());
    if (error > tolerance) {
      fail("failed to reproduce fixed-coupon bond price:"
          + "\n    calculated: " + euFixed.NPV()
          + "\n    expected:   " + fixed.settlementValue()
          + "\n    error:      " + error);
    }

    error = Math.abs(amFixed.NPV() - fixed.settlementValue());
    if (error > tolerance) {
      fail("failed to reproduce fixed-coupon bond price:"
          + "\n    calculated: " + amFixed.NPV()
          + "\n    expected:   " + fixed.settlementValue()
          + "\n    error:      " + error);
    }

    // floating-rate
View Full Code Here

TOP

Related Classes of org.jquantlib.instruments.bonds.ConvertibleFixedCouponBond

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.