Я создал программу, с помощью VBA для вычисления европейского вызова цены опциона, следующим образом:биномиальных европейских опционов модель ценообразования
Private Sub CallPrice_Click()
Dim K As Single
Dim So As Single
Dim r As Single
Dim T As Single
Dim sigma As Single
Dim u As Single
Dim d As Single
Dim p As Single
Dim CP As Single
Dim M As Single
Dim S As Single
Dim CB As Double
Dim n As Integer
Dim i As Integer
K = Cells(2, 2)
So = Cells(3, 2)
r = Cells(4, 2)
T = Cells(5, 2)
sigma = Cells(6, 2)
n = Cells(7, 2)
u = Exp(sigma * Sqr(T/n))
d = 1/u
p = (Exp(r * T/n) - d)/(u - d)
CP = 0
For i = 0 To n Step 1
M = WorksheetFunction.Max(So * (u^i) * d^(n - i) - K, 0)
CB = WorksheetFunction.Combin(n, i)
S = M * CB * (p^n) * (1 - p)^(n - i)
CP = CP + S
Next i
Cells(9, 2) = CP/(1 + r)^n
End Sub
Вот макет таблицы:
Когда я запустил программу, произошла ошибка.
Может кто-то здесь объяснить, что случилось в моей программе и как это исправить?
Каковы значения 'n' и' i' при возникновении ошибки? – Rory
@Rory Я не знаю, как проверить эти значения: '( –
Вид -> Непосредственное окно, затем в виде непосредственного окна? например? I и затем нажмите кнопку ввода. Могу ли я предположить, что число в i равно 162? –
99moorem