Class FxNdfTradeCalculations
- java.lang.Object
-
- com.opengamma.strata.measure.fx.FxNdfTradeCalculations
-
public class FxNdfTradeCalculations extends Object
Calculates pricing and risk measures for FX Non-Deliverable Forward (NDF) trades.This provides a high-level entry point for NDF pricing and risk measures.
Each method takes a
ResolvedFxNdfTrade, whereas application code will typically work withFxNdfTrade. CallFxNdfTrade::resolve(ReferenceData)to convertFxNdfTradetoResolvedFxNdfTrade.
-
-
Field Summary
Fields Modifier and Type Field Description static FxNdfTradeCalculationsDEFAULTDefault implementation.
-
Constructor Summary
Constructors Constructor Description FxNdfTradeCalculations(DiscountingFxNdfTradePricer tradePricer)Creates an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MultiCurrencyScenarioArraycurrencyExposure(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates currency exposure across one or more scenarios.MultiCurrencyAmountcurrencyExposure(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates currency exposure for a single set of market data.CurrencyScenarioArraycurrentCash(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates current cash across one or more scenarios.CurrencyAmountcurrentCash(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates current cash for a single set of market data.ScenarioArray<FxRate>forwardFxRate(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates the forward FX rate across one or more scenarios.FxRateforwardFxRate(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates the forward FX rate for a single set of market data.CurrencyScenarioArraypresentValue(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates present value across one or more scenarios.CurrencyAmountpresentValue(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates present value for a single set of market data.ScenarioArray<CurrencyParameterSensitivities>pv01CalibratedBucketed(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates present value sensitivity across one or more scenarios.CurrencyParameterSensitivitiespv01CalibratedBucketed(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates present value sensitivity for a single set of market data.MultiCurrencyScenarioArraypv01CalibratedSum(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates present value sensitivity across one or more scenarios.MultiCurrencyAmountpv01CalibratedSum(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates present value sensitivity for a single set of market data.ScenarioArray<CurrencyParameterSensitivities>pv01MarketQuoteBucketed(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates present value sensitivity across one or more scenarios.CurrencyParameterSensitivitiespv01MarketQuoteBucketed(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates present value sensitivity for a single set of market data.MultiCurrencyScenarioArraypv01MarketQuoteSum(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)Calculates present value sensitivity across one or more scenarios.MultiCurrencyAmountpv01MarketQuoteSum(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)Calculates present value sensitivity for a single set of market data.
-
-
-
Field Detail
-
DEFAULT
public static final FxNdfTradeCalculations DEFAULT
Default implementation.
-
-
Constructor Detail
-
FxNdfTradeCalculations
public FxNdfTradeCalculations(DiscountingFxNdfTradePricer tradePricer)
Creates an instance.In most cases, applications should use the
DEFAULTinstance.- Parameters:
tradePricer- the pricer forResolvedFxNdfTrade
-
-
Method Detail
-
presentValue
public CurrencyScenarioArray presentValue(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value across one or more scenarios.- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the present value, one entry per scenario
-
presentValue
public CurrencyAmount presentValue(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates present value for a single set of market data.- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the present value
-
pv01CalibratedSum
public MultiCurrencyScenarioArray pv01CalibratedSum(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is the sum of the sensitivities of all affected curves.
- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the present value sensitivity, one entry per scenario
-
pv01CalibratedSum
public MultiCurrencyAmount pv01CalibratedSum(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is the sum of the sensitivities of all affected curves.
- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the present value sensitivity
-
pv01CalibratedBucketed
public ScenarioArray<CurrencyParameterSensitivities> pv01CalibratedBucketed(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is provided for each affected curve and currency, bucketed by curve node.
- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the present value sensitivity, one entry per scenario
-
pv01CalibratedBucketed
public CurrencyParameterSensitivities pv01CalibratedBucketed(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.This is the sensitivity of present value to a one basis point shift in the calibrated curves. The result is provided for each affected curve and currency, bucketed by curve node.
- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the present value sensitivity
-
pv01MarketQuoteSum
public MultiCurrencyScenarioArray pv01MarketQuoteSum(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is the sum of the sensitivities of all affected curves.
- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the present value sensitivity, one entry per scenario
-
pv01MarketQuoteSum
public MultiCurrencyAmount pv01MarketQuoteSum(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is the sum of the sensitivities of all affected curves.
- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the present value sensitivity
-
pv01MarketQuoteBucketed
public ScenarioArray<CurrencyParameterSensitivities> pv01MarketQuoteBucketed(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates present value sensitivity across one or more scenarios.This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is provided for each affected curve and currency, bucketed by curve node.
- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the present value sensitivity, one entry per scenario
-
pv01MarketQuoteBucketed
public CurrencyParameterSensitivities pv01MarketQuoteBucketed(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates present value sensitivity for a single set of market data.This is the sensitivity of present value to a one basis point shift in the market quotes used to calibrate the curves. The result is provided for each affected curve and currency, bucketed by curve node.
- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the present value sensitivity
-
currencyExposure
public MultiCurrencyScenarioArray currencyExposure(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates currency exposure across one or more scenarios.The currency risk, expressed as the equivalent amount in each currency.
- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the currency exposure, one entry per scenario
-
currencyExposure
public MultiCurrencyAmount currencyExposure(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates currency exposure for a single set of market data.The currency risk, expressed as the equivalent amount in each currency.
- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the currency exposure
-
currentCash
public CurrencyScenarioArray currentCash(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates current cash across one or more scenarios.The sum of all cash flows paid on the valuation date.
- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the current cash, one entry per scenario
-
currentCash
public CurrencyAmount currentCash(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates current cash for a single set of market data.The sum of all cash flows paid on the valuation date.
- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the current cash
-
forwardFxRate
public ScenarioArray<FxRate> forwardFxRate(ResolvedFxNdfTrade trade, RatesMarketDataLookup lookup, ScenarioMarketData marketData)
Calculates the forward FX rate across one or more scenarios.- Parameters:
trade- the tradelookup- the lookup used to query the market datamarketData- the market data- Returns:
- the current cash, one entry per scenario
-
forwardFxRate
public FxRate forwardFxRate(ResolvedFxNdfTrade trade, RatesProvider ratesProvider)
Calculates the forward FX rate for a single set of market data.- Parameters:
trade- the traderatesProvider- the market data- Returns:
- the current cash
-
-