QLNet.PricipalLeg.value C# (CSharp) Метод

value() публичный Метод

public value ( ) : List
Результат List
        public override List<CashFlow> value()
        {
            List<CashFlow> leg = new List<CashFlow>();

             // the following is not always correct
             Calendar calendar = schedule_.calendar();

             // first period
             Date start = schedule_[0], end = schedule_[schedule_.Count - 1];
             Date paymentDate = calendar.adjust(start, paymentAdjustment_);
             double nominal = notionals_[0];
             double quota = nominal / (schedule_.Count - 1);

             leg.Add(new Principal(nominal * sign_, nominal, paymentDate, start, end, dayCounter_,  start, end));

             if (schedule_.Count == 2)
             {
            paymentDate = calendar.adjust(end, paymentAdjustment_);
            leg.Add(new Principal(nominal * sign_ * -1, 0, paymentDate, start, end, dayCounter_, start, end));
             }
             else
             {
            end = schedule_[0];
            // regular periods
            for (int i = 1; i <= schedule_.Count - 1; ++i)
            {
               start = end; end = schedule_[i];
               paymentDate = calendar.adjust(start, paymentAdjustment_);
               nominal -= quota;

               leg.Add(new Principal(quota * sign_ * -1, nominal, paymentDate, start, end, dayCounter_, start, end));
            }
             }

             return leg;
        }