Learn R Programming

fExpressCertificates (version 1.3)

Express Certificates Redemption Probabilities: Redemption Probabilities for Express Certificates

Description

Calculates the stop probabilities/early redemption probabilities for express certificates using the multivariate normal distribution or determines stop probabilities with Monte Carlo simulation.

Usage

calcRedemptionProbabilities(S, X, T, r, r_d, sigma)
simRedemptionProbabilities(S, X, T, r, r_d, sigma, mc.steps=1000, mc.loops=20)

Arguments

S

the asset price, a numeric value

X

a vector of early exercise prices ("Bewertungsgrenzen"), vector of length \((n-1)\)

T

a numeric vector of evaluation times measured in years ("Bewertungstage"): \(T = (t_1,...,t_n)'\), vector of length n

r

the annualized rate of interest, a numeric value; e.g. 0.25 means 25% pa.

r_d

the annualized dividend yield, a numeric value; e.g. 0.25 means 25% pa.

sigma

the annualized volatility of the underlying security, a numeric value; e.g. 0.3 means 30% volatility pa.

mc.steps

Monte Carlo steps in one path

mc.loops

Monte Carlo loops (iterations)

Value

a vector of length n with the redemption probabilities at valuation dates \((t_1,...,t_n)'\).

Details

Calculates the stop probabilities/early redemption probabilities for Express Certificates at valuation dates \((t_1,...,t_n)'\) using the multivariate normal distribution of log returns of a Geometric Brownian Motion. The redemption probability \(p(t_i)\) at \(t_i < t_n\) is $$p(t_i) = P(S(t_i) \ge X(t_i), \forall_{j < i}{S(t_j) < X(t_j)})$$ i.e. $$p(t_i) = P(S(t_i) \ge X(t_i), S(t_1) \le X(t_1),\ldots,S(t_{i-1}) \le X(t_{i-1}))$$ for \(i=1,\ldots,(n-1)\) and $$p(t_n) = P(S(t_1) \le X(t_1),\ldots,S(t_{n-1}) \le X(t_{n-1}))$$ for \(i=n\).

References

Wilhelm, S. (2009). The Pricing of Derivatives when Underlying Paths Are Truncated: The Case of Express Certificates in Germany. Available at SSRN: http://ssrn.com/abstract=1409322

Examples

Run this code
# NOT RUN {
# Monte Carlo simulation of redemption probabilities 
# p(t_i) = P(S(t_i)>=X(t_i),\forall_{j<i} S(t_j)<X(t_j))
mc.loops <- 5000
probs <- simRedemptionProbabilities(S=100, X=c(100,100,100), T=c(1,2,3,4), 
  r=0.045, r_d=0, sigma=0.3, mc.steps=3000, mc.loops=5000)
table(probs$stops)/mc.loops

# Analytic calculation of redemption probabilities
probs2 <- calcRedemptionProbabilities(S=100, X=c(100,100,100), T=c(1,2,3,4), 
  r=0.045, r_d=0, sigma=0.3)
probs2
# }

Run the code above in your browser using DataLab