Я пытаюсь решить следующую функцию. Идея состоит в том, чтобы сделать sigma_de_delta и delta_de_sigma go равными нулю, изменив значения sigma и delta . Этот вид операций очень сложен для меня сегодня, я не знаю, как его решить, я пытался оптимизировать, может помочь мне, но я не знаю, как использовать его в этом случае (решение двух взаимозависимых операций). Я был бы очень признателен, если бы кто-нибудь помог мне.
Что я рассчитываю достичь с помощью этого кода, так это получить предполагаемую вероятность снижения курса доллара на 10% по отношению к евро в течение следующих трех месяцев. Это работа из Malz, а не формула для прогнозирования прибыли, она помогает в качестве индикатора риска.
Это аргументы функции:
- fwd = EUR3M Curncy ( EURUSD 3-месячные форвардные баллы)
- р = EURUSD25R3M Курс (EURUSD 3 месяца 25 разворот дельта-риска)
- спот = EUR / USD спот
- бабочка = EURUSD10B3M CURNESS (EURUSD 3 Месяц 10 Delta Butterfly)
- atmoney = EURUSDV3M Курс (EURUSD 3-месячная подразумеваемая волатильность банкоматов)
- vol = индекс EE0003M или ставка ICE LIBOR EUR 3M
- nivel_dep = 1,1 (EURUSD * 1.1)
- t = тенор (3 месяца = 0.25)
def pr_dep_tc(fwd, rr, spot, butterfly, atmoney, vol, nivel_dep, t):
x = spot*nivel_dep
q = x/fwd
sigma = 5
delta = 6
d1 = -(np.log(q)-(t*0.25*(sigma**2.0)))/(sigma*butterfly)
d2 = -(np.log(q)+(t*0.25*(sigma**2.0)))/(sigma*butterfly)
sigma_de_delta = (vol-(2.0*rr*(delta-0.5))+(16.0*butterfly*(delta-0.5)**2.0))-sigma
delta_de_sigma = np.exp(-vol*t)*norm.cdf(d1, loc=0.0, scale=1.0)-delta
call = norm.cdf(d1, loc=0.0, scale=1.0)-q*norm.cdf(d2, loc=0.0, scale=1.0)
prob = np.exp(-atmoney*0.25)*norm.cdf(d2, loc=0.0, scale=1.0)