Dear SAS users,
I have this in excel and I would like to have this
CUSIP
DATE
MarketCap
EQ_RET
Assets_value
EQ_RET_StdDev
DPT_drift
DPT
DPT_i
r
d1
d2
FV
Mispricing
65540B10
6/28/2013
819.63525
822.6675019
0.118966659
-0.933719062
3.156
3.156
0.04
47.12774656
47.0087799
819.6352504
4.03E-07
65540B10
7/31/2013
1002.150565
0.222678704
1004.56934
0.118966659
-0.933719062
3.156
2.517209613
0.04
50.7186562
50.59968954
1002.150831
0.000266
65540B10
8/30/2013
1055.065616
0.052801498
1056.994619
0.118966659
-0.933719062
3.156
2.007713637
0.04
53.05215971
52.93319305
1055.065629
1.27E-05
65540B10
9/30/2013
990.3660341
-0.061322804
991.9043867
0.118966659
-0.933719062
3.156
1.601342226
0.04
54.42120528
54.30223862
990.365834
-0.0002
65540B10
10/31/2013
1015.139801
0.025014758
1016.366648
0.118966659
-0.933719062
3.156
1.277222448
0.04
56.52987526
56.4109086
1015.139506
-0.0003
I need to minimize the difference between the fair value (FV) and the MarketCap by changing the Assets_value initially set as MarketCap
I use the following code but does not work:
proc fcmp outlib=work.fcmp.stuff; function FV(Assets_value, DPT_i); return (Assets_value*cdf('NORMAL',(log(Assets_value/DPT_i)+(0.119**2/2+0.04)*1)/(0.119*sqrt(1)))-DPT_i*exp(-0.04*1)*cdf('NORMAL',(log(Assets_value/DPT_i)+(0.119**2/2+r)*1)/(0.119*sqrt(1))-0.119*sqrt(1))); endsub; function Assets_value(DPT_i, MarketCap); return ( solve("FV", {0.1}, MarketCap, .,DPT_i) ); endsub; run;
options cmplib=(work.fcmp);
data have; set t2; assets_value = Assets_value(DPT_i, MarketCap); * format fV assets_value percent8.2; fV = FV(assets_value, DPT_i); run;
proc print data=have; run;
Also I need to use the variable names not the constants.
Thanks in advance
... View more