agePortfolio: Age a Portfolio

Description Usage Arguments Value Note Examples

View source: R/Step4_MonteCarloValuation.R

Description

Age a portfolio of VA policies specified in each inPolicy of inPortfolio from currentDate (specified in inPolicy) to targetDate. The againg scenario is given in fundScen. The time step length is specified in dT. Here we input a rather irrelevant parameter df to "hack" for a more flexible user-defined projection function.

Usage

1
2
3
4
5
6
7
8
9
agePortfolio(
  inPortfolio,
  mortTable,
  fundScen,
  scenDates,
  dT = 1/12,
  targetDate,
  df
)

Arguments

inPortfolio

A dataframe containing numPolicy rows and 45 attributes of each VA policy.

mortTable

A dataframe with three columns of doubles representing the mortality table.

fundScen

A numScen-by-numStep-by-numFund array of doubles of return factors (i.e., exp(mu_t dt)) in each period.

scenDates

A vector containing strings in the format of "YYYY-MM-DD" of dates corresponding to each period in fundScen.

dT

A double of stepsize in years; dT = 1 / 12 would be monthly.

targetDate

A string in the format of "YYYY-MM-DD" of valuation date of the portfolio.

df

A vector of doubles of risk-free discount rates of different tenor (not forward rates), should have length being numStep.

Value

Outputs a dataframe containing numPolicy rows and 45 attributes of each VA policy, where currentDate, gbAmt, GMWBbalance, withdrawal, & fundValue of each policy could be updated as a result of aging.

Note

Target date MUST be PRIOR to the last date of historical scenario date, Current date MUST be LATER than the first date of historical scenario date.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
targetDate <- "2016-01-01"
histFundScen <- genFundScen(fundMap, histIdxScen)
agePortfolio(VAPort[1:2, ], mortTable, histFundScen, histDates, dT = 1 / 12,
targetDate, cForwardCurve)
## Not run: 
targetDate <- "2001-01-01"
histFundScen <- genFundScen(fundMap, histIdxScen)
agePortfolio(VAPort, mortTable, histFundScen, histDates, dT = 1 / 12,
targetDate, cForwardCurve)

## End(Not run)
## Not run: 
VAPort[1, c("currentDate", "issueDate")] <- c("2001-01-01", "2001-01-01")
histFundScen <- genFundScen(fundMap, histIdxScen)
agePortfolio(VAPort, mortTable, histFundScen, histDates, dT = 1 / 12,
targetDate, cForwardCurve)

## End(Not run)

vamc documentation built on Feb. 28, 2020, 5:08 p.m.