커뮤니티

애러(33줄20열에 ):현재시점의 함수리턴값은 조회할수없슴니다 라고하네요

프로필 이미지
leekss1
2017-12-26 17:19:10
168
글번호 115278
답변완료
input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*sqrt(T)); var2 = var1 - Sig*sqrt(T); var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2)); if cpflag == 1 then { _Theta = (-1) * (S * Exp^((q-r)*T) * var3 * Sig) / (2*Sqrt(T)) - (q-r) * S * Exp^((q-r)*T) * _NormSDist(var1) - r * X * Exp^((-r)*T) * _NormSDist(var2); } else if cpflag == 2 then { _Theta = (-1) * (S * Exp^((q-r)*T) * var3 * Sig) / (2*Sqrt(T)) + (q-r) * S * Exp^((q-r)*T) * _NormSDist(-var1) + r * X * Exp^((-r)*T) * _NormSDist(-var2); } _Theta = _Theta / 365;
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-12-27 15:20:01

안녕하세요 예스스탁입니다. 올리신 식이 오래전 버전의 식이니다. 사용자함수는 함수자체의 현재값을 참조할수 없습니다. 그러므로 마지막줄의 내용을 아래와 같이 변경하시면 됩니다. _Theta = _Theta[1]/ 365; 즐거운 하루되세요 > leekss1 님이 쓴 글입니다. > 제목 : 애러(33줄20열에 ):현재시점의 함수리턴값은 조회할수없슴니다 라고하네요 > input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*sqrt(T)); var2 = var1 - Sig*sqrt(T); var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2)); if cpflag == 1 then { _Theta = (-1) * (S * Exp^((q-r)*T) * var3 * Sig) / (2*Sqrt(T)) - (q-r) * S * Exp^((q-r)*T) * _NormSDist(var1) - r * X * Exp^((-r)*T) * _NormSDist(var2); } else if cpflag == 2 then { _Theta = (-1) * (S * Exp^((q-r)*T) * var3 * Sig) / (2*Sqrt(T)) + (q-r) * S * Exp^((q-r)*T) * _NormSDist(-var1) + r * X * Exp^((-r)*T) * _NormSDist(-var2); } _Theta = _Theta / 365;