2017-04-09 22 views
-2

所以我有這些方程:如何寫出來?

formula 1

hideous formula

在克,X定義爲X/SC(第一方程的倒數)。我試圖把它寫出來,但我很新。

更新:這是一個等效表示,

val1 = (r+.5*vol*vol)*(tau-t) 
val2 = exp(-alpha*(tau-t)*(r-.5*vol*vol)*(r-.5*vol*vol)/(2*vol*vol)) 
val3 = vol*vol*sqrt(alpha)/r/2.0 
func = lambda g: exp(g*g/2) - val3/(val1+g*vol*sqrt(tau-t))/exp(val1+g*vol*sqrt (tau-t))/val2 
g = fsolve(func,1.5) 
exer_price = K * exp(-(r + .5 * vol * vol)*(tau-t) - g * vol * sqrt(tau-t)) 

其中exer_price是,體積是西格瑪,一個爲α,K是X,(TAU-t)是。如果沒有,我將如何正確地在python中寫出這些?

+0

您的Python表達式似乎完全不符合圖像中提供的數學公式。你確定我們有正確的形象嗎? –

回答

0

下面是與您的代碼不同的代碼,以及執行該代碼所需的輸入,以及變量定義和打印以測試它。請注意,我的變量名稱和val1val2的含義與您的代碼有所不同。還要注意你的圖形使用加號或減號,但我的代碼只給出了加號。您可以根據需要輕鬆修改它以減去負數。

from math import sqrt, exp, log 

alpha = .1 
r = .2 
sigma = 3 
tau = 4 
x = 5 

val1 = -alpha * (r+(1/2)*sigma**2)**2 * tau/(2*sigma**2) 
val2 = sigma**2/((2*r/sqrt(alpha)) * x * log(x * exp(val1))) 
g = sqrt(2 * log(val2)) 

print(g) 

代碼的結果是

0.6939056413788061 

有一些代碼可以用於速度或簡潔優化多種方式,但它符合你的既定目的。

+0

我忘記提及(現在更新)x = e ^((r +(1/2)* sigma^2)* tau + G * sigma * sqrt(tau)) –

+0

@kb:你是說'x'是用'g'來定義的(就像你的更新中那樣)並且'g'是用'x'來定義的(如圖所示)?如果是這樣,你就會遇到一個非常不同的,比你說的更難的問題。你的評論中的'G'與更新中的'g'相同嗎? –

+0

我現在增加了一些額外的信息,我希望這可以使它更加清晰 –