Package com.opengamma.analytics.financial.interestrate.payments.provider

Source Code of com.opengamma.analytics.financial.interestrate.payments.provider.CouponIborInArrearsReplicationMethod

/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.interestrate.payments.provider;

import com.opengamma.analytics.financial.interestrate.payments.derivative.CapFloorIbor;
import com.opengamma.analytics.financial.interestrate.payments.derivative.CouponIbor;
import com.opengamma.analytics.financial.provider.description.interestrate.SABRCapProviderInterface;
import com.opengamma.analytics.financial.provider.method.CapFloorIborSABRCapMethodInterface;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.money.MultipleCurrencyAmount;

/**
*  Class used to compute the price and sensitivity of a Ibor coupon in arrears.
*  The coupon are supposed to be exactly in arrears. The payment date is ignored and the start fixing period date is used instead.
*/
//TODO: Add a reference to Libor-with-delay pricing method when available.
public class CouponIborInArrearsReplicationMethod {

  /**
   * Method for the pricing of in arrears cap/floors.
   */
  private final CapFloorIborInArrearsSABRCapGenericReplicationMethod _capMethod;

  /**
   * Constructor of the in-arrears pricing method.
   * @param baseMethod The base method for the pricing of standard cap/floors.
   */
  public CouponIborInArrearsReplicationMethod(CapFloorIborSABRCapMethodInterface baseMethod) {
    _capMethod = new CapFloorIborInArrearsSABRCapGenericReplicationMethod(baseMethod);
  }

  /**
   * Computes the present value of an Ibor coupon in arrears by replication. The coupon is price as an cap with strike 0.
   * @param coupon The Ibor coupon.
   * @param sabr The SABR cap and multi-curves provider.
   * @return The present value.
   */
  public MultipleCurrencyAmount presentValue(final CouponIbor coupon, final SABRCapProviderInterface sabr) {
    ArgumentChecker.notNull(coupon, "The coupon shoud not be null");
    ArgumentChecker.notNull(sabr, "SABR cap provider");
    CapFloorIbor cap0 = CapFloorIbor.from(coupon, 0.0, true);
    return _capMethod.presentValue(cap0, sabr);
  }

}
TOP

Related Classes of com.opengamma.analytics.financial.interestrate.payments.provider.CouponIborInArrearsReplicationMethod

TOP
Copyright © 2018 www.massapi.com. 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.