val-methods: Derive the value at AD0 of a contract

valueR Documentation

Derive the value at AD0 of a contract

Description

Different value-concepts can be derived from a financial instrument or the resulting EventSeries, respectively. Currentently, these are Nominal value and Mark-to-Model value.

Usage

value(object, by, type, method, ...)

## S4 method for signature 'ContractType,character,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,AD0,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,timeDate,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,timeBuckets,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,timeBuckets,character,YieldCurve'
value(object, by, type, method, spread = 0, ...)

## S4 method for signature 'ContractType,character,character,ValuationEngine'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,timeDate,character,ValuationEngine'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,timeBuckets,character,ValuationEngine'
value(object, by, type, method, ...)

## S4 method for signature 'ContractType,AD0,character,ValuationEngine'
value(object, by, type, method, ...)

## S4 method for signature 'EventSeries,AD0,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'EventSeries,timeDate,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'EventSeries,timeBuckets,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'EventSeries,timeDate,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 
## 'EventSeries,timeBuckets,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 'eventList,timeDate,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'eventList,timeBuckets,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'eventList,timeDate,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 'eventList,timeBuckets,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 'EventSeries,character,character,DiscountingEngine'
value(object, by, type, method, digits = 2, ...)

## S4 method for signature 'EventSeries,character,character,missing'
value(object, by, type, digits = 2, ...)

## S4 method for signature 'eventList,character,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'eventList,character,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 'eventList,character,character,list'
value(object, by, type, method, ...)

## S4 method for signature 'CurrentAccount,timeDate,character,missing'
value(object, by, type, method, end_date, ...)

## S4 method for signature 'CurrentAccount,character,character,missing'
value(object, by, type, method, end_date, ...)

## S4 method for signature 'CurrentAccount,timeDate,character,ValuationEngine'
value(object, by, type, method, end_date, ...)

## S4 method for signature 'CurrentAccount,character,character,ValuationEngine'
value(object, by, type, method, end_date, ...)

## S4 method for signature 'Node,timeBuckets,ANY,ANY'
value(object, by, type, method, scale = 1, digits = 2)

## S4 method for signature 'Node,timeDate,ANY,ANY'
value(object, by, type, method, scale = 1, digits = 2)

## S4 method for signature 'Node,character,ANY,ANY'
value(object, by, type, method, scale = 1, digits = 2)

## S4 method for signature 'Operations,AD0,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'Operations,character,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'Operations,timeDate,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'Operations,timeBuckets,character,missing'
value(object, by, type, method, ...)

## S4 method for signature 'Operations,character,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 'Operations,timeDate,character,DiscountingEngine'
value(object, by, type, method, ...)

## S4 method for signature 'Operations,timeBuckets,character,DiscountingEngine'
value(object, by, type, method, ...)

Arguments

object

object The ContractType or EventSeries-object for which to derive the value

by

time as per which to compute the value

type

A character representing the type of value (either 'nominal' or 'market')

method

(optional) for type='market' a 'ValuationEngine' can be specified according to which the value is computed

...

Currently unused

Details

Nominal value is the value of a Maturity instrument that is currently outstanding as a dept from the counterparty on the liability side to the party on the asset side. The payment pattern of the nominal value over time is what distincts different Maturity instrument types from each other. Actus CT algorithms generate the nominal value over time together with cash flows. Hence, the nominal value for a certain analysis date may only be derived from the first-level results of a Maturity contract.

Mark-to-model value is the value of a financial instrument according to a certain valuation model. E.g. for Maturity instruments, this is usually its net-present-value. Mostly, this value is used if no value can be observed for this instrument on the market. This can be the case if the market for this instrument is illiquid. In order for a mark-to-model value to be derived, the CT algorithm must have been processed and an appropriate ValuationEngine either assigned in advance or past as method argument 'method'.

Value

A numeric object representing the contract's value

See Also

ContractType and ValuationEngine

Examples

pam <- Pam()
set(pam, what=list(
                 ContractID = "001",
                 Currency = "CHF",
                 Calendar = "Weekday",
                 ContractRole = "RPA",               
                 StatusDate       = "2016-05-30T00",
                 ContractDealDate = "2016-05-30T00",
                 InitialExchangeDate = "2016-05-30T00",
                 MaturityDate = "2016-09-01T00",
                 NotionalPrincipal = 1000,
                 NominalInterestRate = 0.00, 
                 PremiumDiscountAtIED = -100,
                 DayCountConvention = "30E/360",
                 BusinessDayConvention = "SCF"))
ad <- "2016-06-01T00"
yc <- YieldCurve()
set(yc, what=list(Nodes=list(ReferenceDate=ad,
                             Tenors=c("1M","10Y"),
                             Rates=c(0.005,0.02)),
                  MarketObjectCode = "RiskFreeCurve"))
rf <- RFConn()
add(rf,yc)
set(pam,rf)

# derive nominal value
value(pam,by=ad,type="nominal")

# define valuation engine for mark-to-model value
dcEngine <- DcEngine()
set(dcEngine,list(RiskFactorObjectLink="RiskFreeCurve",
                  dc.spread=0.0))
set(dcEngine,rf)
set(pam,dcEngine)
value(pam,by=ad,type="market")

# again with a different engine
set(dcEngine,list(RiskFactorObjectLink="RiskFreeCurve",
                  dc.spread=0.1))
value(pam,by=ad,type="market",method=dcEngine)


wbreymann/FEMS documentation built on Dec. 8, 2022, 9:43 a.m.