커뮤니티
빠른답변 감사합니다.
2009-04-22 15:32:27
938
글번호 21851
쎄타값 구하는 것도 오류가 뜹니다.
수식입니다.
input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),vol(numeric);
var:Exp(2.71828182846);
var1 = (log(S/X) + (r + (vol^2) / 2)*T) / (vol*sqrt(T));
var2 = var1 - vol*sqrt(T);
var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2));
if cpflag == 1 then
_Theta = (-1)*(S * vol * var3)/(2*Sqrt(T)) - r * X * Exp^((-r)*T) * _NormSDist(var2);
if cpflag == 2 then
_Theta = (-1)*(S * vol * var3)/(2*Sqrt(T)) + r * X * Exp^((-r)*T) * (1-_NormSDist(var2));
_Theta = _Theta / 365;
이것도 맨 마지막 줄이 함수 리턴값은 조회할 수 없다고 하는데요 수정좀 부탁합니다.
답변 1
예스스탁 예스스탁 답변
2009-04-22 15:45:14
안녕하세요
예스스탁입니다.
식의 가장 마지막의 줄에서 에러가 발생합니다.
_Theta = _Theta / 365;
_Theta는 사용자함수이므로 자기값을 참조하여 식을 작성하실 수 없습니다.
전봉값을 참조하라는 의미로 변경해 주시면 됩니다.
_Theta = _Theta[1] / 365;
아래는 수정한 식입니다.
즐거운 하루되세요
input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),vol(numeric);
var:Exp(2.71828182846);
var1 = (log(S/X) + (r + (vol^2) / 2)*T) / (vol*sqrt(T));
var2 = var1 - vol*sqrt(T);
var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2));
if cpflag == 1 then
_Theta = (-1)*(S * vol * var3)/(2*Sqrt(T)) - r * X * Exp^((-r)*T) * _NormSDist(var2);
if cpflag == 2 then
_Theta = (-1)*(S * vol * var3)/(2*Sqrt(T)) + r * X * Exp^((-r)*T) * (1-_NormSDist(var2));
_Theta = _Theta[1] / 365;
> 마진콜없다 님이 쓴 글입니다.
> 제목 : 빠른답변 감사합니다.
> 쎄타값 구하는 것도 오류가 뜹니다.
수식입니다.
input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),vol(numeric);
var:Exp(2.71828182846);
var1 = (log(S/X) + (r + (vol^2) / 2)*T) / (vol*sqrt(T));
var2 = var1 - vol*sqrt(T);
var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2));
if cpflag == 1 then
_Theta = (-1)*(S * vol * var3)/(2*Sqrt(T)) - r * X * Exp^((-r)*T) * _NormSDist(var2);
if cpflag == 2 then
_Theta = (-1)*(S * vol * var3)/(2*Sqrt(T)) + r * X * Exp^((-r)*T) * (1-_NormSDist(var2));
_Theta = _Theta / 365;
이것도 맨 마지막 줄이 함수 리턴값은 조회할 수 없다고 하는데요 수정좀 부탁합니다.
이전글