This file is part of Miscellaneous Programs
. Download the collection to get this file.
Start $10,000 and make (or lose) your fortuned buying and selling stocks.
Content
Source Code
10 POKE 23658,8
20 DEF FN Q(Z)=INT (H0*Z+H5)/H0
30 GO TO 1610
40 PRINT TAB 32-LEN R$;R$: RETURN
60 LET X=INT (ABS G+.005)*SGN G: LET B=INT ((ABS (G-X)*H0)+.5)
70 LET R$=STR$ B: LET R$=STR$ X+"."+("0"+R$)(LEN R$ TO )
80 RETURN
90 LET TR=VAL A$
100 PRINT #A1;" INPUT ""S"" to start.": PAUSE a0
110 IF INKEY$<>"S" THEN GO TO 110
120 IF RND>H5 THEN GO TO 140
130 LET A=-A
140 CLS : GO SUB 1080
150 PRINT '"Stock"," INT. $/Share--------------------------------"
160 LET G=S(A1)
170 PRINT "Alpha Assoc. AAA";
180 GO SUB FGS: GO SUB rt
190 LET G=S(A2)
200 PRINT "B & B Bakery BBB";
210 GO SUB FGS: GO SUB rt
220 LET G=S(INT PI)
230 PRINT "C/C Bros. Coal Co. CCC";
240 GO SUB FGS: GO SUB rt
250 LET G=S(4)
260 PRINT "DD Auto Man. Inc. DDD";
270 GO SUB FGS: GO SUB rt
280 LET G=S(A5)
290 PRINT "E & E Electric EEE";
300 GO SUB FGS: GO SUB rt
310 LET TA=EA: LET EA=A0: LET SA=A0
320 FOR N=A1 TO A5
330 LET EA=EA+S(N)
340 LET SA=SA+S(N)*P(N): NEXT N
350 LET EA=FN Q(EA/A5)
360 LET NC=FN Q(EA-TA)
370 LET D=SA+C
380 PRINT ,,"Aver.:";EA;TAB 15;
390 IF F THEN PRINT "Net Change:";NC
400 PRINT ,,N$;":"
410 LET SA=FN Q(SA)
420 LET G=SA
430 PRINT "Stock Assets=$";
440 GO SUB FGS: GO SUB rt
450 LET C=FN Q(C)
460 LET G=C
470 PRINT "Cash assets=$";
480 GO SUB FGS: GO SUB rt
490 LET D=FN Q(D)
500 LET G=D
510 PRINT "Total assets=$";
520 GO SUB FGS: GO SUB rt
530 LET BF=FN Q(BF)
540 LET G=BF
550 PRINT "Brokerage fee=$";
560 GO SUB FGS: GO SUB rt
570 IF NOT F THEN PAUSE VAL "325": GO TO 600
580 PRINT #A1;"Hit -ENTER- OR ""N"" TO STOP ": PAUSE A0
590 IF INKEY$="N" THEN GO TO 1520
600 FOR N=A1 TO A5
610 INPUT INK 4;" INPUT No. of shares you wish to trade in ";(I$(N));"? "; LINE m$: REM T(N)
620 IF m$<>"" THEN LET t(n)=VAL m$
630 IF m$="" THEN LET t(n)=0
640 NEXT N
650 PRINT #a1;"Processing transaction": PAUSE fgs
660 LET DP=A0: LET DS=A0
670 FOR N=A1 TO A5
680 LET T(N)=INT (T(N)+H5)
690 IF T(N)<=A0 THEN GO TO 720
700 LET DP=DP+T(N)*S(N)
710 GO TO 760
720 LET DS=DS-T(N)*S(N)
730 IF -T(N)<=P(N) THEN GO TO 760
740 PRINT #1;"You don't have that much to sell": PAUSE 300
750 GO TO 600
760 NEXT N
770 LET TT=DP+DS
780 LET BF=FN Q(.01*TT)
790 LET CT=C-DP-BF+DS
800 IF CT>=A0 THEN GO TO 830
810 PRINT #1;"You have tried to over spend by:";-CT
820 PAUSE 300: GO TO 600
830 LET C=CT
840 FOR N=A1 TO A5
850 LET P(N)=P(N)+T(N): NEXT N
860 CLS
870 GO SUB 1080
880 LET WK=WK+A1
890 PRINT " STOCK EXCHANGE WEEK ";WK,'"STK. $/SHR. HDS. $ VALUE CHANGE................................"
900 FOR N=A1 TO A5
910 LET G=S(N): GO SUB FGS
920 PRINT AT INT PI+N,A0;I$(N);TAB 11-LEN R$;R$;TAB 12;P(N);
930 LET G=S(N)*P(N)
940 GO SUB FGS
950 PRINT TAB 24-LEN R$;R$;TAB 26;C(N)
960 NEXT N
970 LET F=A1
980 PRINT
990 LET R=VAL ((STR$ RND)( TO 4))
1000 LET I=INT (RND*A5)+A1
1010 IF R<.15 THEN PRINT I$(I);" Declares dividends of $";R*4+H5;"/share"
1020 IF R<.15 THEN LET C=C+P(I)*(R*4+H5)
1030 IF R<.93 THEN GO TO 310
1040 PRINT I$(I);" splits stock."
1050 LET S(I)=S(I)*H5
1060 LET P(I)=P(I)*A2
1070 GO TO 310
1080 IF D1 THEN GO TO 1120
1090 LET S=VAL A$
1100 LET D1=VAL A$
1110 LET P=A1
1120 IF D2 THEN GO TO 1160
1130 LET S2=VAL A$
1140 LET D2=VAL A$
1150 LET P2=A1
1160 LET D1=D1-A1
1170 LET D2=D2-A1
1180 FOR N=A1 TO A5
1190 LET R=RND
1200 IF R>.25 THEN GO TO 1220
1210 LET R=.25: GO TO 1270
1220 IF R>H5 THEN GO TO 1240
1230 LET R=H5: GO TO 1270
1240 IF R>.75 THEN GO TO 1260
1250 LET R=.75: GO TO 1270
1260 LET R=A0
1270 LET BC=A0
1280 IF P<A1 THEN GO TO 1320
1290 IF INT (S+H5)<>INT (N+H5) THEN GO TO 1360
1300 LET BC=-A1
1310 LET P=A0
1320 IF P2<A1 THEN GO TO 1360
1330 IF INT (S2+H5)<>INT (N+H5) THEN GO TO 1360
1340 LET BC=A1
1350 LET P2=A0
1360 LET C(N)=INT (A*S(N))+R+INT (INT PI-6*RND+H5)+BC
1370 LET C(N)=FN Q(C(N))
1380 LET S(N)=S(N)+C(N)
1390 IF S(N) THEN GO TO 1430
1400 LET C(N)=A0
1410 LET S(N)=H0
1420 GO TO 1440
1430 LET S(N)=FN Q(S(N))
1440 NEXT N
1450 LET TR=TR-A1
1460 IF TR<A1 THEN GO SUB 1480
1470 RETURN
1480 LET TR=VAL A$
1490 LET A=FN Q(RND/T0)
1500 IF RND<=H5 THEN RETURN
1510 LET A=-A: RETURN
1520 CLS
1530 PRINT ,,"AT THE END OF ";WK;" WEEKS TRADING"
1540 IF D<1E4 THEN LET N=A0
1550 IF NOT N THEN PRINT '"YOU HAVE LOST $";: LET G=1E4-D
1560 IF N THEN PRINT '"YOU HAVE EARNED $";: LET G=D-1E4
1570 GO SUB FGS
1580 PRINT R$
1590 PRINT '"ON THE "; FLASH A1;"""STOCK EXCHANGE"""; FLASH A0;".",'"HOPE IT'S BEEN FUN, ";N$;"."
1600 PRINT ,,"LET'S DO THIS AGAIN SOMETIME.": STOP
1610 DATA SGN PI,NOT PI,2,100,10,5,.5,40,A1,60,"AAA135BBB090CCC120DDD085EEE115",A0,F,F,F,F,F,F,F,F,1E4
1620 CLS : READ A1,A0,A2,H0,T0,A5
1630 PRINT AT T0,A5;"The "; FLASH A1;"""STOCK EXCHANGE"""; FLASH A0''" a simulation"
1640 DIM I$(A5,INT PI)
1650 DIM O$(A2): DIM S(A5)
1660 PRINT AT 15,A0;"A ""PEH SOFTWARE"" Special"
1670 READ H5,RT,F,FGS,A$
1680 FOR N=A1 TO A5
1690 LET I$(N)=A$(F TO F+INT PI)
1700 LET S(N)=ABS INT VAL A$(INT PI+F TO F+A5)
1710 LET F=F+6: NEXT N
1720 DIM P(A5): DIM T(A5)
1730 DIM C(A5)
1740 READ F,BF,D1,P,TT,D2,P2,WK,EA,C
1750 LET A=FN Q(RND/T0)
1760 INPUT "Please introduce yourself",N$
1770 LET A$="INT (RND*4.99)+1"
1780 PRINT #a1;"Do you need directions (Y OR N)": PAUSE a0
1790 IF INKEY$="N" THEN GO TO 90
1800 CLS
1810 PRINT '"Welcome to ""STOCK EXCHANGE""",TAB 16-(LEN N$/A2);N$;"."
1820 PRINT "Your current account balance is $10,000. You may buy or sell","stocks. A table of available","stock, their prices, and the no.of shares in your portfolio will be printed. With this are the"
1830 PRINT "initials used for each stock. Here you indicate a transaction.To buy a stock input XXX, XXX=the no. of shares you wish to"
1840 PRINT "buy. To sell Input -XXX, XXX= the no. of shares you wish to sell. A 1% brokerage fee will beautomatically charged to your","account"
1850 PRINT "GOOD LUCK ";N$;"."
1860 GO TO 90
1870 SAVE "ST/EX" LINE PI
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
