-
Notifications
You must be signed in to change notification settings - Fork 11
2-Factor Black Non-smiled Montecarlo #5
Copy link
Copy link
Open
Description
Create montecarlo model with 2 x underlyings
Assumption
- 2 x Black underlyings with continuous dividends (eg FX, index)
- Volatility as function of time, no smie
- Correlation between -1 and +1
- Both underlying quoted on same currency unit
Input
- Spot : S1, S2
- Risk-free rate : rate(t)
- Dividend yield: div1(t), div2(t)
- Repo yield: repo1(t), repo2(t)
- Volatility : vol1(t), vol2(t)
- Correlation : rho or rho(t)
- Cash flow: Map[t:Double, f:(Double, Double) => Double]
Required function
- price(cashflow):Map[Double, Double]
where result is mapping payment date => price
Example
val r = t => 0.01 + 0.002 * t
val rho = 0.75
val S1 = 100.0
val div1 = t => 0.03 + 0.003 * t
val repo1 = t => 0.0
val vol1 = t => 0.25 + 0.01 * t
val S2 = 150.0
val div2 = t => 0.05 + 0.003 * t
val repo2 = t => 0.0
val vol2 = t => 0.20 + 0.01 * t
val cashflow = Map[
0.5 -> (x:Double, y:Double) => math.max(0.0, math.min(x - 100.0, y - 150.0)),
1.0 -> (x:Double, y:Double) => math.max(0.0, math.min(x - 100.0, y - 150.0)),
1.5 -> (x:Double, y:Double) => math.max(0.0, math.min(x - 100.0, y - 150.0)),
2.0 -> (x:Double, y:Double) => math.max(0.0, math.min(x - 100.0, y - 150.0)),
]
price(cashflow) = Map[
0.5 -> 4.225,
1.0 -> 4.10,
1.5 -> 3.85,
2.0 -> 3.555,
] (or something like this, numbers are complete random)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels