2017-04-09 8 views
-2

ので、私はこれらの方程式た:G中これをどのように書きますか?

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はSc
ある

等価表現、であるアルファ、KはXであり、(タウ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)*シグマ^ 2)*タウ+ G *シグマ* sqrt(タウ)) –

+0

@kb:あなたは 'x' 'g'(更新のように)で定義され、' g'は 'x'で定義されています(グラフィックのように)?そうであれば、あなたはあなたが述べたよりもはるかに難しい問題を抱えています。あなたのコメントの 'G'はアップデートの' g'と同じですか? –

+0

私はいくつかの追加情報を追加しました。これはもっと明確になることを願っています。 –

関連する問題