Example #1
0
 public virtual void Build()
 {
     _calendar       = Parsers.ParseCalendar(_strCalendar);
     _convention     = Parsers.ParseBusinessDayConvention(_strConvention);
     _eom            = Parsers.ParseBool(_strEom);
     _dayCounter     = Parsers.ParseDayCounter(_strDayCounter);
     _settlementDays = Parsers.ParseInteger(_strSettlementDays);
 }
Example #2
0
        public virtual void Build()
        {
            _dayCounter           = Parsers.ParseDayCounter(_strDayCounter);
            _compounding          = _strCompounding == string.Empty ? QLNet.Compounding.Continuous : Parsers.ParseCompounding(_strCompounding);
            _compoundingFrequency = _strCompoundingFrequency == string.Empty ? Frequency.Annual : Parsers.ParseFrequency(_strCompoundingFrequency);

            if (_tenorBased)
            {
                _tenorCalendar  = Parsers.ParseCalendar(_strTenorCalendar);
                _spotLag        = Convert.ToInt32(_strSpotLag);
                _spotCalendar   = Parsers.ParseCalendar(_strSpotCalendar);
                _rollConvention = Parsers.ParseBusinessDayConvention(_strRollConvention);
                _eom            = Parsers.ParseBool(_strEom);
            }
        }
Example #3
0
        public virtual void Build()
        {
            _fixedCalendar   = Parsers.ParseCalendar(_strFixedCalendar);
            _fixedFrequency  = Parsers.ParseFrequency(_strFixedFrequency);
            _fixedConvention = Parsers.ParseBusinessDayConvention(_strFixedConvention);
            _fixedDayCounter = Parsers.ParseDayCounter(_strFixedDayCounter);
            _index           = Parsers.ParseIborIndex(_strIndex);

            if (_hasSubPeriod)
            {
                _floatFrequency = Parsers.ParseFrequency(_strFloatFrequency);
                //_subPeriodsCouponType = Parsers.ParseSubPeriodsCouponType(_strSubPeriodsCouponType);
            }
            else
            {
                _floatFrequency = Frequency.NoFrequency;
                //_subPeriodsCouponType = QuantExt::SubPeriodsCoupon::Compounding;
            }
        }
Example #4
0
        public override void FromXML(XmlNode node)
        {
            CheckNode(node, "SwaptionVolatility");

            _curveID          = GetChildValue(node, "CurveId", true);
            _curveDescription = GetChildValue(node, "CurveDescription", true);

            string dim = GetChildValue(node, "Dimension", true);

            if (dim == "ATM")
            {
                _dimension = Dimension.ATM;
            }
            else if (dim == "Smile")
            {
                _dimension = Dimension.Smile;
            }
            else
            {
                Utils.QL_FAIL("Dimension " + dim + " not recognized");
            }

            string volType = GetChildValue(node, "VolatilityType", true);

            if (volType == "Normal")
            {
                _volatilityType = VolatilityType.Normal;
            }
            else if (volType == "Lognormal")
            {
                _volatilityType = VolatilityType.Lognormal;
            }
            else if (volType == "ShiftedLognormal")
            {
                _volatilityType = VolatilityType.ShiftedLognormal;
            }
            else
            {
                Utils.QL_FAIL("Volatility type " + volType + " not recognized");
            }

            string extr = GetChildValue(node, "Extrapolation", true);

            _extrapolate       = true;
            _flatExtrapolation = true;
            if (extr == "Linear")
            {
                _flatExtrapolation = false;
            }
            else if (extr == "Flat")
            {
                _flatExtrapolation = true;
            }
            else if (extr == "None")
            {
                _extrapolate = false;
            }
            else
            {
                Utils.QL_FAIL("Extrapolation " + extr + " not recognized");
            }

            _optionTenors = GetChildrenValuesAsPeriods(node, "OptionTenors", true);
            _swapTenors   = GetChildrenValuesAsPeriods(node, "SwapTenors", true);

            string cal = GetChildValue(node, "Calendar", true);

            _calendar = Parsers.ParseCalendar(cal);

            string dc = GetChildValue(node, "DayCounter", true);

            _dayCounter = Parsers.ParseDayCounter(dc);

            string bdc = GetChildValue(node, "BusinessDayConvention", true);

            _businessDayConvention = Parsers.ParseBusinessDayConvention(bdc);

            _shortSwapIndexBase = GetChildValue(node, "ShortSwapIndexBase", true);
            _swapIndexBase      = GetChildValue(node, "SwapIndexBase", true);

            // optional smile stuff
            _smileOptionTenors = GetChildrenValuesAsPeriods(node, "SmileOptionTenors", false);
            _smileSwapTenors   = GetChildrenValuesAsPeriods(node, "SmileSwapTenors", false);
            _smileSpreads      = GetChildrenValuesAsDoublesCompact(node, "SmileSpreads", false);
        }
Example #5
0
        public virtual void Build()
        {
            // First check that we have an overnight index.
            _index = (OvernightIndex)Parsers.ParseIborIndex(_strIndex);
            Utils.QL_REQUIRE(_index != null, () => "The index string, " + _strIndex + ", does not represent an overnight index.");

            _spotLag                = Parsers.ParseInteger(_strSpotLag);
            _fixedDayCounter        = Parsers.ParseDayCounter(_strFixedDayCounter);
            _paymentLag             = _strPaymentLag == string.Empty ? 0 : Parsers.ParseInteger(_strPaymentLag);
            _eom                    = _strEom == string.Empty ? false : Parsers.ParseBool(_strEom);
            _fixedFrequency         = _strFixedFrequency == string.Empty ? Frequency.Annual : Parsers.ParseFrequency(_strFixedFrequency);
            _fixedConvention        = _strFixedConvention == string.Empty ? BusinessDayConvention.Following : Parsers.ParseBusinessDayConvention(_strFixedConvention);
            _fixedPaymentConvention = _strFixedPaymentConvention == string.Empty ? BusinessDayConvention.Following : Parsers.ParseBusinessDayConvention(_strFixedPaymentConvention);
            //_rule = _strRule == string.Empty ? DateGeneration.Rule.Backward : Parsers.ParseDateGenerationRule(_strRule);
        }