mirror of
https://github.com/rfivet/BCG101.git
synced 2024-12-18 08:06:27 -05:00
Add STOCK.
This commit is contained in:
parent
8012bf857a
commit
2cb68b17a9
233
dec/STOCK.BAS
Normal file
233
dec/STOCK.BAS
Normal file
@ -0,0 +1,233 @@
|
||||
100 REM STOCK MARKET SIMULATION -STOCK-
|
||||
101 REM REVISED 8/18/70 (D. PESSEL, L. BRAUN, C. LOSIK)
|
||||
102 REM IMP VRBLS: A-MRKT TRND SLP; B5-BRKRGE FEE; C-TTL CSH ASSTS;
|
||||
103 REM C5-TTL CSH ASSTS (TEMP); C(I)-CHNG IN STK VAL; D-TTL ASSTS;
|
||||
104 REM E1,E2-LRG CHNG MISC; I-STCK #; I1,I2-STCKS W LRG CHNG;
|
||||
105 REM N1,N2-LRG CHNG DAY CNTS; P5-TTL DAYS PRCHSS; P(I)-PRTFL CNTNTS;
|
||||
106 REM Q9-NEW CYCL?; S4-SGN OF A; S5-TTL DYS SLS; S(I)-VALUE/SHR;
|
||||
107 REM T-TTL STCK ASSTS; T5-TTL VAL OF TRNSCTNS;
|
||||
108 REM W3-LRG CHNG; X1-SMLL CHNG(<$1); Z4,Z5,Z6-NYSE AVE.; Z(I)-TRNSCTN.
|
||||
109 PRINT TAB(20);"THE STOCK MARKET"
|
||||
110 DIM S(5),P(5),Z(5),C(5)
|
||||
112 REM SLOPE OF MARKET TREND:A (SAME FOR ALL STOCKS)
|
||||
113 RANDOMIZE
|
||||
114 LET A=INT((RND(X)/10)*100+.5)/100
|
||||
115 LET T5=0
|
||||
116 LET X9=0
|
||||
117 LET N1=0
|
||||
118 LET N2=0
|
||||
119 LET E1=0
|
||||
120 LET E2=0
|
||||
121 REM INTRODUCTION
|
||||
122 PRINT "DO YOU WANT THE INSTRUCTIONS (YES-TYPE 1, NO-TYPE 0)";
|
||||
123 INPUT Z9
|
||||
124 PRINT
|
||||
125 PRINT
|
||||
126 IF Z9<1 THEN 200
|
||||
130 PRINT "THIS PROGRAM PLAYS THE STOCK MARKET. YOU WILL BE GIVEN"
|
||||
132 PRINT "$10,000 AND MAY BUY OR SELL STOCKS. THE STOCK PRICES WILL"
|
||||
134 PRINT "BE GENERATED RANDOMLY AND THEREFORE THIS MODEL DOES NOT"
|
||||
135 PRINT "REPRESENT EXACTLY WHAT HAPPENS ON THE EXCHANGE. A TABLE"
|
||||
136 PRINT "OF AVAILABLE STOCKS, THEIR PRICES, AND THE NUMBER OF SHARES"
|
||||
137 PRINT "IN YOUR PORTFOLIO WILL BE PRINTED. FOLLOWING THIS, THE"
|
||||
138 PRINT "INITIALS OF EACH STOCK WILL BE PRINTED WITH A QUESTION"
|
||||
139 PRINT "MARK. HERE YOU INDICATE A TRANSACTION. TO BUY A STOCK"
|
||||
140 PRINT "TYPE +NNN, TO SELL A STOCK TYPE -NNN, WHERE NNN IS THE"
|
||||
141 PRINT "NUMBER OF SHARES. A BROKERAGE FEE OF 1% WILL BE CHARGED"
|
||||
142 PRINT "ON ALL TRANSACTIONS. NOTE THAT IF A STOCK'S VALUE DROPS"
|
||||
143 PRINT "TO ZERO IT MAY REBOUND TO A POSITIVE VALUE AGAIN. YOU"
|
||||
144 PRINT "HAVE $10,000 TO INVEST. USE INTEGERS FOR ALL YOUR INPUTS."
|
||||
145 PRINT "(NOTE: TO GET A 'FEEL' FOR THE MARKET RUN FOR AT LEAST"
|
||||
146 PRINT "10 DAYS)"
|
||||
147 PRINT "-----GOOD LUCK!-----"
|
||||
200 REM GENERATION OF STOCK TABLE; INPUT REQUESTS
|
||||
210 REM INITIAL STOCK VALUES
|
||||
220 LET S(1)=100
|
||||
230 LET S(2)=85
|
||||
240 LET S(3)=150
|
||||
250 LET S(4)=140
|
||||
260 LET S(5)=110
|
||||
265 REM INITIAL T8 - # DAYS FOR FIRST TREND SLOPE (A)
|
||||
266 LET T8=INT(4.99*RND(X)+1)
|
||||
267 REM RANDOMIZE SIGN OF FIRST TREND SLOPE (A)
|
||||
268 IF RND(X)>.5 THEN 270
|
||||
269 LET A=-A
|
||||
270 REM RANDOMIZE INITIAL VALUES
|
||||
280 GOSUB 830
|
||||
285 REM INITIAL PORTFOLIO CONTENTS
|
||||
290 FOR I=1 TO 5
|
||||
300 LET P(I)=0
|
||||
305 LET Z(I)=0
|
||||
310 NEXT I
|
||||
320 PRINT
|
||||
330 PRINT
|
||||
333 REM INITIALIZE CASH ASSETS:C
|
||||
335 LET C=10000
|
||||
338 REM PRINT INITIAL PORTFOLIO
|
||||
340 PRINT "STOCK"," ","INITIALS","PRICE/SHARE"
|
||||
350 PRINT "INT. BALLISTIC MISSILES"," IBM",S(1)
|
||||
352 PRINT "RED CROSS OF AMERICA"," RCA",S(2)
|
||||
354 PRINT "LICHTENSTEIN, BUMRAP & JOKE"," LBJ",S(3)
|
||||
356 PRINT "AMERICAN BANKRUPT CO."," ABC",S(4)
|
||||
358 PRINT "CENSURED BOOKS STORE"," CBS",S(5)
|
||||
360 PRINT
|
||||
361 REM NYSE AVERAGE:Z5; TEMP. VALUE:Z4; NET CHANGE:Z6
|
||||
363 LET Z4=Z5
|
||||
364 LET Z5=0
|
||||
365 LET T=0
|
||||
370 FOR I=1 TO 5
|
||||
375 LET Z5=Z5+S(I)
|
||||
380 LET T=T+S(I)*P(I)
|
||||
390 NEXT I
|
||||
391 LET Z5=INT(100*(Z5/5)+.5)/100
|
||||
392 LET Z6=INT((Z5-Z4)*100+.5)/100
|
||||
393 REM TOTAL ASSETS:D
|
||||
394 LET D=T+C
|
||||
395 IF X9>0 THEN 398
|
||||
396 PRINT "NEW YORK STOCK EXCHANGE AVERAGE: "Z5
|
||||
397 GOTO 399
|
||||
398 PRINT "NEW YORK STOCK EXCHANGE AVERAGE: "Z5" NET CHANGE: "Z6
|
||||
399 PRINT
|
||||
400 LET T=INT(100*T+.5)/100
|
||||
401 PRINT "TOTAL STOCK ASSETS ARE $";T
|
||||
403 LET C=INT(100*C+.5)/100
|
||||
405 PRINT "TOTAL CASH ASSETS ARE $";C
|
||||
407 LET D=INT(100*D+.5)/100
|
||||
408 PRINT "TOTAL ASSETS ARE $";D
|
||||
410 PRINT
|
||||
411 IF X9=0 THEN 416
|
||||
412 PRINT "DO YOU WISH TO CONTINUE (YES-TYPE 1, NO-TYPE 0)";
|
||||
413 INPUT Q9
|
||||
414 IF Q9<1 THEN 998
|
||||
416 REM INPUT TRANSACTIONS
|
||||
420 PRINT "WHAT IS YOUR TRANSACTION IN"
|
||||
430 PRINT "IBM";
|
||||
440 INPUT Z(1)
|
||||
450 PRINT "RCA";
|
||||
460 INPUT Z(2)
|
||||
470 PRINT "LBJ";
|
||||
480 INPUT Z(3)
|
||||
490 PRINT "ABC";
|
||||
500 INPUT Z(4)
|
||||
510 PRINT "CBS";
|
||||
520 INPUT Z(5)
|
||||
525 PRINT
|
||||
530 REM TOTAL DAY'S PURCHASES IN $:P5
|
||||
540 LET P5=0
|
||||
550 REM TOTAL DAY'S SALES IN $:S5
|
||||
560 LET S5=0
|
||||
570 FOR I=1 TO 5
|
||||
575 LET Z(I)=INT(Z(I)+.5)
|
||||
580 IF Z(I)<=0 THEN 610
|
||||
590 LET P5=P5+Z(I)*S(I)
|
||||
600 GOTO 620
|
||||
610 LET S5=S5-Z(I)*S(I)
|
||||
612 IF -Z(I)<=P(I) THEN 620
|
||||
614 PRINT "YOU HAVE OVERSOLD A STOCK; TRY AGAIN."
|
||||
616 GOTO 420
|
||||
620 NEXT I
|
||||
622 REM TOTAL VALUE OF TRANSACTIONS:T5
|
||||
625 LET T5=P5+S5
|
||||
630 REM BROKERAGE FEE:B5
|
||||
640 LET B5=INT(.01*T5*100+.5)/100
|
||||
650 REM CASH ASSETS=OLD CASH ASSETS-TOTAL PURCHASES
|
||||
652 REM -BROKERAGE FEES+TOTAL SALES:C5
|
||||
654 LET C5=C-P5-B5+S5
|
||||
656 IF C5>=0 THEN 674
|
||||
658 PRINT "YOU HAVE USED $";-C5"MORE THAN YOU HAVE."
|
||||
660 GOTO 420
|
||||
674 LET C=C5
|
||||
675 REM CALCULATE NEW PORTFOLIO
|
||||
680 FOR I=1 TO 5
|
||||
690 LET P(I)=P(I)+Z(I)
|
||||
700 NEXT I
|
||||
710 REM CALCULATE NEW STOCK VALUES
|
||||
720 GOSUB 830
|
||||
750 REM PRINT PORTFOLIO
|
||||
751 REM BELL RINGING-DIFFERENT ON MANY COMPUTERS
|
||||
752 FOR I=1 TO 20
|
||||
753 PRINT CHR$(135);
|
||||
754 NEXT I
|
||||
755 PRINT
|
||||
756 PRINT "********** END OF DAY'S TRADING"
|
||||
757 PRINT
|
||||
758 PRINT
|
||||
759 IF X9<1 THEN 769
|
||||
769 PRINT "STOCK","PRICE/SHARE","HOLDINGS","VALUE","NET PRICE CHANGE"
|
||||
770 PRINT "IBM", S(1), P(1), S(1)*P(1), C(1)
|
||||
771 PRINT "RCA", S(2), P(2), S(2)*P(2), C(2)
|
||||
772 PRINT "LBJ", S(3), P(3), S(3)*P(3), C(3)
|
||||
773 PRINT "ABC", S(4), P(4), S(4)*P(4), C(4)
|
||||
774 PRINT "CBS", S(5), P(5), S(5)*P(5), C(5)
|
||||
775 LET X9=1
|
||||
780 PRINT
|
||||
790 PRINT
|
||||
810 GOTO 360
|
||||
829 REM NEW STOCK VALUES - SUBROUTINE
|
||||
830 REM RANDOMLY PRODUCE NEW STOCK VALUES BASED ON PREVIOUS
|
||||
831 REM DAY'S VALUES
|
||||
832 REM N1,N2 ARE RANDOM NUMBERS OF DAYS WHICH RESPECTIVELY
|
||||
833 REM DETERMINE WHEN STOCK I1 WILL INCREASE 10 PTS. AND STOCK
|
||||
834 REM I2 WILL DECREASE 10 PTS.
|
||||
840 REM IF N1 DAYS HAVE PASSED, PICK AN I1, SET E1, DETERMINE NEW N1
|
||||
841 IF N1>0 THEN 850
|
||||
845 LET I1=INT(4.99*RND(X)+1)
|
||||
846 LET N1=INT(4.99*RND(X)+1)
|
||||
847 LET E1=1
|
||||
850 REM IF N2 DAYS HAVE PASSED, PICK AN I2, SET E2, DETERMINE NEW N2
|
||||
851 IF N2>0 THEN 860
|
||||
855 LET I2=INT(4.99*RND(X)+1)
|
||||
856 LET N2=INT(4.99*RND(X)+1)
|
||||
857 LET E2=1
|
||||
860 REM DEDUCT ONE DAY FROM N1 AND N2
|
||||
861 LET N1=N1-1
|
||||
862 LET N2=N2-1
|
||||
890 REM LOOP THROUGH ALL STOCKS
|
||||
900 FOR I=1 TO 5
|
||||
910 LET X1=RND(X)
|
||||
915 IF X1>.25 THEN 920
|
||||
916 LET X1=.25
|
||||
917 GOTO 935
|
||||
920 IF X1>.50 THEN 925
|
||||
921 LET X1=.50
|
||||
922 GOTO 935
|
||||
925 IF X1>.75 THEN 930
|
||||
926 LET X1=.75
|
||||
927 GOTO 935
|
||||
930 LET X1=0.0
|
||||
931 REM BIG CHANGE CONSTANT:W3 (SET TO ZERO INITIALLY)
|
||||
935 LET W3=0
|
||||
936 IF E1<1 THEN 945
|
||||
937 IF INT(I1+.5)<>INT(I+.5) THEN 945
|
||||
938 REM ADD 10 PTS. TO THIS STOCK; RESET E1
|
||||
939 LET W3=10
|
||||
943 LET E1=0
|
||||
945 IF E2<1 THEN 955
|
||||
947 IF INT(I2+.5)<>INT(I+.5) THEN 955
|
||||
948 REM SUBTRACT 10 PTS. FROM THIS STOCK; RESET E2
|
||||
949 LET W3=W3-10
|
||||
953 LET E2=0
|
||||
954 REM C(I) IS CHANGE IN STOCK VALUE
|
||||
955 LET C(I)=INT(A*S(I))+X1+INT(3-6*RND(X)+.5)+W3
|
||||
956 LET C(I)=INT(100*C(I)+.5)/100
|
||||
957 LET S(I)=S(I)+C(I)
|
||||
960 IF S(I)>0 THEN 967
|
||||
964 LET C(I)=0
|
||||
965 LET S(I)=0
|
||||
966 GOTO 970
|
||||
967 LET S(I)=INT(100*S(I)+.5)/100
|
||||
970 NEXT I
|
||||
972 REM AFTER T8 DAYS RANDOMLY CHANGE TREND SIGN AND SLOPE
|
||||
973 LET T8=T8-1
|
||||
974 IF T8<1 THEN 985
|
||||
980 RETURN
|
||||
985 REM RANDOMLY CHANGE TREND SIGN AND SLOPE (A), AND DURATION
|
||||
986 REM OF TREND (T8)
|
||||
990 LET T8=INT(4.99*RND(X)+1)
|
||||
992 LET A=INT((RND(X)/10)*100+.5)/100
|
||||
993 LET S4=RND(X)
|
||||
994 IF S4<=.5 THEN 997
|
||||
995 LET A=-A
|
||||
997 RETURN
|
||||
998 PRINT "HOPE YOU HAD FUN!!"
|
||||
999 END
|
233
port/STOCK.BAS
Normal file
233
port/STOCK.BAS
Normal file
@ -0,0 +1,233 @@
|
||||
100 REM STOCK MARKET SIMULATION -STOCK-
|
||||
101 REM REVISED 8/18/70 (D. PESSEL, L. BRAUN, C. LOSIK)
|
||||
102 REM IMP VRBLS: A-MRKT TRND SLP; B5-BRKRGE FEE; C-TTL CSH ASSTS;
|
||||
103 REM C5-TTL CSH ASSTS (TEMP); C(I)-CHNG IN STK VAL; D-TTL ASSTS;
|
||||
104 REM E1,E2-LRG CHNG MISC; I-STCK #; I1,I2-STCKS W LRG CHNG;
|
||||
105 REM N1,N2-LRG CHNG DAY CNTS; P5-TTL DAYS PRCHSS; P(I)-PRTFL CNTNTS;
|
||||
106 REM Q9-NEW CYCL?; S4-SGN OF A; S5-TTL DYS SLS; S(I)-VALUE/SHR;
|
||||
107 REM T-TTL STCK ASSTS; T5-TTL VAL OF TRNSCTNS;
|
||||
108 REM W3-LRG CHNG; X1-SMLL CHNG(<$1); Z4,Z5,Z6-NYSE AVE.; Z(I)-TRNSCTN.
|
||||
109 PRINT TAB(20);"THE STOCK MARKET"
|
||||
110 DIM S(5),P(5),Z(5),C(5)
|
||||
112 REM SLOPE OF MARKET TREND:A (SAME FOR ALL STOCKS)
|
||||
113 RANDOMIZE
|
||||
114 LET A=INT((RND(X)/10)*100+.5)/100
|
||||
115 LET T5=0
|
||||
116 LET X9=0
|
||||
117 LET N1=0
|
||||
118 LET N2=0
|
||||
119 LET E1=0
|
||||
120 LET E2=0
|
||||
121 REM INTRODUCTION
|
||||
122 PRINT "DO YOU WANT THE INSTRUCTIONS (YES-TYPE 1, NO-TYPE 0)";
|
||||
123 INPUT Z9
|
||||
124 PRINT
|
||||
125 PRINT
|
||||
126 IF Z9<1 THEN 200
|
||||
130 PRINT "THIS PROGRAM PLAYS THE STOCK MARKET. YOU WILL BE GIVEN"
|
||||
132 PRINT "$10,000 AND MAY BUY OR SELL STOCKS. THE STOCK PRICES WILL"
|
||||
134 PRINT "BE GENERATED RANDOMLY AND THEREFORE THIS MODEL DOES NOT"
|
||||
135 PRINT "REPRESENT EXACTLY WHAT HAPPENS ON THE EXCHANGE. A TABLE"
|
||||
136 PRINT "OF AVAILABLE STOCKS, THEIR PRICES, AND THE NUMBER OF SHARES"
|
||||
137 PRINT "IN YOUR PORTFOLIO WILL BE PRINTED. FOLLOWING THIS, THE"
|
||||
138 PRINT "INITIALS OF EACH STOCK WILL BE PRINTED WITH A QUESTION"
|
||||
139 PRINT "MARK. HERE YOU INDICATE A TRANSACTION. TO BUY A STOCK"
|
||||
140 PRINT "TYPE +NNN, TO SELL A STOCK TYPE -NNN, WHERE NNN IS THE"
|
||||
141 PRINT "NUMBER OF SHARES. A BROKERAGE FEE OF 1% WILL BE CHARGED"
|
||||
142 PRINT "ON ALL TRANSACTIONS. NOTE THAT IF A STOCK'S VALUE DROPS"
|
||||
143 PRINT "TO ZERO IT MAY REBOUND TO A POSITIVE VALUE AGAIN. YOU"
|
||||
144 PRINT "HAVE $10,000 TO INVEST. USE INTEGERS FOR ALL YOUR INPUTS."
|
||||
145 PRINT "(NOTE: TO GET A 'FEEL' FOR THE MARKET RUN FOR AT LEAST"
|
||||
146 PRINT "10 DAYS)"
|
||||
147 PRINT "-----GOOD LUCK!-----"
|
||||
200 REM GENERATION OF STOCK TABLE; INPUT REQUESTS
|
||||
210 REM INITIAL STOCK VALUES
|
||||
220 LET S(1)=100
|
||||
230 LET S(2)=85
|
||||
240 LET S(3)=150
|
||||
250 LET S(4)=140
|
||||
260 LET S(5)=110
|
||||
265 REM INITIAL T8 - # DAYS FOR FIRST TREND SLOPE (A)
|
||||
266 LET T8=INT(4.99*RND(X)+1)
|
||||
267 REM RANDOMIZE SIGN OF FIRST TREND SLOPE (A)
|
||||
268 IF RND(X)>.5 THEN 270
|
||||
269 LET A=-A
|
||||
270 REM RANDOMIZE INITIAL VALUES
|
||||
280 GOSUB 830
|
||||
285 REM INITIAL PORTFOLIO CONTENTS
|
||||
290 FOR I=1 TO 5
|
||||
300 LET P(I)=0
|
||||
305 LET Z(I)=0
|
||||
310 NEXT I
|
||||
320 PRINT
|
||||
330 PRINT
|
||||
333 REM INITIALIZE CASH ASSETS:C
|
||||
335 LET C=10000
|
||||
338 REM PRINT INITIAL PORTFOLIO
|
||||
340 PRINT "STOCK"," ","INITIALS","PRICE/SHARE"
|
||||
350 PRINT "INT. BALLISTIC MISSILES"," IBM",S(1)
|
||||
352 PRINT "RED CROSS OF AMERICA"," RCA",S(2)
|
||||
354 PRINT "LICHTENSTEIN, BUMRAP & JOKE"," LBJ",S(3)
|
||||
356 PRINT "AMERICAN BANKRUPT CO."," ABC",S(4)
|
||||
358 PRINT "CENSURED BOOKS STORE"," CBS",S(5)
|
||||
360 PRINT
|
||||
361 REM NYSE AVERAGE:Z5; TEMP. VALUE:Z4; NET CHANGE:Z6
|
||||
363 LET Z4=Z5
|
||||
364 LET Z5=0
|
||||
365 LET T=0
|
||||
370 FOR I=1 TO 5
|
||||
375 LET Z5=Z5+S(I)
|
||||
380 LET T=T+S(I)*P(I)
|
||||
390 NEXT I
|
||||
391 LET Z5=INT(100*(Z5/5)+.5)/100
|
||||
392 LET Z6=INT((Z5-Z4)*100+.5)/100
|
||||
393 REM TOTAL ASSETS:D
|
||||
394 LET D=T+C
|
||||
395 IF X9>0 THEN 398
|
||||
396 PRINT "NEW YORK STOCK EXCHANGE AVERAGE: "Z5
|
||||
397 GOTO 399
|
||||
398 PRINT "NEW YORK STOCK EXCHANGE AVERAGE: "Z5" NET CHANGE: "Z6
|
||||
399 PRINT
|
||||
400 LET T=INT(100*T+.5)/100
|
||||
401 PRINT "TOTAL STOCK ASSETS ARE $";T
|
||||
403 LET C=INT(100*C+.5)/100
|
||||
405 PRINT "TOTAL CASH ASSETS ARE $";C
|
||||
407 LET D=INT(100*D+.5)/100
|
||||
408 PRINT "TOTAL ASSETS ARE $";D
|
||||
410 PRINT
|
||||
411 IF X9=0 THEN 416
|
||||
412 PRINT "DO YOU WISH TO CONTINUE (YES-TYPE 1, NO-TYPE 0)";
|
||||
413 INPUT Q9
|
||||
414 IF Q9<1 THEN 998
|
||||
416 REM INPUT TRANSACTIONS
|
||||
420 PRINT "WHAT IS YOUR TRANSACTION IN"
|
||||
430 PRINT "IBM";
|
||||
440 INPUT Z(1)
|
||||
450 PRINT "RCA";
|
||||
460 INPUT Z(2)
|
||||
470 PRINT "LBJ";
|
||||
480 INPUT Z(3)
|
||||
490 PRINT "ABC";
|
||||
500 INPUT Z(4)
|
||||
510 PRINT "CBS";
|
||||
520 INPUT Z(5)
|
||||
525 PRINT
|
||||
530 REM TOTAL DAY'S PURCHASES IN $:P5
|
||||
540 LET P5=0
|
||||
550 REM TOTAL DAY'S SALES IN $:S5
|
||||
560 LET S5=0
|
||||
570 FOR I=1 TO 5
|
||||
575 LET Z(I)=INT(Z(I)+.5)
|
||||
580 IF Z(I)<=0 THEN 610
|
||||
590 LET P5=P5+Z(I)*S(I)
|
||||
600 GOTO 620
|
||||
610 LET S5=S5-Z(I)*S(I)
|
||||
612 IF -Z(I)<=P(I) THEN 620
|
||||
614 PRINT "YOU HAVE OVERSOLD A STOCK; TRY AGAIN."
|
||||
616 GOTO 420
|
||||
620 NEXT I
|
||||
622 REM TOTAL VALUE OF TRANSACTIONS:T5
|
||||
625 LET T5=P5+S5
|
||||
630 REM BROKERAGE FEE:B5
|
||||
640 LET B5=INT(.01*T5*100+.5)/100
|
||||
650 REM CASH ASSETS=OLD CASH ASSETS-TOTAL PURCHASES
|
||||
652 REM -BROKERAGE FEES+TOTAL SALES:C5
|
||||
654 LET C5=C-P5-B5+S5
|
||||
656 IF C5>=0 THEN 674
|
||||
658 PRINT "YOU HAVE USED $";-C5"MORE THAN YOU HAVE."
|
||||
660 GOTO 420
|
||||
674 LET C=C5
|
||||
675 REM CALCULATE NEW PORTFOLIO
|
||||
680 FOR I=1 TO 5
|
||||
690 LET P(I)=P(I)+Z(I)
|
||||
700 NEXT I
|
||||
710 REM CALCULATE NEW STOCK VALUES
|
||||
720 GOSUB 830
|
||||
750 REM PRINT PORTFOLIO
|
||||
751 REM BELL RINGING-DIFFERENT ON MANY COMPUTERS
|
||||
752 FOR I=1 TO 20
|
||||
753 PRINT CHR$(135);
|
||||
754 NEXT I
|
||||
755 PRINT
|
||||
756 PRINT "********** END OF DAY'S TRADING"
|
||||
757 PRINT
|
||||
758 PRINT
|
||||
759 IF X9<1 THEN 769
|
||||
769 PRINT "STOCK","PRICE/SHARE","HOLDINGS","VALUE","NET PRICE CHANGE"
|
||||
770 PRINT "IBM", S(1), P(1), S(1)*P(1), C(1)
|
||||
771 PRINT "RCA", S(2), P(2), S(2)*P(2), C(2)
|
||||
772 PRINT "LBJ", S(3), P(3), S(3)*P(3), C(3)
|
||||
773 PRINT "ABC", S(4), P(4), S(4)*P(4), C(4)
|
||||
774 PRINT "CBS", S(5), P(5), S(5)*P(5), C(5)
|
||||
775 LET X9=1
|
||||
780 PRINT
|
||||
790 PRINT
|
||||
810 GOTO 360
|
||||
829 REM NEW STOCK VALUES - SUBROUTINE
|
||||
830 REM RANDOMLY PRODUCE NEW STOCK VALUES BASED ON PREVIOUS
|
||||
831 REM DAY'S VALUES
|
||||
832 REM N1,N2 ARE RANDOM NUMBERS OF DAYS WHICH RESPECTIVELY
|
||||
833 REM DETERMINE WHEN STOCK I1 WILL INCREASE 10 PTS. AND STOCK
|
||||
834 REM I2 WILL DECREASE 10 PTS.
|
||||
840 REM IF N1 DAYS HAVE PASSED, PICK AN I1, SET E1, DETERMINE NEW N1
|
||||
841 IF N1>0 THEN 850
|
||||
845 LET I1=INT(4.99*RND(X)+1)
|
||||
846 LET N1=INT(4.99*RND(X)+1)
|
||||
847 LET E1=1
|
||||
850 REM IF N2 DAYS HAVE PASSED, PICK AN I2, SET E2, DETERMINE NEW N2
|
||||
851 IF N2>0 THEN 860
|
||||
855 LET I2=INT(4.99*RND(X)+1)
|
||||
856 LET N2=INT(4.99*RND(X)+1)
|
||||
857 LET E2=1
|
||||
860 REM DEDUCT ONE DAY FROM N1 AND N2
|
||||
861 LET N1=N1-1
|
||||
862 LET N2=N2-1
|
||||
890 REM LOOP THROUGH ALL STOCKS
|
||||
900 FOR I=1 TO 5
|
||||
910 LET X1=RND(X)
|
||||
915 IF X1>.25 THEN 920
|
||||
916 LET X1=.25
|
||||
917 GOTO 935
|
||||
920 IF X1>.50 THEN 925
|
||||
921 LET X1=.50
|
||||
922 GOTO 935
|
||||
925 IF X1>.75 THEN 930
|
||||
926 LET X1=.75
|
||||
927 GOTO 935
|
||||
930 LET X1=0.0
|
||||
931 REM BIG CHANGE CONSTANT:W3 (SET TO ZERO INITIALLY)
|
||||
935 LET W3=0
|
||||
936 IF E1<1 THEN 945
|
||||
937 IF INT(I1+.5)<>INT(I+.5) THEN 945
|
||||
938 REM ADD 10 PTS. TO THIS STOCK; RESET E1
|
||||
939 LET W3=10
|
||||
943 LET E1=0
|
||||
945 IF E2<1 THEN 955
|
||||
947 IF INT(I2+.5)<>INT(I+.5) THEN 955
|
||||
948 REM SUBTRACT 10 PTS. FROM THIS STOCK; RESET E2
|
||||
949 LET W3=W3-10
|
||||
953 LET E2=0
|
||||
954 REM C(I) IS CHANGE IN STOCK VALUE
|
||||
955 LET C(I)=INT(A*S(I))+X1+INT(3-6*RND(X)+.5)+W3
|
||||
956 LET C(I)=INT(100*C(I)+.5)/100
|
||||
957 LET S(I)=S(I)+C(I)
|
||||
960 IF S(I)>0 THEN 967
|
||||
964 LET C(I)=0
|
||||
965 LET S(I)=0
|
||||
966 GOTO 970
|
||||
967 LET S(I)=INT(100*S(I)+.5)/100
|
||||
970 NEXT I
|
||||
972 REM AFTER T8 DAYS RANDOMLY CHANGE TREND SIGN AND SLOPE
|
||||
973 LET T8=T8-1
|
||||
974 IF T8<1 THEN 985
|
||||
980 RETURN
|
||||
985 REM RANDOMLY CHANGE TREND SIGN AND SLOPE (A), AND DURATION
|
||||
986 REM OF TREND (T8)
|
||||
990 LET T8=INT(4.99*RND(X)+1)
|
||||
992 LET A=INT((RND(X)/10)*100+.5)/100
|
||||
993 LET S4=RND(X)
|
||||
994 IF S4<=.5 THEN 997
|
||||
995 LET A=-A
|
||||
997 RETURN
|
||||
998 PRINT "HOPE YOU HAD FUN!!"
|
||||
999 END
|
Loading…
Reference in New Issue
Block a user