0
을 반환하지 않고 종료 루프를 들어 나는 다음이 코드에서 확률 과정 VBA : 값
Function varswap1(s0, r0, sigma0, t) As Double
Rnd (-10)
Randomize (999)
Dim i As Integer, j As Integer, r As Double
Dim stock() As Double, dt As Double
Dim per As Integer
per = WorksheetFunction.Round(t * 252, 0)
ReDim stock(per)
stock(1) = s0
dt = 1/252
For i = 1 To per
stock(i + 1) = stock(i) * Exp((r0 - 0.5 * sigma0^2) * dt + sigma0 * Sqr(dt) * WorksheetFunction.NormSInv(Rnd()))
Next
varswap1 = WorksheetFunction.Average(stock)
End Function
을 사용하여 주식 가격을 시뮬레이션하는 코드 조각, 나는 다음 전체에 브레이크 포인트를 배치하여 디버깅을 실행을 For 루프는 절대적으로 잘 작동합니다. 문제는 함수가 종료되고 루프에 #VALUE!
오류가 셀에 표시된 후입니다.
이 코드의 문제점을 파악할 수 없습니다. 누구든지 도와 주시면 감사하겠습니다.
'stock'는'per' 요소 만 가지고 있고 (0을 기반으로하기 때문에) 두 번째에서 마지막 루프 반복은'stock (i + 1)'을 평가하려고 할 때 첨자 오류를 주어야합니다. – Comintern
@Comintern이 그것을 생각했습니다 - 또한 Average()는 계산할 최대 255 개의 값만 허용합니다. –
예. 정말 고맙습니다. – Chinmay