9000  REM  *****STKRTN*****BUSINESS PROGRAM
9005  REM  STKRTN**********VERSION #1 (7/31/69)*****STOCK RETURN
9010  REM
9015  REM  THIS PROGRAM COMPUTES A MATRIX OF RETURNS FOR AN INVESTMENT IN
9020  REM  A STOCK.  IT THEN COMPUTES AN AVERAGE RETURN FOR A PURCHASE AT
9025  REM  THE BEGINNING OF A YEAR, SELLING AT EACH OF THE FOLLOWING YEARS'
9030  REM  ENDS, AND COMPUTES AN AVERAGE RETURN FOR ALL POSSIBLE HOLDING
9035  REM  PERIODS.  IT ALSO COMPUTES AN AVERAGE RETURN, STANDARD DEVIATION
9040  REM  AND COEFFICIENT OF VARIANCE FOR DIFFERENT LENGTH HOLDING
9045  REM  PERIODS.
9050  REM
9055  PRINT "*  STOCK RETURNS  *"
9060  PRINT 
9065  PRINT "DO YOU WISH TO ENTER YOUR DATA FROM THE TELETYPE, OR INTERNALLY"
9070  PRINT "USING DATA-STATEMENTS?  ('T' FOR TELETYPE, 'D' OTHERWISE)";
9075  INPUT N$
9080  PRINT 
9082  IF N$="D" THEN 9170
9085  PRINT "FOR HOW MANY YEARS DO YOU WISH TO ENTER PRICE AND DIVIDEND DATA, REMEM-"
9090  PRINT "BERING THE NEED FOR A BASE YEAR?? (MAX # OF YEARS IS 25)";
9095  INPUT N
9100  PRINT 
9105  PRINT "WHAT IS THE FIRST YEAR FOR WHICH YOU WISH TO ENTER DATA";
9110  INPUT Y1
9115  PRINT 
9120  PRINT "ENTER THE DIVIDEND PER SHARE AND THE CLOSING STOCK PRICE, SEPERATED"
9125  PRINT "BY A COMMA, FOR EACH OF THE FOLLOWING YEARS."
9130  PRINT 
9135  PRINT TAB(15);"DPS, CSP"
9140  PRINT 
9145  FOR I=1 TO N
9150  PRINT "YEAR";Y1+(I-1);
9155  INPUT D[I],P[I]
9160  NEXT I
9165  GOTO 9190
9170  READ N,Y1
9175  FOR I=1 TO N
9180  READ D[I],P[I]
9185  NEXT I
9190  PRINT 
9195  PRINT "***********************************************************************"
9200  PRINT 
9205  DIM D[25],P[25],W[25,25]
9210  FOR I=1 TO (N-1)
9215  FOR J=(I+1) TO N
9220  LET B=0
9225  FOR C=1 TO 5
9230  LET Q=.1^C
9235  LET B=B+Q
9240  LET E=0
9245  FOR F=(I+1) TO J
9250  LET E=(D[F]*(1/((1+B)^(F-I))))+E
9255  NEXT F
9260  LET E=E+P[J]*(1/((1+B)^(J-I)))
9265  IF E-P[I]>0 THEN 9235
9270  LET B=B-Q
9275  NEXT C
9280  IF B=0 THEN 9290
9285  GOTO 9300
9290  LET B=-.8
9295  GOTO 9225
9300  LET W[I,J]=B
9305  NEXT J
9310  NEXT I
9325  PRINT "                 RETURNS ON INVESTMENTS"
9330  PRINT "                 ----------------------"
9335  PRINT 
9340  PRINT 
9345  FOR K=1 TO (N-1) STEP 4
9350  IF N-1-K<4 THEN 9435
9355  PRINT "   TO",Y1+K,Y1+(K+1),Y1+(K+2),Y1+(K+3)
9360  PRINT "FROM"
9365  FOR I=1 TO K
9370  PRINT Y1+(I-1),
9375  FOR J=(K+1) TO (K+4)
9380  PRINT W[I,J],
9385  NEXT J
9390  NEXT I
9395  PRINT Y1+K," ",W[K+1,K+2],W[K+1,K+3],W[K+1,K+4]
9400  PRINT Y1+K+1," "," ",W[K+2,K+3],W[K+2,K+4]
9405  PRINT Y1+K+2," "," "," ",W[K+3,K+4]
9410  PRINT 
9415  PRINT 
9420  PRINT 
9425  NEXT K
9430  GOTO 9560
9435  PRINT "   TO",
9440  FOR I=K TO (N-1)
9445  PRINT Y1+I,
9450  NEXT I
9455  LET Q=4-(N-K)
9460  GOSUB 9540
9465  PRINT "FROM"
9470  FOR I=1 TO N-1
9475  PRINT Y1+(I-1),
9480  IF I <= (N-(N-K)) THEN 9505
9485  LET Q=I-K
9490  GOSUB 9540
9495  LET J=K+1+Q
9500  GOTO 9510
9505  FOR J=K+1 TO N
9510  PRINT W[I,J],
9515  NEXT J
9520  LET Q=4-(N-K)
9525  GOSUB 9540
9530  NEXT I
9535  GOTO 9560
9540  FOR H=1 TO Q
9545  PRINT " ",
9550  NEXT H
9555  RETURN 
9560  PRINT 
9565  PRINT "                 -------------------------"
9570  PRINT 
9575  PRINT 
9580  LET X=0
9585  LET Y=0
9590  LET V=0
9595  FOR I=1 TO (N-1)
9600  FOR J=(I+1) TO N
9605  LET X=W[I,J]+X
9610  LET Y=W[I,J]+Y
9615  NEXT J
9620  PRINT "AVERAGE RETURN FROM";Y1+(I-1);"=";X/(N-I)
9625  LET V=(N-I)+V
9630  PRINT 
9635  LET X=0
9640  NEXT I
9645  PRINT 
9650  PRINT " AVERAGE RETURN FOR ALL"
9655  PRINT "POSSIBLE HOLDING PERIODS =";Y/V
9660  PRINT 
9665  PRINT 
9670  PRINT "               ----------------------------"
9675  PRINT 
9680  PRINT 
9685  PRINT TAB(35);"AVERAGE";TAB(47);"STANDARD";TAB(61);"COEFF."
9690  PRINT TAB(36);"RETURN";TAB(47);"DEVIATION";TAB(60);"VARIATION"
9695  PRINT 
9700  LET V3=0
9705  LET N2=0
9710  LET X2=0
9715  LET Y2=0
9720  LET V2=0
9725  FOR I=1 TO (N-1)
9730  FOR J=1 TO N
9735  IF J+I>N THEN 9755
9740  LET X2=W[J,J+I]+X2
9745  LET V2=W[J,J+I]+V2
9750  NEXT J
9755  LET X2=X2/(J-1)
9760  FOR J=1 TO N
9765  IF J+I>N THEN 9785
9770  LET Y2=(W[J,J+I]-X2)^2+Y2
9775  LET V3=(W[J,J+I])^2+V3
9780  NEXT J
9785  LET Y2=SQR(Y2/(J-1))
9790  PRINT "FOR ALL";I;"YR HOLDING PERIODS:";TAB(33);X2;TAB(46);Y2;TAB(60);Y2/X2
9800  PRINT 
9805  LET X2=0
9810  LET Y2=0
9815  NEXT I
9820  LET C3=SQR((V*V3-V2*V2)/V/(V-1))
9825  PRINT "FOR ALL POSSIBLE HOLDING PERIODS:";TAB(33);V2/V;TAB(47);C3;
9830  PRINT TAB(60);C3/(V2/V)
9835  PRINT 
9840  PRINT 
9845  PRINT "************************************************************************"
9999  END 
