Compucolor.org – Virtual Media

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