【相場雑感】オプション・プライシング実践編⑥~セータ
では最後のパラメータです。
セータをやってみましょう。
例のごとく『コピペ』しちゃってください。
セータ関数はコールとプットで異なる関数を使います。
Function CallTheta(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
CallTheta = 0
ElseIf 現指数 <= 0 Then
CallTheta = 0
ElseIf 権利行使価格 <= 0 Then
CallTheta = 0
ElseIf IV = 0 Then
CallTheta = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step4 = Step3 - IV * Sqr(Step1)
Step5 = Application.NormSDist(Step4)
Step6 = Exp(-金利 * Step1)
Step7 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step3 ^ 2 / 2))
Step8 = 現指数 * (IV * 100) / (200 * Sqr(Step1)) * Step7 + 金利 * 権利行使価格 * Step6 * Step5
CallTheta = -Int(Step8 / 365 * 100 + 0.5) / 100
End If
Else
CallTheta = 0
End If
End Function
Function PutTheta(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
PutTheta = 0
ElseIf 現指数 <= 0 Then
PutTheta = 0
ElseIf 権利行使価格 <= 0 Then
PutTheta = 0
ElseIf IV = 0 Then
PutTheta = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = Step4 - IV * Sqr(Step1)
Step4 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step5 = Application.NormSDist(Step3)
Step6 = Exp(-金利 * Step1)
Step7 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step4 ^ 2 / 2))
Step8 = 現指数 * (IV * 100) / (200 * Sqr(Step1)) * Step7 + 金利 * 権利行使価格 * Step6 * Step5
Step9 = Step8 - 金利 * 権利行使価格 * Step6
PutTheta = -Int(Step9 / 365 * 100 + 0.5) / 100
End If
Else
PutTheta = 0
End If
End Function

こんな感じになります。
B8のセルには
『=CallTheta(B2,B3,B4,B5,B6)』
B9のセルには
『=PutTheta(B2,B3,B4,B5,B6)』
と入力してあります。
これで一通りパラメータ計算式やボラティリティ、プレミアム計算式をご紹介しました。
これを使えばオプションのポジションをシミュレーションしていくことが出来ます。
Excelがあんまり得意でないという人もいらっしゃるでしょうから、次回からは実際に簡単なシミュレータを作っていきましょう。
ちょいと面倒な作業も多いので、更新頻度は高くないと思いますがご容赦ください。
あと何か質問あれば、いつでもコメント・メッセージくださいね(^_-)-☆
セータをやってみましょう。
例のごとく『コピペ』しちゃってください。
セータ関数はコールとプットで異なる関数を使います。
Function CallTheta(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
CallTheta = 0
ElseIf 現指数 <= 0 Then
CallTheta = 0
ElseIf 権利行使価格 <= 0 Then
CallTheta = 0
ElseIf IV = 0 Then
CallTheta = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step4 = Step3 - IV * Sqr(Step1)
Step5 = Application.NormSDist(Step4)
Step6 = Exp(-金利 * Step1)
Step7 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step3 ^ 2 / 2))
Step8 = 現指数 * (IV * 100) / (200 * Sqr(Step1)) * Step7 + 金利 * 権利行使価格 * Step6 * Step5
CallTheta = -Int(Step8 / 365 * 100 + 0.5) / 100
End If
Else
CallTheta = 0
End If
End Function
Function PutTheta(残存日数, 現指数, 権利行使価格, 金利, IV)
If IsError(現指数) = False Then
If 残存日数 <= 0 Then
PutTheta = 0
ElseIf 現指数 <= 0 Then
PutTheta = 0
ElseIf 権利行使価格 <= 0 Then
PutTheta = 0
ElseIf IV = 0 Then
PutTheta = 0
Else
Step1 = 残存日数 / 365
Step2 = Application.Ln(現指数 / 権利行使価格)
Step3 = Step4 - IV * Sqr(Step1)
Step4 = (Step2 + (金利 + IV ^ 2 / 2) * Step1) / (IV * Sqr(Step1))
Step5 = Application.NormSDist(Step3)
Step6 = Exp(-金利 * Step1)
Step7 = 1 / Sqr(2 * Application.Pi()) * Exp(-(Step4 ^ 2 / 2))
Step8 = 現指数 * (IV * 100) / (200 * Sqr(Step1)) * Step7 + 金利 * 権利行使価格 * Step6 * Step5
Step9 = Step8 - 金利 * 権利行使価格 * Step6
PutTheta = -Int(Step9 / 365 * 100 + 0.5) / 100
End If
Else
PutTheta = 0
End If
End Function

こんな感じになります。
B8のセルには
『=CallTheta(B2,B3,B4,B5,B6)』
B9のセルには
『=PutTheta(B2,B3,B4,B5,B6)』
と入力してあります。
これで一通りパラメータ計算式やボラティリティ、プレミアム計算式をご紹介しました。
これを使えばオプションのポジションをシミュレーションしていくことが出来ます。
Excelがあんまり得意でないという人もいらっしゃるでしょうから、次回からは実際に簡単なシミュレータを作っていきましょう。
ちょいと面倒な作業も多いので、更新頻度は高くないと思いますがご容赦ください。
あと何か質問あれば、いつでもコメント・メッセージくださいね(^_-)-☆