/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.credit.collateralmodel;
import com.opengamma.util.ArgumentChecker;
/**
* Class to define the characteristics of initial margin required by a CCP for a centrally cleared trade
*/
public class InitialMarginDefinition extends CollateralDefinition {
// ----------------------------------------------------------------------------------------------------------------------------------------
// The confidence level to which the initial margin should be computed
private final double _confidenceLevel;
// The liquidity horizon (in days) over which it will take to liquidate the position
private final int _liquidityHorizon;
// ----------------------------------------------------------------------------------------------------------------------------------------
public InitialMarginDefinition(
final double collateralAmount,
final double independentAmount,
final double minimumTransferAmount,
final double collateralTriggerThreshold,
final double confidenceLevel,
final int liquidityHorizon,
final MarginCallFrequency minimumMarginCallGrequency) {
// ----------------------------------------------------------------------------------------------------------------------------------------
super(collateralAmount, independentAmount, minimumTransferAmount, collateralTriggerThreshold, minimumMarginCallGrequency);
// ----------------------------------------------------------------------------------------------------------------------------------------
ArgumentChecker.isInRangeInclusive(0.0, 1.0, confidenceLevel);
ArgumentChecker.notNegative(liquidityHorizon, "Liquidity Horizon");
// ----------------------------------------------------------------------------------------------------------------------------------------
_confidenceLevel = confidenceLevel;
_liquidityHorizon = liquidityHorizon;
}
// ----------------------------------------------------------------------------------------------------------------------------------------
public double getConfidenceLevel() {
return _confidenceLevel;
}
public int getLiquidityHorizon() {
return _liquidityHorizon;
}
// ----------------------------------------------------------------------------------------------------------------------------------------
}