Function MCELSY 0 B 0 vol Y vol
Function MC_ELS(Y 0, B 0, vol. Y, vol. B, corr, M, r, T) Dim f() As Double Dim flag As Integer Re. Dim f(M) dt = 1 / 252 * 6 N = T / dt For i = 1 To M For j = 1 To N x 1 = Application. Norm. SInv(Rnd()) x 2 = Application. Norm. SInv(Rnd()) e 1 = x 1 e 2 = corr * x 1 + x 2 * Sqr(1 - corr ^ 2) YT = YT * Exp((r - q - vol. Y ^ 2 / 2) * dt + vol. Y * Sqr(dt) * e 1) BT = BT * Exp((r - q - vol. B ^ 2 / 2) * dt + vol. B * Sqr(dt) * e 2) Next j f(i) = payoff Sum = Sum + f(i) Next i MC_ELS = Sum / M End Function
추가 프로그램 If j Mod N / 6 = 0 And (BT > 0. 75 * B 0 And YT > 0. 75 * Y 0) Then ' 6개월 마다 동시에 초기값의 75% 이상인 경우 조기 행사 flag = 1 Exit For End If If BT > 1. 1 * B 0 And YT > 1. 1 * B 0 Then ' 동시에 110% 넘어서는 경우 조기 행사. flag = 1 End If If j Mod N / 6 = 0 And flag = 1 Then ‘payoff 결정 부분’ payoff = (1 + (j * dt) * 0. 16) * Exp(-r * (j * dt)) Exit For End If
만기 상환 payoff 계산 If flag < 1 Or flag > 1 Then If flag = 2 Then '원금 손실시 수익률 적은것 payoff = Application. Min(BT / B 0, YT / Y 0) * Exp(-r * T) Else. If flag = 0 Then '원금 보장 payoff = 1 * Exp(-r * T) End If
- Slides: 6