示例#1
0
 public InterpolatedForwardCurve(DayCounter dayCounter,
                                 List <Handle <Quote> > jumps = null,
                                 List <Date> jumpDates        = null,
                                 Interpolator interpolator    = default(Interpolator))
     : base(dayCounter, jumps, jumpDates)
 {
     interpolator_ = interpolator ?? FastActivator <Interpolator> .Create();
 }
示例#2
0
文件: ZeroCurve.cs 项目: qed-/qlnet
 public InterpolatedZeroCurve(DayCounter dayCounter,
                              List <Handle <Quote> > jumps = null,
                              List <Date> jumpDates        = null,
                              Interpolator interpolator    = default(Interpolator))
     : base(dayCounter, jumps, jumpDates)
 {
     interpolator_ = interpolator ?? new Interpolator();
 }
示例#3
0
 public InterpolatedForwardCurve(Date referenceDate,
                                 DayCounter dayCounter,
                                 List <Handle <Quote> > jumps = null,
                                 List <Date> jumpDates        = null,
                                 Interpolator interpolator    = default(Interpolator))
     : base(referenceDate, null, dayCounter, jumps, jumpDates)
 {
     interpolator_ = interpolator ?? new Interpolator();
 }
示例#4
0
 public InterpolatedDiscountCurve(Date referenceDate,
                                  DayCounter dayCounter,
                                  List <Handle <Quote> > jumps = null,
                                  List <Date> jumpDates        = null,
                                  Interpolator interpolator    = default(Interpolator))
     : base(referenceDate, null, dayCounter, jumps, jumpDates)
 {
     interpolator_ = interpolator ?? FastActivator <Interpolator> .Create();
 }
示例#5
0
 public InterpolatedForwardCurve(int settlementDays,
                                 Calendar calendar,
                                 DayCounter dayCounter,
                                 List <Handle <Quote> > jumps = null,
                                 List <Date> jumpDates        = null,
                                 Interpolator interpolator    = default(Interpolator))
     : base(settlementDays, calendar, dayCounter, jumps, jumpDates)
 {
     interpolator_ = interpolator ?? FastActivator <Interpolator> .Create();
 }
示例#6
0
文件: ZeroCurve.cs 项目: qed-/qlnet
 public InterpolatedZeroCurve(int settlementDays,
                              Calendar calendar,
                              DayCounter dayCounter,
                              List <Handle <Quote> > jumps = null,
                              List <Date> jumpDates        = null,
                              Interpolator interpolator    = default(Interpolator))
     : base(settlementDays, calendar, dayCounter, jumps, jumpDates)
 {
     interpolator_ = interpolator ?? new Interpolator();
 }
示例#7
0
 public InterpolatedForwardCurve(List <Date> dates,
                                 List <double> forwards,
                                 DayCounter dayCounter,
                                 Interpolator interpolator)
     : base(dates[0], null, dayCounter)
 {
     times_        = new List <double>();
     data_         = forwards;
     interpolator_ = interpolator;
     dates_        = dates;
     initialize();
 }
示例#8
0
 public InterpolatedDiscountCurve(List <Date> dates,
                                  List <double> discounts,
                                  DayCounter dayCounter,
                                  Interpolator interpolator)
     : base(dates[0], null, dayCounter)
 {
     times_        = new List <double>();
     dates_        = dates;
     data_         = discounts;
     interpolator_ = interpolator;
     initialize();
 }
示例#9
0
 /*! Protected version for use when descendents don't want to
  *  (or can't) provide the points for interpolation on
  *  construction.
  */
 protected internal InterpolatedYoYInflationCurve(Date referenceDate,
                                                  Calendar calendar,
                                                  DayCounter dayCounter,
                                                  Period lag,
                                                  Frequency frequency,
                                                  bool indexIsInterpolated,
                                                  double baseZeroRate,
                                                  Handle <YieldTermStructure> yTS,
                                                  Interpolator interpolator = default(Interpolator))
     : base(referenceDate, calendar, dayCounter, baseZeroRate, lag, frequency, indexIsInterpolated, yTS)
 {
     interpolator_ = interpolator ?? FastActivator <Interpolator> .Create();
 }
示例#10
0
        //public InterpolatedDiscountCurve(List<Date> dates, List<double> discounts, DayCounter dayCounter,
        //                                 Calendar cal = Calendar(), Interpolator interpolator = Interpolator())
        public InterpolatedDiscountCurve(List <Date> dates, List <double> discounts, DayCounter dayCounter,
                                         Calendar cal, List <Handle <Quote> > jumps = null, List <Date> jumpDates = null,
                                         Interpolator interpolator = default(Interpolator))
            : base(dates.First(), cal, dayCounter, jumps, jumpDates)
        {
            times_        = new List <double>();
            data_         = discounts;
            interpolator_ = interpolator;
            dates_        = dates;

            if (dates_.empty())
            {
                throw new ApplicationException("no input dates given");
            }
            if (data_.empty())
            {
                throw new ApplicationException("no input discount factors given");
            }
            if (data_.Count != dates_.Count)
            {
                throw new ApplicationException("dates/discount factors count mismatch");
            }
            if (data_[0] != 1.0)
            {
                throw new ApplicationException("the first discount must be == 1.0 " +
                                               "to flag the corrsponding date as settlement date");
            }

            times_ = new InitializedList <double>(dates_.Count - 1);
            times_.Add(0.0);
            for (int i = 1; i < dates_.Count; i++)
            {
                if (!(dates_[i] > dates_[i - 1]))
                {
                    throw new ApplicationException("invalid date (" + dates_[i] + ", vs " + dates_[i - 1] + ")");
                }
                if (!(data_[i] > 0.0))
                {
                    throw new ApplicationException("negative discount");
                }
                times_[i] = dayCounter.yearFraction(dates_[0], dates_[i]);
                if (Utils.close(times_[i], times_[i - 1]))
                {
                    throw new ApplicationException("two dates correspond to the same time " +
                                                   "under this curve's day count convention");
                }
            }

            setupInterpolation();
            interpolation_.update();
        }
示例#11
0
 public InterpolatedForwardCurve(List <Date> dates,
                                 List <double> forwards,
                                 DayCounter dayCounter,
                                 List <Handle <Quote> > jumps,
                                 List <Date> jumpDates,
                                 Interpolator interpolator = default(Interpolator))
     : base(dates[0], null, dayCounter, jumps, jumpDates)
 {
     times_        = new List <double>();
     dates_        = dates;
     data_         = forwards;
     interpolator_ = interpolator ?? new Interpolator();
     initialize();
 }
示例#12
0
文件: ZeroCurve.cs 项目: qed-/qlnet
 public InterpolatedZeroCurve(List <Date> dates,
                              List <double> yields,
                              DayCounter dayCounter,
                              Interpolator interpolator,
                              Compounding compounding = Compounding.Continuous,
                              Frequency frequency     = Frequency.Annual)
     : base(dates[0], null, dayCounter)
 {
     times_        = new List <double>();
     dates_        = dates;
     data_         = yields;
     interpolator_ = interpolator;
     initialize(compounding, frequency);
 }
示例#13
0
        public InterpolatedDiscountCurve(List <Date> dates,
                                         List <double> discounts,
                                         DayCounter dayCounter,
                                         List <Handle <Quote> > jumps,
                                         List <Date> jumpDates,
                                         Interpolator interpolator = default(Interpolator))
            : base(dates[0], null, dayCounter, jumps, jumpDates)
        {
            times_        = new List <double>();
            dates_        = dates;
            data_         = discounts;
            interpolator_ = interpolator ?? FastActivator <Interpolator> .Create();

            initialize();
        }
示例#14
0
 public InterpolatedDiscountCurve(List <Date> dates,
                                  List <double> discounts,
                                  DayCounter dayCounter,
                                  Calendar calendar            = null,
                                  List <Handle <Quote> > jumps = null,
                                  List <Date> jumpDates        = null,
                                  Interpolator interpolator    = default(Interpolator))
     : base(dates[0], calendar, dayCounter, jumps, jumpDates)
 {
     times_        = new List <double>();
     dates_        = dates;
     data_         = discounts;
     interpolator_ = interpolator ?? new Interpolator();
     initialize();
 }
示例#15
0
        public InterpolatedForwardCurve(List <Date> dates,
                                        List <double> forwards,
                                        DayCounter dayCounter,
                                        Calendar calendar            = null,
                                        List <Handle <Quote> > jumps = null,
                                        List <Date> jumpDates        = null,
                                        Interpolator interpolator    = default(Interpolator))
            : base(dates[0], calendar, dayCounter, jumps, jumpDates)
        {
            times_        = new List <double>();
            data_         = forwards;
            interpolator_ = interpolator ?? FastActivator <Interpolator> .Create();

            dates_ = dates;
            initialize();
        }
示例#16
0
文件: ZeroCurve.cs 项目: qed-/qlnet
 public InterpolatedZeroCurve(List <Date> dates,
                              List <double> yields,
                              DayCounter dayCounter,
                              Calendar calendar            = null,
                              List <Handle <Quote> > jumps = null,
                              List <Date> jumpDates        = null,
                              Interpolator interpolator    = default(Interpolator),
                              Compounding compounding      = Compounding.Continuous,
                              Frequency frequency          = Frequency.Annual)
     : base(dates[0], calendar, dayCounter, jumps, jumpDates)
 {
     times_        = new List <double>();
     dates_        = dates;
     data_         = yields;
     interpolator_ = interpolator ?? new Interpolator();
     initialize(compounding, frequency);
 }
示例#17
0
        public InterpolatedForwardCurve(List <Date> dates, List <double> yields, DayCounter dayCounter, List <Handle <Quote> > jumps = null, List <Date> jumpDates = null, Interpolator interpolator = default(Interpolator))
            : base(dates.First(), new Calendar(), dayCounter, jumps, jumpDates)
        {
            times_        = new List <double>();
            dates_        = dates;
            data_         = yields;
            interpolator_ = interpolator;

            if (!(dates_.Count > 1))
            {
                throw new ApplicationException("too few dates");
            }
            if (data_.Count != dates_.Count)
            {
                throw new ApplicationException("dates/yields count mismatch");
            }

            times_ = new List <double>(dates_.Count);
            times_.Add(0.0);
            for (int i = 1; i < dates_.Count; i++)
            {
                if (!(dates_[i] > dates_[i - 1]))
                {
                    throw new ApplicationException("invalid date (" + dates_[i] + ", vs " + dates_[i - 1] + ")");
                }

                //#if !defined(QL_NEGATIVE_RATES)
                //QL_REQUIRE(this->data_[i] >= 0.0, "negative forward");
                //#endif

                times_[i] = dayCounter.yearFraction(dates_[0], dates_[i]);

                if (Utils.close(times_[i], times_[i - 1]))
                {
                    throw new ApplicationException("two dates correspond to the same time " +
                                                   "under this curve's day count convention");
                }
            }

            setupInterpolation();
            interpolation_.update();
        }
示例#18
0
 public LogInterpolationImpl(List <double> xBegin, int size, List <double> yBegin, IInterpolationFactory factory)
     : base(xBegin, size, yBegin)
 {
     logY_          = new InitializedList <double>(size_);
     interpolation_ = factory.interpolate(xBegin_, size, logY_);
 }