Interface ScenarioPerturbation<T>

  • Type Parameters:
    T - the type of the market data handled by the perturbation
    All Known Implementing Classes:
    CurveParallelShifts, FxRateShifts, GenericDoubleShifts, PointShifts

    public interface ScenarioPerturbation<T>
    A perturbation that can be applied to a market data box to create market data for use in one or more scenarios.

    A perturbation is used to change market data in some way. It applies to a single piece of data, such as a discount curve or volatility surface. For example, a 5 basis point parallel shift of a curve, or a 10% increase in the quoted price of a security.

    Implementations must be immutable and thread-safe beans.

    • Method Detail

      • none

        static <T> ScenarioPerturbation<T> none()
        Returns an instance that does not perturb the input.

        This is useful for creating base scenarios where none of the market data is perturbed.

        Type Parameters:
        T - the type of the market data handled by the perturbation
        Returns:
        a perturbation that returns its input unchanged
      • applyTo

        MarketDataBox<T> applyTo​(MarketDataBox<T> marketData,
                                 ReferenceData refData)
        Applies this perturbation to the market data in a box, returning a box containing new, modified data.

        The original market data must not be altered. Instead a perturbed copy must be returned.

        Parameters:
        marketData - the market data to perturb
        refData - the reference data
        Returns:
        new market data derived by applying the perturbation to the input data
        Throws:
        java.lang.RuntimeException - if unable to perform the perturbation
      • getScenarioCount

        int getScenarioCount()
        Returns the number of scenarios for which this perturbation generates data.
        Returns:
        the number of scenarios for which this perturbation generates data
      • getMarketDataType

        java.lang.Class<T> getMarketDataType()
        Returns the market data type that the perturbation changes.
        Returns:
        the data type