Listing of file='SFSSP3.BAS;01' on disk='vmedia/sfssp_v1.3_stock-sector.ccvf'
5 REM ***************************************************** 6 REM *STOCK FUND SWITCH STRATEGY PROGRAM (SFSSP) VER.1.3 * 10 REM *PROGRAM STRATEGY PATTERNED AFTER METHOD USED IN * 20 REM *ARTICLE IN 'PERSONAL FINANCE' LETTER, V.IX, NO.11, * 30 REM *ENTITLED"BEAT THE MARKET WITH NO-LOAD MUTUAL FUNDS"* 40 REM *BY R. FABIAN, AN SEC-REGISTERED INVESTMENT ADVISOR.* 50 REM *THE STRATEGY WAS PROGRAMMED FOR THE COMPUCOLOR BY * 60 REM *D.A. VAN PUTTE, 18 CROSS BOW DRIVE, ROCHESTER, N.Y.* 70 REM *14624, 716-889-4994, COPYRIGHT 1982 * 75 REM *THE PROGRAM AUTHOR MAKES NO EXPRESSED OR IMPLIED * 76 REM *WARRENTY OF SUCCESS IN MAKING USE OF THIS PROGRAM. * 80 REM ***************************************************** 100 CLEAR 500:DIM A$(11),DI(160),DT(160),S(9,160),VA(160) 105 DIM F(11),W(11),AN$(11),CV(11),AV(11),V(160) 110 PLOT 12,3,13,2:PRINT "STOCK FUND SWITCH STRATEGY PROGRAM:" 120 PLOT 3,10,6:PRINT "1) CREATE STOCK FILES" 130 PLOT 3,10,8:PRINT "2) ENTER STOCK VALUES & DOW JONES AVERAGES, COMPUTE" 140 PLOT 3,10,10:PRINT " MOVING 39-WEEK AVERAGES & PRINT DECISION TABLE" 145 PLOT 3,10,12:PRINT "3) PRINT DECISION TABLE WITHOUT WEEKLY DATA INPUT" 147 PLOT 3,10,14:PRINT "4) PRINT & CHANGE DATA FILES (SCREEN OR PRINTER)" 150 PLOT 3,10,16:PRINT "5) INPUT A NUMBER OF WEEKS OF DATA DIRECTLY TO FILES" 160 PLOT 3,10,18:PRINT "6) PLOT STOCK AND DOW PERFORMANCE FOR ONE YEAR" 165 PLOT 3,10,20:PRINT "7) ADD NEW STOCK FILE" 167 PLOT 3,10,22:PRINT "8) EXPLANATION OF PROGRAM STRATEGY" 170 PLOT 3,10,24:PRINT "9) STORE DATA AND END PROGRAM (MUST END PROGRAM" 175 PLOT 3,10,26:PRINT " WITH THIS OPTION OR DATA ENTRIES WILL BE LOST)" 180 PLOT 3,13,29:INPUT "ENTER NUMBER DESIRED ";N 185 IF N< 1OR N> 9THEN 180 190 ON NGOTO 200,300,500,600,700,800,900,400,1000 200 REM CREATE STOCK AND DOW FILES 201 RD= 1:PLOT 12,3,10,2:PRINT "CREATE STOCK FILES:" 210 PLOT 3,10,6:PRINT "ENTER NO. OF STOCKS " 212 PLOT 3,10,7:PRINT "(LIMIT NUMBER OF STOCKS TO NINE)";:INPUT "";NS:IF NS> 9THEN 212 215 PLOT 3,10,8:PRINT "(LIMIT STOCK NAME TO TEN CHARACTERS)":PRINT 220 FOR I= 1TO NS:PRINT TAB( 10)"ENTER NAME OF STOCK FILE NO. "I; 230 INPUT A$(I):PRINT :NEXT I 235 REM CREATE STOCK NAME FILE & INITIALIZE 240 FILE "N","SKNAME",10,10,8:F= 12 242 FILE "R",F,"SKNAME",1:A$(NS+ 1)= "LAST " 244 FOR N= 1TO NS+ 1:PUT F,N;A$(N)[10]:NEXT N 249 REM CREATE WEEKLY STOCK VALUE FILES & INITIALIZE 250 FOR S= 1TO NS 252 NM$= "STOCK"+ RIGHT$ (STR$ (S),1) 254 FILE "N",NM$,16,40,5:F= S:FILE "R",F,NM$,1 256 FOR W= 1TO 160:V(W)= 0:NEXT W 266 GOSUB 2000:NEXT S 268 FILE "N","DJIAVE",16,40,5:FILE "N","DJTAVE",16,40,5 270 F= 10:NM$= "DJIAVE":FILE "R",F,NM$,1:GOSUB 2000 272 F= 11:NM$= "DJTAVE":FILE "R",F,NM$,1:GOSUB 2000 299 GOTO 110 300 REM ENTER STOCK & DOW WEEKLY DATA/PRINT DECISION TABLE 301 CI= 1:PLOT 12,3,10,2:PRINT "INPUT WEEKLY VALUES: " 303 PLOT 3,10,6:INPUT "ENTER DOW 'I' AVERAGE ";WI 304 PLOT 3,10,30:INPUT "CHANGE VALUE (Y[CR] OR [CR])? ";Z$:IF Z$= "Y"THEN 303 305 PLOT 3,10,8:INPUT "ENTER DOW 'T' AVERAGE ";WT 306 PLOT 3,10,30:INPUT "CHANGE VALUE (Y[CR] OR [CR])? ";Z$:IF Z$= "Y"THEN 305 310 IF RD< > 1THEN GOSUB 9000 316 FOR S= 1TO NS:X= 10+ 2* (S- 1) 317 PLOT 3,10,X:PRINT "ENTER VALUE FOR "A$(S)" ";:INPUT SW(S) 318 PLOT 3,10,30:INPUT "CHANGE VALUE (Y[CR] OR [CR])? ";Z$:IF Z$= "Y"THEN 317 319 NEXT S 330 GOSUB 9050 388 GOSUB 5500:GOSUB 6000:GOTO 110 400 REM EXPLANATION OF PROGRAM STRATEGY 401 PLOT 12,3,13,2:PRINT "STOCK FUND SWITCH STRATEGY PROGRAM:" 410 PRINT :PRINT :PRINT " THE PROGRAM STRATEGY WAS PATTERNED AFTER A METHOD USED IN" 420 PRINT "AN ARTICLE IN 'PERSONAL FINANCE', A BI-WEEKLY LETTER PUBLISHED " 430 PRINT "BY KEPHART COMMUNICATIONS, INC., VOL. IX, NO. 11, ENTITLED " 440 PRINT "'BEAT THE MARKET WITH NO-LOAD MUTUAL FUNDS'. IT WAS WRITTEN BY" 450 PRINT "R. FABIAN, AN SEC-REGISTERED INVESTMENT COUNCELOR & AUTHOR OF" 460 PRINT "HIS OWN 'TELEPHONE SWITCH NEWSLETTER'.":GOSUB 6500 470 PRINT :PRINT " THE AUTHOR MAKES NO EXPRESSED OR IMPLIED WARRENTY OF" 472 PRINT "SUCCESS OF ANY KIND FROM USING THIS PROGRAM. IN NO EVENT SHALL" 474 PRINT "THE AUTHOR BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN" 476 PRINT "CONNECTION WITH OR ARISING OUT OF THE FURNISHING, PERFORMANCE " 478 PRINT "OR USE OF THIS PROGRAM." 499 PRINT :PRINT ;:INPUT " HIT [CR] FOR MENU ";ZZ:GOTO 110 500 REM PRINT DECISION TABLE 501 PLOT 12,3,10,4:PRINT "PRINT CURRENT DECISION TABLE: " 510 IF RD< > 1THEN GOSUB 9000 550 GOSUB 5500:GOSUB 6000 599 GOTO 110 600 REM PRINT & CHANGE EXISTING DATA FILES 601 PLOT 12,3,13,0:PRINT "PRINT STOCK AND DOW FILES: " 610 CH= 0:IF RD< > 1THEN GOSUB 9000 628 PLOT 3,0,3:INPUT "LIST TO THE PRINTER? (Y[CR] OR [CR])";ZZ$:IF ZZ$< > "Y"THEN PR= 0:GOTO 631 629 PR= 1:PLOT 3,0,3:INPUT "ENTER THE PRINTER BAUD RATE (1,2..7)[CR]";ZZ:PLOT 27,18,ZZ,27,13 631 IF NS> 5THEN E= 5:GOTO 634 632 E= NS 634 B= 1:IF PR< > 1THEN PLOT 3,0,5 636 GOSUB 7100 648 IF NS< 6THEN 683 650 B= 6:E= NS:IF PR< > 1THEN PLOT 3,0,5 652 GOSUB 7100 683 IF PR= 1THEN GOSUB 4500 685 CI= 0:IF CH= 1THEN GOSUB 9050 699 PRINT :INPUT "HIT [CR] FOR MENU ";ZZ:GOTO 110 700 REM INPUT MULTIPLE WEEKS OF DATA 702 CI= 1:IF RD< > 1THEN GOSUB 9000:CI= 0:GOSUB 9050 704 CI= 0 706 PLOT 12,3,10,2:PRINT "MASS INPUT OF STOCK AND DOW DATA:" 708 PLOT 3,10,6:PRINT "ENTER DATA WEEK BY WEEK, CURRENT WEEK = 1" 710 PLOT 3,10,8:PRINT "DOW 'I' FILE CONTAINS DATA TO WEEK ";DI(160) 712 PLOT 3,10,10:INPUT "ENTER WEEK NO. TO BEGIN.. ";ST:IF ST< 0OR ST> 160THEN 712 714 PLOT 3,40,10:INPUT " END.. ";EN 716 IF EN< ST OR EN> 160 THEN 714 718 FOR W= STTO EN 720 PLOT 3,0,12:PRINT "WEEK NO. ";W:PLOT 3,20,12:PRINT "DOW 'I' ";DI(W);:PLOT 3,29,12:INPUT "";X 722 PLOT 3,40,12:PRINT "DOW 'T' ";DT(W);:PLOT 3,49,12:INPUT "";Y 724 IF X= 0THEN 732 725 DI(W)= X:F= 1:IF W= 160THEN 732 728 IF W> DI(160)THEN DI(160)= W 732 IF Y= 0THEN 740 733 DT(W)= Y:F= 1:IF W= 160THEN 740 736 IF W> DT(160)THEN DT(160)= W 740 FOR S= 1TO NS 742 IF S> 3THEN 756 744 PLOT 3,20* (S- 1),14:PRINT A$(S);" ";S(S,W);:PLOT 3,20* (S- 1)+ 11,14:INPUT "";S1:IF S1= 0THEN 752 745 S(S,W)= S1:F= 1:IF W= 160THEN 752 748 IF W> S(S,160)THEN S(S,160)= W 752 GOTO 776 754 IF S> 6THEN 768 756 PLOT 3,20* (S- 4),16:PRINT A$(S);" ";S(S,W);:PLOT 3,20* (S- 4)+ 11,16:INPUT "";S2:IF S2= 0THEN 764 757 S(S,W)= S2:F= 1:IF W= 160THEN 764 760 IF W> S(S,160)THEN S(S,160)= W 764 GOTO 776 768 PLOT 3,20* (S- 7),18:PRINT A$(S);" ";S(S,W);:PLOT 3,20* (S- 7)+ 11,18:INPUT "";S3:IF S3= 0THEN 776 769 S(S,W)= S3:F= 1:IF W= 160THEN 776 772 IF W> S(S,160)THEN S(S,160)= W 776 NEXT S:NEXT W 780 IF F= 1THEN GOSUB 9050 784 PLOT 3,0,30:INPUT "HIT [CR] FOR MENU ";ZZ:GOTO 110 800 REM PLOT STOCK & DOW PERFORMANCE 801 PLOT 12:IF RD< > 1THEN GOSUB 9000 802 PLOT 3,20,0:PRINT "PERFORMANCE PLOT:":PLOT 3,10,4:PRINT "NO. STOCK" 803 FOR I= 1TO NS:PRINT :PRINT TAB( 10)I,A$(I):NEXT I 805 PLOT 10,10,10:PRINT TAB( 10);:INPUT "ENTER STOCK NO. TO BE PLOTTED. ";S:IF S< 1OR S> NSTHEN 805 806 PLOT 3,10,29:INPUT "ENTER ENDING WEEK OF PLOT PERIOD. (1=CURRENT) ";LW:IF LW< 1OR LW> DI(160)OR LW> 105THEN 806 807 GOSUB 830:FOR W= 1TO 159:V(W)= S(S,W):NEXT W 808 GOSUB 860:GOSUB 850:IF (VM- VN)= 0THEN KT= 0:GOTO 810 809 KT= 15/ (VM- VN) 810 MN= 16:PLOT 19:GOSUB 870 812 FOR W= 1TO 159:V(W)= DT(W):NEXT W 813 GOSUB 860:GOSUB 850:IF (VM- VN)= 0THEN KT= 0:GOTO 816 814 KT= 40/ (VM- VN) 816 MN= 33:PLOT 21:GOSUB 870 818 FOR W= 1TO 159:V(W)= DI(W):NEXT W 819 GOSUB 860:GOSUB 850:IF (VM- VN)= 0THEN KT= 0:GOTO 822 820 KT= 40/ (VM- VN) 822 MN= 75:PLOT 23:GOSUB 870 828 PLOT 3,0,30:INPUT "(CR) TO MENU ";ZZ:GOTO 110 830 PLOT 12:REM DRAW AXIS AND LABEL 832 PLOT 12,15,17,2,20,15,242,127,15,255 834 PLOT 2,20,15,242,20,127,255 836 PLOT 30:FOR I= 0TO 5:PLOT 2,102- I* 20+ 23,15,255:NEXT I:PLOT 29 838 PLOT 23,3,6,29:PRINT SPC( 4);LW+ 50;TAB( 14);LW+ 40;TAB( 24);LW+ 30;TAB( 34);LW+ 20;TAB( 44);LW+ 10;TAB( 54);LW" 840 PLOT 23,3,0,6:PRINT "DOW INDUS.":PLOT 21,3,0,15:PRINT "DOW TRANS.":PLOT 19,3,0,24:PRINT A$(S) 842 PLOT 3,21,0:PRINT "STOCK & DOW PERFORMANCE" 844 PLOT 3,34,30:PRINT "WEEK NO." 848 RETURN 850 REM MAX/MIN 852 VM= V(LW):VN= V(LW):FOR I= LW+ 1TO LW+ 51 853 IF V(I)< = 0THEN 858 854 IF VM< V(I)THEN VM= V(I) 855 IF VM< VA(I)THEN VM= VA(I):GOTO 858 856 IF VN> V(I)AND V(I)> 0THEN VN= V(I) 857 IF VN> VA(I)AND VA(I)> 0THEN VN= VA(I) 858 NEXT I:RETURN 860 REM 39 WEEK AVE 862 FOR I= LWTO LW+ 51:SM= 0 864 FOR J= ITO I+ 38:IF V(J)= 0THEN VA(I)= 0:GOTO 868 866 SM= SM+ V(J):NEXT J:VA(I)= SM/ 39 868 NEXT I:RETURN 870 REM PLOT 872 FOR I= LW+ 51TO LWSTEP - 1:WK= 23+ (LW+ 51- I)* 2 874 IF V(I)= 0THEN 878 876 PLOT 2,WK,(V(I)- VN)* KT+ MN,255 878 IF VA(I)= 0THEN 882 880 PLOT 2,WK,(VA(I)- VN)* KT+ MN,255 882 NEXT I:PLOT 18:RETURN 900 REM ADD A NEW STOCK FILE 905 PLOT 12,3,10,0:PRINT "ADD A NEW STOCK FILE:" 910 IF RD< > 1THEN GOSUB 9000 915 NS= NS+ 1:PRINT :PRINT TAB( 10)"ENTER NAME OF NEW STOCK FILE NO. ";NS;:INPUT A$(NS):A$(NS+ 1)= "LAST " 917 IF NS> 9THEN PLOT 3,10,4:PRINT "FILE CAPACITY AT MAXIMUM":NS= NS- 1:GOTO 999 920 F= NS:FOR N= 1TO NS+ 1:PUT 12,N;A$(N)[10]:NEXT N 925 NM$= "STOCK"+ RIGHT$ (STR$ (F),1) 930 FILE "N",NM$,16,40,5:FILE "R",F,NM$,1 935 FOR W= 1TO 160:V(W)= 0:NEXT W:CI= 0:GOSUB 9050 999 PRINT :PRINT TAB( 10):INPUT "HIT [CR] FOR MENU ";ZZ:GOTO 110 1000 REM WRITE DATA, CLOSE ALL FILES, END PGM 1010 REM CLOSE EACH WEEKLY STOCK VALUE FILE 1020 FOR S= 1TO NS 1030 NM$= "STOCK"+ RIGHT$ (STR$ (S),1) 1040 F= S:FOR W= 1TO 160:V(W)= S(S,W):NEXT W 1050 GOSUB 2000:FILE "C",F 1060 NEXT S 1070 REM CLOSE THE WEEKLY DOW 'I', 'T' FILES 1080 F= 10:NM$= "DJIAVE":FOR W= 1TO 160:V(W)= DI(W) 1090 NEXT W:GOSUB 2000:FILE "C",F 1100 F= 11:NM$= "DJTAVE":FOR W= 1TO 160:V(W)= DT(W) 1110 NEXT W:GOSUB 2000:FILE "C",F 1120 REM CLOSE SKNAME FILE 1130 FILE "C",12:END 2000 REM SUBROUTINE TO WRITE TO FILES: CALLING SECTION 2002 REM REQUIRES F (FILE#), V (VARIABLE ARRAY) 2010 J= 0:FOR N= 1TO 16 2020 PUT F,N;V(J+ 1),V(J+ 2),V(J+ 3),V(J+ 4),V(J+ 5),V(J+ 6),V(J+ 7),V(J+ 8),V(J+ 9),V(J+ 10) 2030 J= J+ 10:NEXT N:RETURN 3000 REM SUBROUTINE TO READ FILES: CALLING SECTION REQUIRES 3010 REM F (FILE#),V(VARIABLE ARRAY), NM$ (FILE NAME) 3020 FILE "R",F,NM$,1:J= 0:FOR N= 1TO 16 3030 GET F,N;V(J+ 1),V(J+ 2),V(J+ 3),V(J+ 4),V(J+ 5),V(J+ 6),V(J+ 7),V(J+ 8),V(J+ 9),V(J+ 10) 3040 J= J+ 10:NEXT N:RETURN 4000 REM SUBROUTINE TO REARRANGE FILE DATA 4010 IF V(160)> = 159THEN V(160)= 159:GOTO 4030 4020 V(160)= V(160)+ 1 4022 IF V(160)= 1THEN 4040 4024 IF V(160)= 2THEN V(2)= V(1):GOTO 4040 4030 FOR I= V(160)TO 2STEP - 1:V(I)= V(I- 1):NEXT I 4040 V(1)= CV(M):RETURN 4500 REM SUBROUTINE TO ALLOW MASS FILE CHANGES 4510 POKE 33265,0:PLOT 3,0,18:INPUT "DO YOU WISH TO CORRECT ANY VALUES? (Y[CR] OR [CR]) ";ZZ$ 4512 IF ZZ$< > "Y"THEN ER= 5:ED= 20:GOSUB 7000:RETURN 4515 CH= 1:ER= 20:ED= 5:GOSUB 7000 4520 PLOT 3,0,20:PRINT "ENTER WEEK NO.";:INPUT WW:IF WW< 1OR WW> DI(160)THEN 4520 4525 INPUT "ENTER S (STOCK);I (DOW I); OR T (DOW T) ";X$ 4530 IF X$= "S"THEN INPUT "ENTER STOCK NO. ";SS:IF SS< 0OR SS> NSTHEN 4530 4535 IF X$= "S"THEN INPUT "ENTER STOCK VALUE ";S(SS,WW):GOTO 4570 4540 IF X$= "I"THEN INPUT "ENTER DOW I VALUE ";DI(WW):GOTO 4570 4550 IF X$= "T"THEN INPUT "ENTER DOW T VALUE ";DT(WW):GOTO 4570 4560 GOTO 4525 4570 PLOT 3,0,5:GOSUB 7200:FOR WK= W- 10TO W- 1:K= WK:GOSUB 7300:NEXT WK:GOTO 4510 5000 REM SUBROUTINE TO COMPUTE 39-WEEK AVERAGE 5002 IF V(160)< 39THEN F(M)= 1:LM= V(160):W(M)= LM:GOTO 5010 5004 LM= 39:F(M)= 0 5010 IF V(160)= 0THEN AV(M)= 0:GOTO 5030 5015 SM= 0:FOR I= 1TO LM 5020 SM= SM+ V(I):NEXT I:AV(M)= SM/ LM 5030 RETURN 5500 REM PREPARE DATA FOR CHART PRINT OUT 5510 FOR I= 1TO NS 5520 IF CV(I)> AV(I)THEN AN$(I)= "ABOVE":GOTO 5550 5530 IF CV(I)= AV(I)THEN AN$(I)= "SAME":GOTO 5550 5540 AN$(I)= "BELOW" 5550 NEXT I 5560 A$(NS+ 1)= "DOW INDUSTRIAL" 5570 IF CV(NS+ 1)> AV(NS+ 1)THEN AN$(NS+ 1)= "ABOVE":GOTO 5600 5580 IF CV(NS+ 1)= AV(NS+ 1)THEN AN$(NS+ 1)= "SAME":GOTO 5600 5590 AN$(NS+ 1)= "BELOW" 5600 A$(NS+ 2)= "DOW TRANSPORTATION" 5610 IF CV(NS+ 2)> AV(NS+ 2)THEN AN$(NS+ 2)= "ABOVE":GOTO 5650 5620 IF CV(NS+ 2)= AV(NS+ 2)THEN AN$(NS+ 2)= "SAME":GOTO 5650 5630 AN$(NS+ 2)= "BELOW" 5640 REM PRINT OUT STOCK & DOW VALUES & 39-WEEK AVERAGES 5650 PLOT 12,3,19,2:PRINT "STOCK FUND DECISION CHART" 5660 PRINT :PRINT TAB( 4)"VALUE NAME"TAB( 19)"CURRENT VALUE"TAB( 34)"39-WEEK AVERAGE"TAB( 51)"ANALYSIS" 5670 PRINT :FOR I= 1TO NS+ 2:PRINT TAB( 0);A$(I);TAB( 22);CV(I);TAB( 37);AV(I); 5680 IF F(I)= 1THEN PRINT TAB( 48)"*"TAB( 50);W(I)"";: 5690 PRINT TAB( 54);AN$(I):NEXT I:RETURN 6000 GOSUB 6500 6078 PRINT :PRINT " * INDICATES LESS THAN 39 WEEKS OF DATA." 6080 PRINT :PRINT ;:INPUT " HIT [CR] FOR MENU ";ZZ:RETURN 6500 PRINT :PRINT " THE STRATEGY INDICATES THE SWITCH OF STOCK SHARES TO MONEY" 6510 PRINT "FUND SHARES WHEN THE STOCK CURRENT VALUE FALLS BELOW ITS 39-" 6520 PRINT "AVERAGE & EITHER THE CURRENT DOW 'I' OR 'T' AVERAGE FALL BELOW" 6530 PRINT "THEIR 39-WEEK MOVING AVERAGE." 6540 PRINT :PRINT " THE STRATEGY INDICATES THE SWITCH FROM MONEY FUND SHARES TO" 6550 PRINT "STOCK FUND SHARES WHEN THE STOCK SHARES GO ABOVE THEIR 39-WEEK" 6560 PRINT "AVERAGE AND EITHER OF THE DOW VALUES GO ABOVE THEIR 39-WEEK" 6570 PRINT "MOVING AVERAGE. THE DECISION TO FOLLOW THE STRATEGY IS YOURS!":RETURN 7000 REM SUBROUTINE TO CLEAR PORTION OF SCREEN 7010 FOR J= ERTO ER+ ED:PLOT 3,0,J:PRINT " ":NEXT J:RETURN 7100 GOSUB 7200 7110 L= 0:FOR W= 1TO DI(160):L= L+ 1:IF L< 11OR PR= 1THEN 7130 7120 L= 1:GOSUB 4500:PLOT 3,0,5 7122 GOSUB 7200 7130 K= W:GOSUB 7300 7140 NEXT W:IF PR< > 1THEN GOSUB 4500 7150 RETURN 7200 PRINT " WK";TAB( 5);:FOR S= BTO E:PRINT "STK";S;SPC( 3);:NEXT S:PRINT "DOW I";SPC( 3);"DOW T":PRINT :RETURN 7300 PRINT K;:FOR S= BTO E 7304 IF B= 6THEN MS= S- 5:CE= E- 5:GOTO 7308 7306 MS= S:CE= E 7308 PRINT TAB( 4+ 8* (MS- 1));S(S,K);:NEXT S 7310 PRINT TAB( 4+ 8* CE);DI(K);TAB( 4+ 8* (CE+ 1));DT(K):RETURN 9000 REM SUB TO OPEN, READ, & COMPUTE 39-WEEK AVE ALL FILES 9010 REM OPEN & READ & CLOSE STOCK NAME FILE 9020 FILE "R",12,"SKNAME",2:I= 1:L$= "LAST " 9030 GET 12,I;A$(I)[10]:IF A$(I)< > L$THEN I= I+ 1:GOTO 9030 9040 NS= I- 1:IF CI= 1THEN RETURN 9050 REM OPEN, READ EACH WEEKLY STOCK VALUE FILE 9060 FOR S= 1TO NS:F= S:M= F 9065 IF RD= 1THEN FOR J= 1TO 160:V(J)= S(S,J):NEXT J:GOTO 9082 9070 NM$= "STOCK"+ RIGHT$ (STR$ (S),1):GOSUB 3000 9082 IF CI= 1THEN CV(M)= SW(M):GOSUB 4000 9085 FOR W= 1TO 160:S(S,W)= V(W):NEXT W 9095 CV(M)= V(1):GOSUB 5000 9100 NEXT S 9110 REM OPEN & READ THE WEEKLY DOW 'I', 'T' FILES 9112 F= 10:M= NS+ 1 9115 IF RD= 1THEN FOR J= 1TO 160:V(J)= DI(J):NEXT J:GOTO 9122 9120 NM$= "DJIAVE":GOSUB 3000 9122 IF CI= 1THEN CV(M)= WI:GOSUB 4000 9125 FOR W= 1TO 160:DI(W)= V(W):NEXT W 9135 CV(M)= V(1):GOSUB 5000 9137 F= 11:M= NS+ 2 9139 IF RD= 1THEN FOR J= 1TO 160:V(J)= DT(J):NEXT J:GOTO 9142 9140 NM$= "DJTAVE":GOSUB 3000 9142 IF CI= 1THEN CV(M)= WT:GOSUB 4000 9145 FOR W= 1TO 160:DT(W)= V(W):NEXT W 9160 CV(M)= V(1):GOSUB 5000 9170 RD= 1:CI= 0:RETURN