Function rainbow_worseof2_delta(S1, S2, t, q1, q2, v1, v2, rho, take_12) ' Calculates the delta of a worst to deliver option plus = 0.01 op = rainbow_worseof2(S1, S2, t, q1, q2, v1, v2, rho) op1 = rainbow_worseof2(S1 + plus, S2, t, q1, q2, v1, v2, rho) op2 = rainbow_worseof2(S1, S2 + plus, t, q1, q2, v1, v2, rho) del1 = (op1 - op) / plus del2 = (op2 - op) / plus If take_12 = 1 Then rainbow_worseof2_delta = del1 ElseIf take_12 = 2 Then rainbow_worseof2_delta = del2 Else: rainbow_worseof2_delta = "False" End If End Function Function rainbow_worseof2_gamma(S1, S2, t, q1, q2, v1, v2, rho, take_12) ' Calculates the gamma of a worst to deliver option plus = 0.01 op1 = rainbow_worseof2_delta(S1, S2, t, q1, q2, v1, v2, rho, 1) op2 = rainbow_worseof2_delta(S1, S2, t, q1, q2, v1, v2, rho, 2) op11 = rainbow_worseof2_delta(S1 + plus, S2, t, q1, q2, v1, v2, rho, 1) op12 = rainbow_worseof2_delta(S1 + plus, S2, t, q1, q2, v1, v2, rho, 2) op21 = rainbow_worseof2_delta(S1, S2 + plus, t, q1, q2, v1, v2, rho, 1) op22 = rainbow_worseof2_delta(S1, S2 + plus, t, q1, q2, v1, v2, rho, 2) gam11 = (op11 - op1) / plus gam12 = (op12 - op2) / plus gam21 = (op21 - op1) / plus gam22 = (op22 - op2) / plus If take_12 = 11 Then rainbow_worseof2_gamma = gam11 ElseIf take_12 = 12 Then rainbow_worseof2_gamma = gam12 ElseIf take_12 = 21 Then rainbow_worseof2_gamma = gam21 ElseIf take_12 = 22 Then rainbow_worseof2_gamma = gam22 Else: rainbow_worseof2_gamma = "False" End If End Function Function rainbow_worseof2_vega(S1, S2, t, q1, q2, v1, v2, rho, take_12) ' Calculates the vega of a worst to deliver option plus = 0.01 op = rainbow_worseof2(S1, S2, t, q1, q2, v1, v2, rho) op1 = rainbow_worseof2(S1, S2, t, q1, q2, v1 + plus, v2, rho) op2 = rainbow_worseof2(S1, S2, t, q1, q2, v1, v2 + plus, rho) veg1 = (op1 - op) veg2 = (op2 - op) If take_12 = 1 Then rainbow_worseof2_vega = veg1 ElseIf take_12 = 2 Then rainbow_worseof2_vega = veg2 Else: rainbow_worseof2_vega = "False" End If End Function Function rainbow_worseof2_theta(S1, S2, t, q1, q2, v1, v2, rho) ' Calculates the theta of a worst to deliver option plus = 1 / 360 op = rainbow_worseof2(S1, S2, t, q1, q2, v1, v2, rho) op1 = rainbow_worseof2(S1, S2, t + plus, q1, q2, v1, v2, rho) rainbow_worseof2_theta = -op1 + op End Function Function rainbow_worseof2_rhorho(S1, S2, t, q1, q2, v1, v2, rho) ' Calculates the rho of a worst to deliver option plus = 0.01 op = rainbow_worseof2(S1, S2, t, q1, q2, v1, v2, rho + plus) op1 = rainbow_worseof2(S1, S2, t, q1, q2, v1, v2, rho) rainbow_worseof2_rhorho = -op1 + op End Function