Hi all,
When submitting the following code to create a subroutine to be used in a pricing function within Risk Dimension, I receive the error stated in the subject.
proc compile outlib = Rd_env.SampleRDEnv
env = Rd_env.SampleRDEnv
package = FUNCPACK;
/*
Function PV_DUR_CSHFLW is used to calculates the Present Value and the Macauley Duration
*/
subroutine PV_DUR_CSHFLW (N ,VDate, Date[*], Amount[*], ZCCurve[*],ZCCMAT[*], Present_Value, MacDuration)
label = "Present Value function"
kind = "Pricing Functions";
outargs Present_Value, MacDuration;
Present_Value = 0;
MacDuration = 0;
do i = 1 to N;
p = Date[i] - VDate;
p_year = p/365.25;
if p gt 0 then do;
r = RATE_RF2(p_year, ZCCURVE, ZCCMAT);
d = exp( -p_year*log(1 + r/100));
MacDuration = MacDuration + (p_year * d *(Amount[i]));
Present_Value = Present_Value + d*(Amount[i]);
end;
end;
if Present_Value gt 0 then do;
MacDuration = MacDuration/Present_Value;
end;
else do; MacDuration = 0; end;
endsub;
run;
Does anyone know how to solve that?
Thanks in advance for your help!
... View more