Package com.opengamma.analytics.financial.interestrate.annuity.derivative

Examples of com.opengamma.analytics.financial.interestrate.annuity.derivative.AnnuityCouponFixed


  public double presentValueBasisPoint(final SwapFixedCoupon<? extends Payment> fixedCouponSwap, final DayCount dayCount, final Calendar calendar,
      final MulticurveProviderInterface multicurves) {
    ArgumentChecker.notNull(fixedCouponSwap, "swap");
    ArgumentChecker.notNull(dayCount, "day count");
    ArgumentChecker.notNull(multicurves, "Multi-curves provider");
    final AnnuityCouponFixed annuityFixed = fixedCouponSwap.getFixedLeg();
    double pvbp = 0;
    for (int loopcpn = 0; loopcpn < annuityFixed.getPayments().length; loopcpn++) {
      pvbp += dayCount.getDayCountFraction(annuityFixed.getNthPayment(loopcpn).getAccrualStartDate(), annuityFixed.getNthPayment(loopcpn).getAccrualEndDate(), calendar)
          * Math.abs(annuityFixed.getNthPayment(loopcpn).getNotional())
          * multicurves.getDiscountFactor(annuityFixed.getNthPayment(loopcpn).getCurrency(), annuityFixed.getNthPayment(loopcpn).getPaymentTime());
    }
    return pvbp;
  }
View Full Code Here


   * @param notional The notional.
   * @return The new swap.
   */
  @SuppressWarnings("unchecked")
  public SwapFixedCoupon<R> withNotional(final double notional) {
    final AnnuityCouponFixed legFixedNotional = getFixedLeg().withNotional(notional * Math.signum(getFixedLeg().getNthPayment(0).getNotional()));
    final Coupon[] cpn = new Coupon[getSecondLeg().getNumberOfPayments()];
    for (int loopcpn = 0; loopcpn < getSecondLeg().getNumberOfPayments(); loopcpn++) {
      cpn[loopcpn] = getSecondLeg().getNthPayment(loopcpn).withNotional(notional * Math.signum(getSecondLeg().getNthPayment(loopcpn).getNotional()));
    }
    return new SwapFixedCoupon<>(legFixedNotional, new Annuity<>((R[]) cpn));
View Full Code Here

   * Creates a new swap with the same characteristics, except that the fixed coupon rate of all coupons is the one given.
   * @param rate The rate.
   * @return The new swap.
   */
  public SwapFixedCoupon<R> withRate(final double rate) {
    final AnnuityCouponFixed legFixedNotional = getFixedLeg().withRate(rate);
    return new SwapFixedCoupon<>(legFixedNotional, getSecondLeg());
  }
View Full Code Here

   * Creates a new swap with the same characteristics, except that the fixed coupon rate of all coupons are shifted by the given amount.
   * @param spread The spread.
   * @return The new swap.
   */
  public SwapFixedCoupon<R> withRateShifted(final double spread) {
    final AnnuityCouponFixed legFixedNotional = getFixedLeg().withRateShifted(spread);
    return new SwapFixedCoupon<>(legFixedNotional, getSecondLeg());
  }
View Full Code Here

   * @param fixedCouponSwap The swap.
   * @param multicurves The multi-curves provider.
   * @return The sensitivity.
   */
  public MulticurveSensitivity presentValueBasisPointCurveSensitivity(final SwapFixedCoupon<? extends Payment> fixedCouponSwap, final MulticurveProviderInterface multicurves) {
    final AnnuityCouponFixed annuityFixed = fixedCouponSwap.getFixedLeg();
    final Currency ccy = annuityFixed.getCurrency();
    double time;
    final List<DoublesPair> list = new ArrayList<>();
    for (int loopcpn = 0; loopcpn < annuityFixed.getPayments().length; loopcpn++) {
      time = annuityFixed.getNthPayment(loopcpn).getPaymentTime();
      final DoublesPair s = new DoublesPair(time, -time * multicurves.getDiscountFactor(ccy, time) * annuityFixed.getNthPayment(loopcpn).getPaymentYearFraction()
          * Math.abs(annuityFixed.getNthPayment(loopcpn).getNotional()));
      list.add(s);
    }
    final Map<String, List<DoublesPair>> mapDsc = new HashMap<>();
    mapDsc.put(multicurves.getName(annuityFixed.getCurrency()), list);
    final MulticurveSensitivity result = MulticurveSensitivity.ofYieldDiscounting(mapDsc);
    return result;
  }
View Full Code Here

   * @param multicurves The multi-curves provider.
   * @return The sensitivity.
   */
  public MulticurveSensitivity presentValueBasisPointCurveSensitivity(final SwapFixedCoupon<? extends Payment> fixedCouponSwap, final DayCount dayCount,
      final Calendar calendar, final MulticurveProviderInterface multicurves) {
    final AnnuityCouponFixed annuityFixed = fixedCouponSwap.getFixedLeg();
    final Currency ccy = annuityFixed.getCurrency();
    double time;
    final List<DoublesPair> list = new ArrayList<>();
    for (int loopcpn = 0; loopcpn < annuityFixed.getPayments().length; loopcpn++) {
      time = annuityFixed.getNthPayment(loopcpn).getPaymentTime();
      final DoublesPair s = new DoublesPair(time, -time * multicurves.getDiscountFactor(ccy, time)
          * dayCount.getDayCountFraction(annuityFixed.getNthPayment(loopcpn).getAccrualStartDate(), annuityFixed.getNthPayment(loopcpn).getAccrualEndDate(), calendar)
          * Math.abs(annuityFixed.getNthPayment(loopcpn).getNotional()));
      list.add(s);
    }
    final Map<String, List<DoublesPair>> mapDsc = new HashMap<>();
    mapDsc.put(multicurves.getName(annuityFixed.getCurrency()), list);
    final MulticurveSensitivity result = MulticurveSensitivity.ofYieldDiscounting(mapDsc);
    return result;
  }
View Full Code Here

   * @param multicurves The multi-curves provider.
   * @return The sensitivity.
   */
  public MulticurveSensitivity presentValueBasisPointSecondOrderCurveSensitivity(final SwapFixedCoupon<? extends Payment> fixedCouponSwap, final DayCount dayCount,
      final Calendar calendar, final MulticurveProviderInterface multicurves) {
    final AnnuityCouponFixed annuityFixed = fixedCouponSwap.getFixedLeg();
    final Currency ccy = annuityFixed.getCurrency();
    double time;
    final List<DoublesPair> list = new ArrayList<>();
    for (int loopcpn = 0; loopcpn < annuityFixed.getPayments().length; loopcpn++) {
      time = annuityFixed.getNthPayment(loopcpn).getPaymentTime();
      final DoublesPair s = new DoublesPair(time, time * time * multicurves.getDiscountFactor(ccy, time)
          * dayCount.getDayCountFraction(annuityFixed.getNthPayment(loopcpn).getAccrualStartDate(), annuityFixed.getNthPayment(loopcpn).getAccrualEndDate(), calendar)
          * Math.abs(annuityFixed.getNthPayment(loopcpn).getNotional()));
      list.add(s);
    }
    final Map<String, List<DoublesPair>> mapDsc = new HashMap<>();
    mapDsc.put(multicurves.getName(annuityFixed.getCurrency()), list);
    final MulticurveSensitivity result = MulticurveSensitivity.ofYieldDiscounting(mapDsc);
    return result;
  }
View Full Code Here

    for (int loopcoupon = 0; loopcoupon < getPayments().length; loopcoupon++) {
      if (!date.isAfter(getNthPayment(loopcoupon).getPaymentDate())) {
        resultList.add(getNthPayment(loopcoupon).toDerivative(date, yieldCurveNames));
      }
    }
    return new AnnuityCouponFixed(resultList.toArray(new CouponFixed[resultList.size()]));
  }
View Full Code Here

    for (int loopcoupon = 0; loopcoupon < getPayments().length; loopcoupon++) {
      if (!date.isAfter(getNthPayment(loopcoupon).getPaymentDate())) {
        resultList.add(getNthPayment(loopcoupon).toDerivative(date));
      }
    }
    return new AnnuityCouponFixed(resultList.toArray(new CouponFixed[resultList.size()]));
  }
View Full Code Here

   * @param multicurves The multi-curves provider.
   * @return The sensitivity.
   */
  public MulticurveSensitivity presentValueBasisPointCurveSensitivity(final SwapFixedCoupon<? extends Payment> fixedCouponSwap, final DayCount dayCount,
      final MulticurveProviderInterface multicurves) {
    final AnnuityCouponFixed annuityFixed = fixedCouponSwap.getFixedLeg();
    final Currency ccy = annuityFixed.getCurrency();
    double time;
    final List<DoublesPair> list = new ArrayList<>();
    for (int loopcpn = 0; loopcpn < annuityFixed.getPayments().length; loopcpn++) {
      time = annuityFixed.getNthPayment(loopcpn).getPaymentTime();
      final DoublesPair s = new DoublesPair(time, -time * multicurves.getDiscountFactor(ccy, time)
          * dayCount.getDayCountFraction(annuityFixed.getNthPayment(loopcpn).getAccrualStartDate(), annuityFixed.getNthPayment(loopcpn).getAccrualEndDate())
          * Math.abs(annuityFixed.getNthPayment(loopcpn).getNotional()));
      list.add(s);
    }
    final Map<String, List<DoublesPair>> mapDsc = new HashMap<>();
    mapDsc.put(multicurves.getName(annuityFixed.getCurrency()), list);
    final MulticurveSensitivity result = MulticurveSensitivity.ofYieldDiscounting(mapDsc);
    return result;
  }
View Full Code Here

TOP

Related Classes of com.opengamma.analytics.financial.interestrate.annuity.derivative.AnnuityCouponFixed

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.