【相場雑感】オプション・プライシング実践編⑤~ガンマ、ベガ
スイマセン…お待たせしました!
今週飲みばっか続いていたもんで、結構手間のかかる記事なんで更新する余裕がなくて…(^^ゞ
という言い訳は置いといて、ガンマからでしたね。
さっそくいきましょう!
Function Gamma(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
Gamma = 0
ElseIf 現指数 <= 0 Then
Gamma = 0
ElseIf 権利行使価格 <= 0 Then
Gamma = 0
ElseIf IV = 0 Then
Gamma = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step4 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step3 ^ 2 / 2))
Step5 = Step4 / (Sqr(Step1) * 現指数 * IV)
Gamma = Int(Step5 * 1000000 + 0.5) / 1000000
End If
Else
Gamma = 0
End If
End Function
これ、ガンマの計算式です。
例のごとく『コピペ』してみてください。
基本的な使い方はこれまでと同じです。
B8のセルには
『=Gamma(B2,B3,B4,B5,B6)』
と入力してあります。
ちょっと違うのはコール、プットともに共通の関数を使うということ。

同じようにベガについてもやってみましょう。
Function Vega(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
Vega = 0
ElseIf 現指数 <= 0 Then
Vega = 0
ElseIf 権利行使価格 <= 0 Then
Vega = 0
ElseIf IV = 0 Then
Vega = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step4 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step3 ^ 2 / 2))
Step5 = 現指数 * Sqr(Step1) * Step4
Vega = Int(Step5 + 0.5) / 100
End If
Else
Vega = 0
End If
End Function
使ってみるとこんな感じになります。
B8のセルには
『=Vega(B2,B3,B4,B5,B6)』
と入力してあります。
これもガンマ同様にコール、プット共通の関数です。
今週飲みばっか続いていたもんで、結構手間のかかる記事なんで更新する余裕がなくて…(^^ゞ
という言い訳は置いといて、ガンマからでしたね。
さっそくいきましょう!
Function Gamma(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
Gamma = 0
ElseIf 現指数 <= 0 Then
Gamma = 0
ElseIf 権利行使価格 <= 0 Then
Gamma = 0
ElseIf IV = 0 Then
Gamma = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step4 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step3 ^ 2 / 2))
Step5 = Step4 / (Sqr(Step1) * 現指数 * IV)
Gamma = Int(Step5 * 1000000 + 0.5) / 1000000
End If
Else
Gamma = 0
End If
End Function
これ、ガンマの計算式です。
例のごとく『コピペ』してみてください。
基本的な使い方はこれまでと同じです。
B8のセルには
『=Gamma(B2,B3,B4,B5,B6)』
と入力してあります。
ちょっと違うのはコール、プットともに共通の関数を使うということ。

同じようにベガについてもやってみましょう。
Function Vega(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
Vega = 0
ElseIf 現指数 <= 0 Then
Vega = 0
ElseIf 権利行使価格 <= 0 Then
Vega = 0
ElseIf IV = 0 Then
Vega = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step4 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step3 ^ 2 / 2))
Step5 = 現指数 * Sqr(Step1) * Step4
Vega = Int(Step5 + 0.5) / 100
End If
Else
Vega = 0
End If
End Function
使ってみるとこんな感じになります。
B8のセルには
『=Vega(B2,B3,B4,B5,B6)』
と入力してあります。
これもガンマ同様にコール、プット共通の関数です。