Package org.jquantlib.time

Examples of org.jquantlib.time.Date


    }

    @Ignore
    @Test
    public void testPiecewiseYieldCurve() {
        final Date d = new Date();
        final RateHelper[] instruments = null;
        final DayCounter dc = new DayCounter();
        final Handle<Quote> jumps[] = null;
        final Date[] jumpDates = null;
        final double accuracy = 0;
View Full Code Here


    public abstract double volatilityImpl(double length, double strike);

    // ! returns the volatility for a given cap/floor length and strike rate
    public double volatility(final Period optionTenor, final double strike, final boolean extrapolate) {
        final Date exerciseDate = calendar().advance(referenceDate(), optionTenor, BusinessDayConvention.Following); // FIXME: Original
        // C++ comment
        return volatility(exerciseDate, strike, extrapolate);
    }
View Full Code Here

        QL.require(fixingDays >= 2 , "wrong number of fixing days")// QA:[RG]::verified // TODO: message

        // TODO: code review :: please verify against QL/C++ code
        tenor.normalize();

        final Date evaluationDate = new Settings().evaluationDate();

        // TODO: code review :: please verify against QL/C++ code
        // 1. seems like we should have this.evaluationDate
        // 2. we should get rid of static calls and singletons

        evaluationDate.addObserver(this);
        IndexManager.getInstance().notifier(name()).addObserver(this);
        //XXX:registerWith
        //registerWith(evaluationDate);
        //registerWith(IndexManager.getInstance().notifier(name()));
    }
View Full Code Here

        QL.info("Testing actual/actual day counters...");

        final SingleCase testCases[] = new SingleCase[] {
                // first example
                new SingleCase(ActualActual.Convention.ISDA,
                        new Date(1,Month.November,2003), new Date(1,Month.May,2004),
                        0.497724380567),
                        new SingleCase(ActualActual.Convention.ISMA,
                                new Date(1,Month.November,2003), new Date(1,Month.May,2004),
                                new Date(1,Month.November,2003), new Date(1,Month.May,2004),
                                0.500000000000),
                                new SingleCase(ActualActual.Convention.AFB,
                                        new Date(1,Month.November,2003), new Date(1,Month.May,2004),
                                        0.497267759563),
                                        // short first calculation period (first period)
                                        new SingleCase(ActualActual.Convention.ISDA,
                                                new Date(1,Month.February,1999), new Date(1,Month.July,1999),
                                                0.410958904110),
                                                new SingleCase(ActualActual.Convention.ISMA,
                                                        new Date(1,Month.February,1999), new Date(1,Month.July,1999),
                                                        new Date(1,Month.July,1998), new Date(1,Month.July,1999),
                                                        0.410958904110),
                                                        new SingleCase(ActualActual.Convention.AFB,
                                                                new Date(1,Month.February,1999), new Date(1,Month.July,1999),
                                                                0.410958904110),
                                                                // short first calculation period (second period)
                                                                new SingleCase(ActualActual.Convention.ISDA,
                                                                        new Date(1,Month.July,1999), new Date(1,Month.July,2000),
                                                                        1.001377348600),
                                                                        new SingleCase(ActualActual.Convention.ISMA,
                                                                                new Date(1,Month.July,1999), new Date(1,Month.July,2000),
                                                                                new Date(1,Month.July,1999), new Date(1,Month.July,2000),
                                                                                1.000000000000),
                                                                                new SingleCase(ActualActual.Convention.AFB,
                                                                                        new Date(1,Month.July,1999), new Date(1,Month.July,2000),
                                                                                        1.000000000000),
                                                                                        // long first calculation period (first period)
                                                                                        new SingleCase(ActualActual.Convention.ISDA,
                                                                                                new Date(15,Month.August,2002), new Date(15,Month.July,2003),
                                                                                                0.915068493151),
                                                                                                new SingleCase(ActualActual.Convention.ISMA,
                                                                                                        new Date(15,Month.August,2002), new Date(15,Month.July,2003),
                                                                                                        new Date(15,Month.January,2003), new Date(15,Month.July,2003),
                                                                                                        0.915760869565),
                                                                                                        new SingleCase(ActualActual.Convention.AFB,
                                                                                                                new Date(15,Month.August,2002), new Date(15,Month.July,2003),
                                                                                                                0.915068493151),
                                                                                                                // long first calculation period (second period)
                                                                                                                /* Warning: the ISDA case is in disagreement with mktc1198.pdf */
                                                                                                                new SingleCase(ActualActual.Convention.ISDA,
                                                                                                                        new Date(15,Month.July,2003), new Date(15,Month.January,2004),
                                                                                                                        0.504004790778),
                                                                                                                        new SingleCase(ActualActual.Convention.ISMA,
                                                                                                                                new Date(15,Month.July,2003), new Date(15,Month.January,2004),
                                                                                                                                new Date(15,Month.July,2003), new Date(15,Month.January,2004),
                                                                                                                                0.500000000000),
                                                                                                                                new SingleCase(ActualActual.Convention.AFB,
                                                                                                                                        new Date(15,Month.July,2003), new Date(15,Month.January,2004),
                                                                                                                                        0.504109589041),
                                                                                                                                        // short final calculation period (penultimate period)
                                                                                                                                        new SingleCase(ActualActual.Convention.ISDA,
                                                                                                                                                new Date(30,Month.July,1999), new Date(30,Month.January,2000),
                                                                                                                                                0.503892506924),
                                                                                                                                                new SingleCase(ActualActual.Convention.ISMA,
                                                                                                                                                        new Date(30,Month.July,1999), new Date(30,Month.January,2000),
                                                                                                                                                        new Date(30,Month.July,1999), new Date(30,Month.January,2000),
                                                                                                                                                        0.500000000000),
                                                                                                                                                        new SingleCase(ActualActual.Convention.AFB,
                                                                                                                                                                new Date(30,Month.July,1999), new Date(30,Month.January,2000),
                                                                                                                                                                0.504109589041),
                                                                                                                                                                // short final calculation period (final period)
                                                                                                                                                                new SingleCase(ActualActual.Convention.ISDA,
                                                                                                                                                                        new Date(30,Month.January,2000), new Date(30,Month.June,2000),
                                                                                                                                                                        0.415300546448),
                                                                                                                                                                        new SingleCase(ActualActual.Convention.ISMA,
                                                                                                                                                                                new Date(30,Month.January,2000), new Date(30,Month.June,2000),
                                                                                                                                                                                new Date(30,Month.January,2000), new Date(30,Month.July,2000),
                                                                                                                                                                                0.417582417582),
                                                                                                                                                                                new SingleCase(ActualActual.Convention.AFB,
                                                                                                                                                                                        new Date(30,Month.January,2000), new Date(30,Month.June,2000),
                                                                                                                                                                                        0.41530054644)
        };

        for (int i=0; i<testCases.length-1; i++) {
            final ActualActual dayCounter =  new ActualActual(testCases[i].convention);
            final Date d1 = testCases[i].start;
            final Date d2 = testCases[i].end;
            final Date rd1 = testCases[i].refStart;
            final Date rd2 = testCases[i].refEnd;

            QL.info(testCases[i].toString());

            /*@Time*/ final double  calculated = dayCounter.yearFraction(d1, d2, rd1, rd2);

View Full Code Here

        final Period p[] = new Period[] { new Period(3, TimeUnit.Months), new Period(6, TimeUnit.Months), new Period(1, TimeUnit.Years) };
        /*@Time*/ final double expected[] = { 0.25, 0.5, 1.0 };

        // 4 years should be enough
        final Date first = new Date(1,Month.January,2002);
        final Date last  = new Date(31,Month.December,2005);
        final DayCounter dayCounter = new SimpleDayCounter();

        for (final Date start = first; start.le(last); start.inc()) {
            for (int i=0; i<expected.length-1; i++) {
                final Date end = start.add(p[i]);
                /*@Time*/ final double  calculated = dayCounter.yearFraction(start, end);

                if (abs(calculated-expected[i]) > 1.0e-12) {
                    fail("from " + start + " to " + end + ":\n"
                            + "    calculated: " + calculated + "\n"
View Full Code Here

    @Override
    // TODO: code review :: please verify against QL/C++ code
    public double fixing(final Date fixingDate, final boolean forecastTodaysFixing) {
        // TODO: code review :: please verify against QL/C++ code
        QL.require(isValidFixingDate(fixingDate) , "Fixing date is not valid"); // QA:[RG]::verified // TODO: message
        final Date today = new Settings().evaluationDate();
        final boolean enforceTodaysHistoricFixings = new Settings().isEnforcesTodaysHistoricFixings();

        if (fixingDate.lt(today) || (fixingDate.equals(today) && enforceTodaysHistoricFixings && !forecastTodaysFixing)) {
            // must have been fixed
            try {
View Full Code Here

        final Period p[] = new Period[]{ new Period(3, TimeUnit.Months), new Period(6, TimeUnit.Months), new Period(1, TimeUnit.Years) };
        /*@Time*/ final double expected[] = new double[] { 1.0, 1.0, 1.0 };

        // 1 years should be enough
        final Date first = new Date(1,Month.January,2004);
        final Date last  = new Date(31,Month.December,2004);
        final DayCounter dayCounter = new SimpleDayCounter();

        for (final Date start = first; start.le(last); start.inc()) {
            for (int i=0; i<expected.length-1; i++) {
                final Date end = start.add(p[i]);
                /*@Time*/ final double  calculated = dayCounter.yearFraction(start, end);

                if (abs(calculated-expected[i]) <= 1.0e-12) {
                    fail("from " + start + " to " + end + ":\n"
                            + "    calculated: " + calculated + "\n"
View Full Code Here

    @Test
    public void immDates() {
        QL.info("Testing imm dates. It may take several minutes when Cobertura reports are generated!!!");

        final Date minDate = Date.minDate();
        final Date maxDate = Date.maxDate();

        final Date counter = minDate.clone();

        // 10 years of futures must not exceed Date::maxDate
        final Period period = new Period(-10, TimeUnit.Years);
        final Date last = maxDate.clone().addAssign(period);

        while (counter.le(last)) {

            final Date immDate = IMM.nextDate(counter, false);

            // check that imm is greater than counter
            if (immDate.le(counter)) {
                fail("\n  " + immDate.weekday() + " " + immDate + " is not greater than " + counter.weekday() + " " + counter);
            }

            // check that imm is an IMM date
            if (!IMM.isIMMdate(immDate, false)) {
                fail("\n  " + immDate.weekday() + " " + immDate + " is not an IMM date (calculated from " + counter.weekday() + " " + counter + ")");
            }

            // check that imm is <= to the next IMM date in the main cycle
            if (immDate.gt(IMM.nextDate(counter, true))) {
                fail("\n  " + immDate.weekday() + " " + immDate + " is not less than or equal to the next future in the main cycle " + IMM.nextDate(counter, true));
            }

            //
            // COMMENTED AT SOURCE QuantLib 0.8.1
            //
View Full Code Here

    @Test
    public void testBusiness252() {

        QL.info("Testing business/252 day counter...");

        final Date testDates[] = {
                new Date(1,Month.February,2002),
                new Date(4,Month.February,2002),
                new Date(16,Month.May,2003),
                new Date(17,Month.December,2003),
                new Date(17,Month.December,2004),
                new Date(19,Month.December,2005),
                new Date(2,Month.January,2006),
                new Date(13,Month.March,2006),
                new Date(15,Month.May,2006),
                new Date(17,Month.March,2006),
                new Date(15,Month.May,2006),
                new Date(26,Month.July,2006) };

        /*@Time*/ final double expected[] = {
                0.0039682539683,
                1.2738095238095,
                0.6031746031746,
                0.9960317460317,
                1.0000000000000,
                0.0396825396825,
                0.1904761904762,
                0.1666666666667,
                -0.1507936507937,
                0.1507936507937,
                0.2023809523810
        };

        final DayCounter dayCounter = new Business252(new Brazil(Brazil.Market.SETTLEMENT));

        for (int i=1; i<testDates.length-1; i++) {
            final Date start = testDates[i-1];
            final Date end = testDates[i];
            /*@Time*/ final double  calculated = dayCounter.yearFraction(start, end);
            // System.out.println(calculated);
            assertFalse(dayCounter.getClass().getName()
                    +"\n from "+start
                    +"\n to "+end
View Full Code Here

        builder.append(dayCounter.name());
        return builder.toString();
    }

    public Date fixingDate(final Date valueDate) {
        final Date fixingDate = fixingCalendar().advance(valueDate, (fixingDays), TimeUnit.Days);
        QL.ensure(isValidFixingDate(fixingDate) , "fixing date is not valid"); // TODO: message
        return fixingDate;
    }
View Full Code Here

TOP

Related Classes of org.jquantlib.time.Date

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.