9 REM * STANFORD GRADUATE SCHOOL OF BUSINESS * 10 REM * PROGRAM: GRISKA * 11 REM * PURPOSE: ANALYSIS OF RISK IN CAPITAL INVSTMNT* 12 REM * SOURCE: BASED ON A PROGRAM OF UNDKNOWN ORIGIN * 13 REM * REVISED BY W.F. SHARPE, MAY 1971 * 14 REM ************************************************ 15 DIM A(9),C(9),D(9,2),B(9,3),Z(100),P(100),Q(100) 16 S2=0 17 RANDOMIZE 18 MAT Z=ZER 19 MAT A=ZER 21 MAT C=ZER 22 MAT Q=ZER 23 MAT P=ZER 29 REM -------------------------------- 31 PRINT 32 PRINT'RISK ANALYSIS PROGRAM' 33 PRINT 35 PRINT'HOW MANY ITERATION (TRIALS) DO YOU WANT'; 36 INPUT L0 37 PRINT 50 PRINT'DO YOU WANT PRICE, SALES AND OPERATING COSTS ' 51 PRINT'TO BE INTERDEPENDENT'; 52 INPUT A$ 54 L2=0 56 IF MID(A$,1,1)='N' THEN 60 57 L2=1 60 PRINT 70 Z1=-15 71 Z2=30 72 Z4=5 73 PRINT'DO YOU WANT TO SELECT THE OUTPUT FORMAT'; 74 INPUT A$ 75 IF MID(A$,1,1)='N' THEN 85 78 PRINT'RATE OF RETURN RANGE --' 79 PRINT ' FROM (%)'; 80 INPUT Z1 81 PRINT ' T0 (%)'; 82 INPUT Z2 83 PRINT ' INTERVAL WIDTH (%)'; 84 INPUT Z4 85 Z1=Z1/100 86 Z2=Z2/100 87 Z4=Z4/100 88 Z3=INT(((Z2-Z1)/Z4)+.999) 89 PRINT 100 PRINT'FOR EACH FACTOR, ENTER THREE ESTIMATES ==' 101 PRINT' LOW, MOST LIKELY, HIGH' 102 PRINT 103 GOTO 202 109 REM ------------------------------------ 110 REM -- SUBROUTINE TO PRINT FACTOR NAME 120 ON I GOTO 125,130,135,140,145,150,155,160,165 125 PRINT 'INVESTMENT (IN DOLLARS)'; 126 GOTO 200 130 PRINT'MARKET SIZE (IN UNITS)'; 131 GOTO 200 135 PRINT'SELLING PRICE (IN DOLLARS)'; 136 GOTO 200 140 PRINT'MARKET GROWTH RATE (% PER YEAR)'; 141 GOTO 200 145 PRINT'SHARE OF MARKET (%)'; 146 GOTO 200 150 PRINT'RESIDUAL VALUE OF INVESTMENT (IN DOLLARS)'; 151 GOTO 200 155 PRINT'OPERATING COSTS (IN DOLLARS PER UNIT)'; 156 GOTO 200 160 PRINT'FIXED COSTS (IN DOLLARS PER YEAR)'; 161 GOTO 200 165 PRINT'USEFUL LIFE (IN YEARS)'; 200 RETURN 201 REM -------------------------------------------- 202 FOR I=1 TO 9 203 GOSUB 110 206 INPUT B(I,1),B(I,2),B(I,3) 208 IF I<>4 AND I<>5 THEN 214 209 B(I,1)=B(I,1)/100 210 B(I,2)=B(I,2)/100 211 B(I,3)=B(I,3)/100 214 D(I,1)=(B(I,3)-B(I,1))/2.56 216 D(I,2)=(B(I,1)+B(I,2)+B(I,3))/3 218 NEXT I 219 PRINT 231 REM ----------------------------------------- 232 REM *** STMTS 234-810 DO CALCULATIONS FOR EACH ITERATION 234 FOR K=1 TO L0 235 PRINT'-'; 237 REM -- CALCULATE A PSEUDO-NORMAL DEVIATE 238 FOR I=1 TO 9 239 X=0 240 FOR O=1 TO 6 242 X=RND(1)+X 244 NEXT O 246 X=X-3 247 IF L2=0 THEN 258 248 IF I<>3 THEN 251 249 Y=-X 250 GOTO 258 251 IF I<>5 THEN 254 252 X=Y 253 GOTO 258 254 IF I<>7 THEN 258 255 X=-Y 258 C(I)=D(I,2)+D(I,1)*X 259 IF C(I)>0 THEN 261 260 C(I)=0 261 NEXT I 263 REM ------------------------------------- 270 REM -- CHANGE C(9) TO 100 IF IT IS GREATER 271 IF C(9)<100 THEN 280 272 C(9)=100 280 REM -- CONTINUE 597 REM ------------------------------------- 598 REM *** STMTS 600-622 CALCULATE CASH FLOW FOR EACH ITERATION 599 REM 600 FOR I=1 TO C(9) 610 C(2)=C(2)*(1+C(4)) 620 Q1=C(2)*C(5) 630 S1=Q1*C(3) 640 P(I)=S1-Q1*C(7)-C(8) 642 Q(I)=Q(I)+P(I) 650 NEXT I 660 P(C(9))=P(C(9))+C(6) 662 Q(C(9))=Q(C(9))+C(6) 670 GOSUB 1200 677 REM --------------------------------------- 678 REM *** STMTS 680-770 CALCULATE DISTRIBUTION ON ROR 679 REM 680 FOR I=1 TO (Z3+1) 682 IF RA8 THEN 838 832 I8=I 838 PRINT ' YEAR ';:PRINT USING '## ##########.##',I,Q(I) 840 NEXT I 842 PRINT 843 PRINT'AVERAGE TOTAL INVESTMENT = ';A(1)/L0 847 PRINT 848 PRINT'EXPECTED PAYBACK PERIOD:';I8-1;'TO';I8;'YEARS' 850 PRINT'EXPECTED RATE OF RETURN (%): ';100*Z 852 PRINT 853 PRINT'RATE OF RETURN (%)' 854 PRINT'FROM TO';TAB(25);'PROB.';TAB(35); 855 PRINT'PROB. R IS GREATER' 856 PRINT'----- --------';TAB(25);'------';TAB(35); 857 PRINT'-----------------' 858 Z1=100*Z1 859 Z4=100*Z4 860 PRINT'BELOW';TAB(10);Z1;TAB(25);Z(1)/L0;TAB(40);1-Z(1)/L0 861 Z9=Z(1)/L0 870 FOR I=2 TO (Z3+1) 871 PRINT Z1+((I-2)*Z4);TAB(10);Z1+((I-1)*Z4);TAB(25); 872 Z9=Z9+(Z(I)/L0) 873 PRINT USING '#.###',Z(I)/L0;: PRINT TAB(40);:PRINT USING '#.###',1-Z9 875 NEXT I 880 PRINT'ABOVE';TAB(10);Z1+(Z3*Z4);TAB(25);Z(Z3+2)/L0; 881 Z9=Z9+Z(Z3+2)/L0 882 PRINTTAB(40);:PRINT USING '#.###',1-Z9 884 PRINT 909 PRINT 910 PRINT' FACTOR';TAB(42);'AVERAGE VALUE' 912 PRINT'-----------------------------';TAB(42);'-------------' 920 FOR I=1 TO 9 922 IF I=2 THEN 950 924 GOSUB 110 930 IF I<>4 AND I<>5 THEN 940 932 A(I)=100*A(I) 940 PRINT TAB(40); 942 PRINT USING '##########.##',A(I)/L0 950 NEXT I 1199 GOTO 1999 1200 REM -------------------------------- 1201 REM *** STMTS 1205-1400 CALCULATE THE INTERNAL RATE OF 1202 REM *** RETURN FOR EACH ITERATION 1203 REM 1205 B8=0 1209 REM -- METHOD USES TRIAL - AND - ERROR TO 3-PLACE ACCURACY 1210 FOR H=1 TO 3 1220 Q8=.1^H 1230 B8=B8+Q8 1240 E=0 1250 FOR F1=1 TO C(9) 1260 E=(P(F1)*(1/((1+B8)^(F1))))+E 1270 NEXT F1 1280 IF E>C(1) THEN 1230 1290 B8=B8-Q8 1300 NEXT H 1310 IF B8=0 THEN 1330 1320 GOTO 1350 1330 B8=-.8 1340 GOTO 1210 1350 R=B8 1360 RETURN 1999 END