IMD 1.16: 29/05/2007 18:55:05 FOGCPM.081 ååååååååååååååå--FOGCPM081STOKBASEDOC` STOKBASETXTSTKBASE INTw STKBASE2INTy!"#$%&'()*+,-./0STKBASE3INTy123456789:;<=>?@STKGRAP2INT>ABCDEFGHSTKGRAP3INT>IJKLMNOPSTKGRAPHINT>QRSTUVWXSTKPRIC2INTXYZ[\]^_`abcSTKPRIC3INTXdefghijklmnSTKPRICEINTXopqrstuvwxyJULDATE%BASz{LINREG BAS|}~PORTPRFMBAS€�‚QKSORT$ BAS ƒ„QKSORT% BAS …†SCRNIN BAS‡ˆ‰SCRNIN2 BASŠ‹ŒSCRNIN3 BAS�Ž�STKFPRNTBAS�‘’STKGRAPHBAS “”STKHIST BAS•–—˜STKPLOT BAS™š›œSTKPRICEBAS�žŸ STKUPDTEBAS¡¢£¤DAYHST DAT¥¦STKFIL01DAT§STKPRICEDAT¨CSTKBASELTR©ª«-06-00 86 ¬-CPM081 DOC­®¯åThis is the disk name. ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååDOCUMENTATION FOR STOCK BASE I. INSTALLATION GUIDE Yoõ shoulä havå thå followinç fileó availablå oî thå twï discs: 1) STKBASE.BAS ... main program for STKBASE.INT stkchang.bas stkcreat.bas stkadd.bas stkupdte.bas ... same as stkupdat.bas stktrans.bas ... only required for compilation juldate%.bas ... utility routines qksort$.bas scrnin.bas 2) STKPRICE.BAS ... main program for STKPRICE.INT stkhist.bas stkupdat.bas stkprfm.bas stkfprnt.bas juldate%.bas ... utility routines qksort$.bas qksort%.bas scrnin.bas 3) STKGRAPH.BAS ... main program for STKGRAPH.INT stkplot.bas stkbeta.bas linreg.bas portprfm.bas qksort%.bas ... utility routines scrnin.bas 4) CBASIC run-time files stkbase.int stkprice.int stkgraph.int Tï producå aî operablå disc¬ copù thå threå INÔ fileó tï onå disc® � Thió caî theî bå inserteä intï thå  drive® Placå thå CBASIà ruî timå � interpreteò iî disã A® Issuå thå command: CRUN2 B:STKBASE Thå messagå tï loaä thå programó disã iî disã Á anä aî emptù disã � foò storinç datá oî disã  shoulä appeaò oî thå screen. Notå thaô alì sourcå fileó arå provided® Commentó iî thå maiî programó � providå listó oæ subroutineó requireä foò eacè compilation® Theså � arå thå samå aó giveî above¬  buô thå individuaì listingó providå � more information. Thå prograí ió writteî tï writå tï thå Osbornå OM-± monitoò anä � prinô tï aî Okidatá 82Á iî expandeä 13² columî prinô mode® Foò á �Šdifferenô printer¬ thå printeò routineó iî filå SCRNIN.BAÓ shoulä bå � changeä anä thå programó recompileä witè CBASIC® Onlù twï printeò � commands are used: newpage$ = chr$(12) small.print$ = chr$(29). Thå  compresseä  prinô  outputó á linå oæ 13² characteró  tï  thå � printer. II. USER'S GUIDE Á samplå oæ whaô thå prograí caî dï foò yoõ haó beeî writteî anä � senô tï Osbornå foò inclusioî iî thå Portablå Companion® Basically¬ thå � prograí STOCË BASÅ ió useä foò portfoliï valuation® Aó such¬ thå prograí � caî bå useä tï tracë thå performancå oæ á stocë portfolio® Priceó musô � bå  entereä aô regulaò intervaló bù thå user®  Seå Sectioî IÖ anä � the file STOKBASE.TXT as well for further details. Thå firsô steð iî usinç thå prograí ió tï loaä thå program® Thå � maiî menõ wilì appear® Iæ yoõ havå alreadù purchaseä stocks¬ thå nexô � steð ió tï creatå á stocë datá filå usinç thå CREATÅ DATÁ FILÅ option® � Thió subroutinå (STKCREAT© wilì prompô yoõ tï enteò informatioî abouô � eacè oæ youò stocks¬ anä thå detailó oæ thå purchase® Wheî alì stockó � havå beeî entered¬ yoõ wilì bå prompteä tï enteò priceó foò eacè stock® � Uså priceó froí á fe÷ dayó prioò tï thå datå oæ entry® Thå nexô steð É � have novices perform is to update the stock prices. Thió optioî ió selecteä froí thå maiî menõ bù usinç thå UPDATÅ � PRICEÓ option® Thå subroutinå (STKUPDAT© wilì prompô yoõ foò thå datå oæ � thå update¬ anä foò thå priceó oæ alì stocks® Yoõ wilì alsï bå askeä tï � enteò thå Standarä ¦ Pooró 50° Industriaì Stocë Average® Yoõ shoulä bå � ablå tï finä thió iî thå businesó sectioî oæ youò dailù newspaper® Thå � printeò shoulä no÷ bå turneä on® Thå prograí wilì asë iæ yoõ wisè tï seå � the updated performance summary on the screen, on the printer, or both. Afteò thå summary¬ yoõ wilì bå askeä iæ yoõ wisè tï storå thå � priceó iî onå oæ thå HISTORÙ files¬ eitheò daily¬ weekly¬ monthly¬ � quarterly¬ oò yearly® Thå subroutinå (STKHIST© ió useä tï storå thå � data. Aô thió point¬ therå stilì existó toï fe÷ datá tï dï á propeò time-� serieó summary® Yoõ shoulä havå aô leasô fivå datá pointó iî eacè � historù filå beforå usinç thå TIME-SERIEÓ option® Buô yoõ caî ruî thå � HISTORICAÌ PERFORMANCÅ summary¬ whicè compareó wherå yoõ arå no÷ versuó � thå originaì purchaså foò thå portfolio® Yoõ caî sorô thå datá manù � different ways. Thaô ió essentiallù whaô thå prograí does® Yoõ alsï havå thå � capabilitù oæ updatinç thå datá files¬ correctinç errors¬ accountinç foò � stocë splits¬ anä addinç oò deletinç stocks® Thå versioî yoõ receivå maù � noô havå thå CAPITAÌ GAINÓ sectioî whicè summarizeä lonç anä shorô terí � capital gains for tax purposes. Sample files provided with the program include: DAYHST.DAT STKFIL01.DAT STKPRICE.DAT Witè  theså  files¬  yoõ caî observå thå  historicaì  performancå � summarù  printouô usinç optioî 4¬  thå baò charô plotó  oæ  pricå � actioî  anä  alpha-betá  calculatioî usinç optioî  6®  Alì  fileó � produceä  bù  thå prograí arå readablå bù thå useò  iî  Wordstar® � Notå  thaô  becauså thió ió á CBASIà program¬  "CONTROÌ  S¢  wilì �Špauså  execution¬  sï  iæ  yoõ wisè tï examinå somethinç  oî  thå � screen, hit a control S to allow examination. III. PROGRAMMER'S GUIDE Defectó iî thå programº Thå datá baså manipulatioî aspectó oæ thå � prograí arå verù crudå anä brutå force® Iæ yoõ kno÷ oæ morå eleganô wayó � to store and update data, by all means, change these sections. Occasionallù wheî creatinç fileó foò thå firsô time¬ É havå ruî ouô � oæ memorù anä crasheä thå entirå systeí losinç alì mù laboriouslù typeä � iî data® No÷ É creatå fileó usinç 2° stockó anä uså thå adä á stocë � feature to add additional stocks. Thå stocë evaluatioî procedureó werå easù tï writå anä arå � straightforward® Thå datá baså aspectó werå mucè hardeò tï write¬ sincå � theù neeä tï bå mucè morå integrated® Also¬ É haven'ô haä mucè � experiencå iî datá baså programminç sï theså sectionó suffereä � accordingly. BUGSº  Arrayó arå limiteä tï 5° items®  Oncå yoõ havå  inpuô � morå thaî 5° pricå points¬ thå betá routinå maù faiì duå tï arraù � overflow®  Simplù re-dimensioî thå arrayó iî STKGRAPÈ useä iî thå � betá  calculatioî  anä recompile®  Iæ yoõ plaî tï enteò  lotó  oæ � pricå information¬ makå surå yoõ havå spacå availablå oî thå DATÁ � disë  foò backups®  Thå onlù warninç abouô disë spacå comeó  wheî � yoõ  initiallù ruî thå program®  Observå thå amounô oæ freå  disë � spacå left®  Aô somå point¬  yoõ wilì havå tï copù thå XXXHST.DAÔ � pricå  fileó  tï  anotheò  diskettå anä uså  Wordstaò  tï  deletå � pricå entrieó sï thaô yoõ havå disë spacå left®  Notå wheî  usinç � Wordstaò  thaô mosô datá fileó havå fixeä recorä  length®  Erroró � will occur unless you leave the record length intact. All helpful comments will be appreciated. Please write to: Edward A. Valenzuela 2001 Wyllys Midland, Michigan 48640 Thanks. IV. INVESTING WITH STOCK BASE Personaì computeró anä investmentó gï naturallù � together® Thå computeò oæ courså ió aî investment¬ � buô asidå froí spendinç money¬ morå anä morå useró � arå utilizinç thå poweò oæ thå micrï tï tracë theiò � finances® Iî thå fielä oæ investmenô analysis¬ therå � arå threå broaä areaó oæ useº portfoliï management¬ � stocë selection¬ anä markeô timing® Thå prograí � describeä iî thió articlå falló intï thå portfoliï � managemenô area® PORTFOLIO MANAGEMENT Á usefuì portfoliï managemenô prograí woulä � keeð tracë oæ alì buù anä selì transactions¬ allow � thå useò tï follo÷ anä tracë á giveî portfolio¬ reaì � oò hypothetical¬ anä provide summaryó foò uså aô �Štaø timå oæ gainó anä losses® Thió ió aî ambitiouó � lisô oæ wishes® Á prograí fulfillinç alì theså de� sireó woulä bå toï largå tï coveò iî onå article® Iî � thió article¬ É shalì describå á prograí whicè pro� videó portfoliï valuation¬ pricå historù informa� tion¬ anä aî analysió oæ "winneró anä losers"® Otheò � moduleó wilì comå later. WHAT THE PROGRAM WILL DO FOR YOU Thå prograí "STOCK.BASE¢ ió designeä tï � providå simplå datá management® First¬ thå user � createó anä maintainó á datá baså oæ informatioî � abouô eacè stock® Informatioî sucè aó thå stocë � name¬ numbeò oæ shareó purchased¬ datå purchased¬ � pricå paid¬ anä stocë exchangå thå stocë ió tradeä � oî arå entered® Seå Tablå ± foò á completå listinç � of information maintained. TABLE 1. stock name stock exchange number shares purchase price commission paid date purchased stock symbol annual dividend Oncå thå basiã datá filå haó beeî created¬ � pricå informatioî ió entereä intï separatå pricå � files® Thå pricå informatioî ió intendeä tï bå � entereä froí newspapeò reports® Oæ course¬ á useò � caî havå priceó updateä bù accessinç onå oæ thå � manù serviceó available¬ sucè aó Standarä ¦ � Poor's¬ buô let'ó trù anä keeð thå systeí simplå � foò now® Thå systeí wilì prompô yoõ witè thå namå � oæ thå stocë whoså pricå shoulä bå entered® Thå � ordeò ió alphabetical® Oncå pricå informatioî foò � thå entirå portfoliï haó beeî entered¬ thå useò � caî havå á reporô printeä ouô oò displayeä oî thå � terminal. Thió performancå reporô summarizeó thå pricå � actioî sincå thå lasô period® Pricå changes¬ per� centagå changes¬ dollaò changes¬ arå alì listed® � Thå reporô ió sorteä iî ordeò oæ worsô performeró � tï besô performeró oî á percentagå gaiî basis® Thå � prograí promptó foò thå latesô S&Ð 50° indeø � value¬ sï yoõ havå á basió foò comparinç youò � performancå relativå tï thå market® Thå prograí � calculateó thå performancå oæ thå entirå portfoliï � aó well. RISK-RETURN RELATIONSHIPS Š Historicaì pricå fileó arå maintaineä foò � daily¬ weekly¬ monthly¬ quarterly¬ oò annuaì � prices® Oncå sufficienô pricå informatioî haó beeî � entereä tï makå thå analysió meaningful¬ á risk-� return analysis can be performed. Thå risk-returî analysió performó á least-� squareó regressioî oæ thå changå oæ thå individuaì � stocë priceó versuó thå changeó iî thå markeô � index¬ thå S&Ð 500® Foò instance¬ iæ thå markeô � goeó uð bù 1%¬ anä oî thå averagå youò stocë goeó � uð bù 2%¬ youò stocë woulä bå considereä tï bå � morå volatilå thaî thå market® Thaô is¬ youò stocë � jumpó arounä more¬ increasinç bù á largeò amounô � wheî thå markeô goeó up® Bù thå samå token¬ youò � stocë probablù alsï goeó dowî bù á largeò amounô � than thå markeô indeø iî á declininç market® Thå � prograí analyzeó pricå changeó anä comeó uð witè � what are known as the stocks alpha and beta. Thå stock'ó alphá ió á measurå oæ thå excesó � returnó provideä tï thå investoò abovå thå markeô � returns® Thå stock'ó betá ió á measurå oæ thå � responsivenesó oæ thå stocë tï changeó iî thå � valuå oæ thå market® Theså parameteró corresponä � tï thå intercepô anä slopå oæ thå least-squareó � line® Alpha¬ thå intercept¬ ió á measurå oæ thå � returî oæ thå stock® Beta¬ thå slope¬ ió á measurå � oæ thå risë iî thå stock® Thå ratiï oæ alphá tï � betá ió thuó á measurå oæ thå returî foò á giveî � amounô oæ risk® Knowinç thå relativå risk-returî � relationshipó amonç thå stockó iî á portfoliï � shoulä helð thå investoò tï improvå the returî oò � lower the risk, whichever is preferred. STOCK.BASÅ ió á personalizeä recorä keepinç systeí � foò smalì stocë portfolios® Iô allowó yoõ tï creatå � anä maintaiî á datá baså consistinç oæ stockó anä � stocë prices® Maintenancå includeó provisionó foò � addinç stocks¬ deletinç stocks¬ changinç informa� tion¬ accomodatinç stocë splitó anä stocë dividends® Thå primarù stocë filå includeó datá consistinç oæ � names¬ numbeò oæ shares¬ datå purchased¬ originaì � prices¬ commissions¬ dividends¬ stocë exchange¬ anä � symbol® Eacè perioä (daily¬ weekly¬ monthly¬ oò � quarterly© thå useò enteró currenô pricå informatioî � intï á pricå file® Thå prograí theî useó thå datá tï � prinô ouô thå currenô valuatioî oæ thå portfolio¬ � rankeä bù anù oæ á numbeò oæ criteria¬ sucè aó � sorteä bù percenô increase¬ annuaì return¬ datå � purchased¬ oò stocë exchange® Thå pricå filå main� tainó priceó foò uð tï fivå yearó oæ weeklù pricå � foò á 5° stocë portfolio® Á modulå analyzeó thå � priceó anä printó ouô stocë betas¬ estimateó yearlù � returnó anä printó ouô otheò statisticaì informa� tion® Á baò grapè showinç pricå actioî foò thå lasô �Š5° weekó ió alsï displayeä oî thå monitor. Exampleó oæ thå typeó oæ reportó availablå arå � showî in the Portable Companion article.  March 15, 1983 Jim Woolley FOG Disk Librarian P.O. Box 11683-A Palo Alto, California 94306 Dear Mr. Woolley, Encloseä arå twï diskó containinç mù stocë portfoliï � analysió prograí STOCË BASE® Thió prograí ió aî integrated¬ menu-� driveî serieó oæ CBASIà moduleó whicè satisfies mosô oæ thå � requirementó oæ thå smalì investor® Tï geô á quicë samplå oæ whaô � the program can do, placå DISË ± oî thå  drive¬ puô youò CBASIà run-timå � interpreter on the A drive, and type: CRUN2 B:STKBASE thå programó shoulä loaä anä asë yoõ tï placå thå datá disë oî � drivå  anä thå programó disë oî drivå A® Beforå hittinç anù � keys¬ takå DISË ± ouô oæ thå  drivå anä puô iô iî thå Á drive® � Thå threå compileä INÔ fileó arå oî thió disk® Placå DISË ² oî � the B drive. This disk contains sample data files. No÷ hiô anù keù anä typå ù tï continuå afteò thå nexô � message. The main menu should come up. Demonstrationº Enteò optioî 6¬ thå time-serieó option® Wheî iô � askó whaô filå tï analyze¬ picë #1¬ DAYHST.DAT® Wheî iô askó iæ � yoõ wanô tï ploô only¬ answeò iî thå affirmativå witè á P® Wheî � iô askó iæ yoõ wanô autoscaling¬ enteò A® Yoõ shoulä no÷ seå BAÒ � CHARTS of the prices for the stocks in the data files. Iæ yoõ havå aî Okidatá 82A¬ oò á printeò whicè useó á � compresseä prinô oæ 13¶ characteró widå whicè ió accesseä bù thå � commanä CHR$(29© anä á newpagå optioî oæ CHR$(12)¬ theî yoõ caî � alsï selecô optioî 4¬ thå historicaì performancå option® Thió � wilì dumð á summarù oæ thå portfoliï tï thå printer® Iæ youò � printeò ió different¬ yoõ wilì havå tï changå thå prograí anä � recompile. Iæ thió workó witè youò printer¬ yoõ caî alsï ruî thå samå � optioî 6¬ buô withouô specifyinç ploô only® Iô wilì no÷ prinô ouô � á risk/returî analysis¬ creatå á file¬ BETA.DAT¬ witè thå datá oî � iô whicè caî theî bå sorteä usinç optioî 9® Optioî 5¬ thå updatå � option¬ caî alsï bå ruî oncå thå printeò probleí ió takeî carå � of® That'ó á quicë run-dowî oæ whaô thå prograí caî do® Althougè � iô maù noô seeí like¬ much¬ thå integration¬ thå user-� friendliness¬ anä thå datá baså editinç featureó requireä manù � long hours. Documentatioî foò thå prograí ió also provided iî thå filå � calleä STOKBASE.DOà anä thió filå calleä STOKBASE.TXT® Iæ yoõ � havå anù questions¬ droð må á note® Aó mentioneä iî thå DOà file¬ � É havå submitteä aî articlå tï thå Portablå Companioî describinç � the use of the program. I'í stilì workinç oî thå schedulå Ä routine¬ whicè needó tï bå � integrateä witè thå stocë add¬ delete¬ anä spliô routineó sï yoõ � only type in an entry once. Š Thanks, Edward A. Valenzuela � ô wilì no÷ prinô ouô � á risk/returî analysis¬ creatå á file¬ BETA.DAT¬ witè thå datá oî � iô whicè caî theî bå sorteä usinç optioî 9® Optioî 5¬ thå updatå � option¬ caî alsï bå ruî oncå thå printeò probleí ió takeî carå � of® That'ó á quicë run-dowî oæ wh1$*Œ:Õ(@~~6ã€ÀT€/À€\€ÀÀ€S€ ÀX:€ /ÀÀ€\€ ÀÀÀ V€ À X:À€€7[€ 06n€ ÀÀ€À À€U€À X:/3 0,3,3,6,8,11,13,16,19,21,24,26,€€6‹À €À 7“€=:6~€ÀÀ €pr€À €€ÀÀ €prÀ €À € 7Ï€À€€À pW.ÀpWÀt65€€À€ÀT€.À€\€ ÀÀ€S€ À X:€ÀÀÀV€ÀX:€ÀÀ �mÀt6T€ÀÀ€ÀprÀ€ÀÀt€€R€€R€€ R€€ R€€ R€€ R€ €R€!€R€"€<€#€ R€$€R€%€R€& €'€6¶€€'À' 7Á€&À&À&6©€(À€'€6Û€€'À' 7æ€(À(À(6΀)À€'€6€€'À' 7 €)À)À)6ó€*À€'€6%€€'À' 70€*À*À*66=À)À+ÀTS6JÀ*À,ÀTS6eÀ$d4€.À(À-€ÀTSÀ.t6}€0À€,À/€@À0t6ž€3€-À1€MÀ&À2À1€SÀ3t6ú€/À7h$€1À8€2À"€$À!$€-À8M$À6$€+À43$€1À5€2À"€$€-À5M$d€n;€:1'€9À:À9t€;€2€<À;€ €=À;€ €>À;€ €?À;€ €@À;€ €AÀ;€ €BÀ;€ €CÀ;€ €DÀ;€ €EÀ;€ €FÀ;€ €GÀ;€ €HÀ;€ €IÀ;€ €JÀ;€ €KÀ;€ €LÀ;€ €MÀ;€ €NÀ;€ €O€<€PÀO€ €QÀO€ €RÀO€ €SÀO€ €TÀO€ €UÀO€ €VÀO€ À€7ú6À$€,€@$€-€ M$STOCK PORTFOLIO ANALYSIS$d4À$€/€h$€-€M$CHANGE disks at this time$d4€-€M$PROGRAMS disk should be on DRIVE A$d4À$€-€M$DATA files disk should be loaded on DRIVE B$d4€WL� p€/€ h$€-€M$Amount of FREE STORAGE area remaining $ÀW# bytes$d4€/€h$€-€M$À!$dPRESS ANY KEY TO CONTINUE $d4w 7Y6Qu€X€\€YÀXB:*.*Z€/€h$€-€M$Amount of FREE SPACE on DATA disk $ÀYp# Kbytes$d4€-€M$PLEASE TAKE NOTE OF DISK SPACE!$À!$d4 Enter y to continue n;€Z1'uÀ$€,€@$€-€ M$*** STOCK PORTFOLIO ANALYSIS ***$d4€-€ M$ option list$À$d4€-€M$0 = EXIT to CP/M$d4d4 EDITING FUNCTIONS$d4€-€M$1 = CREATE stock file$d4€-€M$2 = ADD/DELETE to stock file$d4€-€M$3 = CHANGE entries in stock file$d4€-€M$4 = STOCK SPLIT entry$d4d4 ANALYSIS SECTION$d4€-€M$5 = UPDATE stock prices$d4€-€M$6 = HISTORICAL performance summary$d4€-€M$7 = TIME-SERIES regressions$d4€-€M$8 = RISK/RETURN file sort$d4d4 RECORD KEEPING SECTION$d4€-€M$9 = BUY/SELL FILE entry$d4À$€/€h$€-€ M$À!$dSELECT OPTION NUMBER: n;€":'À€7}6:ÔÀ€ 7‰6:ÔÀ€ ^96ª6°6¶6¼6Â6Ò6â6ò6 ¢6 -6 6 ¿6A:STKPRICEy6A:STKPRICEy6A:STKGRAPHy6A:STKGRAPHy6*F6€[STOCK FILE CHANGE PROGRAM€\enter stock name for data changes€]F V€^YÀ^Y7 ¾À$€,€@$€-€M$À[$d4À$€-€M$STOCK NAME:$d4À$€-€M$INSTRUCTIONS:$d4€_€4€€5€€6À\€7€€8€¡€ ` ”B:STKFIL01.DAT€P€ €€€j€ ` 7€`€€7 7€`À`€9GÀ_À`À=€!€\€7 ,6 46 4€aÀ`6 õ6 €/€ h$€-€M$match not found$d4continue...? y or n?n;€b1'€bÀbsÀbY7 “6 f€ @6 ”data file B:STKFIL01.DAT not found$d4check disk in drive B$d4enter y to continuen;€b1'u6 f€Àa†€`Àa€/€h$€1€€2À"€$€-€M$À`À=€!$d4€1€€2À"€$€-€M$À`À>€!$d4€-€M$À`À<€!p#d4€-€M$À`À@€!$d4€-€M$À`ÀA€!#d4€-€M$À`ÀB€!#d4€-€M$À`ÀI€!$d4€-€M$À`ÀM€!#d4À]T7 Ó³€`Àa€ Àa%À`À<€!p+À`À=€!,À`ÀI€!,À`À>€!,À`À@€!,À`ÀB€!+À`ÀA€!+À`ÀF€!p+À`ÀM€!+?€ @€/€ h$d€1€€2À"€$d4€'€6 g€€'À' 7 z€1€€2À"€$d46 Z€^€4€€5€,€6input another stock? y or n?€7€ €8€¡€^À^s6 \€[STOCK SPLIT PROGRAM€\enter stock name that split€]T VÀ_ÀaÀ=€!€\€7 € @€/€ h$€-€M$IS THIS THE CORRECT STOCK TO UPDATE ?$d4€-€M$À!$dy or n?n;€b1'Àbx7 }6Àby7 �6 �6 �6 ¿d4enter the split factor as a fraction$d4for example, if the stock splits 2 for 1$d4your present holdings double, the factor$d4is 2.00$d4if the split is 3 for 2, factor = 1.50$d4d4if a stock dividend is declared rather than$d4a split, enter the multiplicative factor$d4for example, for a 5% stock dividend,$d4the factor is 1.05$d4d4ENTER STOCK SPLIT FACTOR : n;€c"'d4you have entered $Àc# as the split factor$d4enter y/n if this is correct/incorrect n;€Z1'€ZÀZsÀZn7‡6îB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j€dÀa€€Àd%€e)€f)>€eÀeÀc€gÀeW€hÀg€S€eÀhX€fÀfÀc€iÀfW€jÀi€S€fÀjX€Àd%Àe+Àf+?€ Àa%€k):€_*€l*€m*€n*€o)€p)€q):€r)>€kÀkÀcpr€ Àa%Àkp+À_,Àl,Àm,Àn,Ào+Àp+Àqp+Àr+?€@€ @{€s€Às€^96˜6¬6Á6Ö6ì6�€tB:DAYHST.DAT6€tB:WEEKHST.DAT6€tB:MONTHST.DAT6€tB:QUARTHST.DAT6€tB:YEARHST.DAT6€`wÀt€€€€€j€`‚€u€€7w€Àu%€v):>€wÀuÀa€€Àw%€f)>€fÀfÀc€iÀfW€jÀi€S€fÀjX€Àw%Àf+?€uÀuÀv€6€sÀs€6€€@€sÀs€6€€s€Às€^96®6¼6Ë6Ú6ê6!€xDAYHST6ù€xWEEKHST6ù€xMONTHST6ù€xQUARTHST6ù€xYEARHST6ù€`ê€tB:Àx.DAT€yB:Àx.$$$€zB:Àx.BAKÀt€€€€€jÀy€€€€€k€Àz-€`õ€7ê€&€{)>€&À{+?€&€v):>€&Àv€p+?€&€|)>€&À|+?€`€À`À}€7´€&€f)>€&Àf+?€`À`€6Ž€&€p+?€`À}€À`Àv7ç€&€f)>€&Àf+?€`À`€6Ä6Q€sÀs€6–€@€@€eÀzÀtY 7 6ÀtÀyY 76€sÀs€6–€s€Às€^96?6M6\6k6{6¡€xDAYHST6Š€xWEEKHST6Š€xMONTHST6Š€xQUARTHST6Š€xYEARHST6Š€`y€tB:Àx.DAT€yB:Àx.$$$€zB:Àx.BAKÀt€€€€€jÀy€€€€€k€`„€7y€&€{)>€&À{+?€&€v):>€&Àv€p+?€&€|)>€&À|+?€`€À`Àa€7@€&€f)>€&Àf+?€`À`€6€&€f)>€`Àa€À`Àv€7v€&€f)>€&Àf+?€`À`€6P6Ý€sÀs€6'€@€eÀtÀyY 7–6–€sÀs€6'€€€y2€ `QB:STKFIL01.DAT€€ €€€jFILE B:STKFIL01.DAT ALREADY EXISTS$d4 do you want to continue? y or n? n;€Z1'ÀZn7,€ @old file will be written to B:STKFIL01.BAK$d4B:STKFIL01.BAKB:STKFIL01.DATY€7†6Qd4UNABLE TO RENAME OLD DATA FILE TO BACKUP$d4enter name for old stock file: 5 characters n;€~1'€B:À~sFIL.DATÀB:STKFIL01.datY€76ˆdo you want to continue? y or n? n;€Z1'ÀZn7QB:STKFIL01.DAT€P€ €€€kÀy7´€À€†›§À$€,€@$€-€M$STOCK PURCHASE DATA$d4À$€-€M$STOCK NAME:$d4€-€M$EXCHANGE:$d4€-€M$NUMBER SHARES:$d4€-€M$PURCHASE DATE:$d4€-€M$TOTAL COST:$d4€-€M$COMMISSION:$d4€-€M$SYMBOL:$d4€-€M$DIVIDEND:$d4À$€-€M$INSTRUCTIONS:$d4ü<�Û$h±î€/€ h$€1€€2€<€$€-€M$SELECT FIELD TO BE CORRECTED$d4€-€M$0 = no changes$d4€-€M$1 = stock name 5 = total purchase cost$d4€-€M$2 = stock exchange 6 = commission charges$d4€-€M$3 = number of shares 7 = stock symbol$d4€-€M$4 = date purchased 8 = annual dividend$d4d4€-€M$À!$dWHICH FIELD DO YOU WANT TO CHANGE?n;€€":'À€€À€€ 7†À$€1€€2À"€$€-€M$dENTER A FIELD BETWEEN 0 AND 8: n;€€":'6/À€€7’6À€€7Ü€/€ h$€1€€2À"€$d4€'€6É€€'À' 7Ü€1€€2À"€$d46¼À€þb€^96ü6<6�6Û6$6h6±6î6³€-€M$À!$dare you sure?n;€b1'ÀbyÀbn 7{À$€1€€2À"€$€-€M$À!$denter y for yes or n for non;€b1'6$À$€1€€2À"€$d4Àby7™Àbn7¦6³ÀÀF€!À€`À9V€/€ h$€1€€2À"€$d4€'€6瀀'À' 7ú€1€€2À"€$d46Ú€/€ h$d4€€4€€5€,€6input another stock? y or n?€7€ €8€¡2Àn7N6±€À€€ 8€ 7e6±€ @B:STKFIL01.DAT€P€ €€€j€ `±€7˜€ &€�):>6†€‚A:€ƒSTKBASEÀ‚Àƒy6j€ @B:STKFIL01.DAT€€ €€€j€„€6åÀ€„À„ 7I€ &À„À<€!):À„À=€!*À„ÀI€!*À„À>€!*À„À@€!*À„ÀB€!)À„ÀA€!)À„ÀV€!):À„ÀM€!)>À„ÀV€!À„6Ø€ @€yB:STKFIL01.BAK€zB:STKFIL01.DATÀyÀzY 7~6�6ªunable to rename oldfile to BAK file$d4#o€;À2B:STKFIL01.DAT€P€ €€€k€'€6ãÀ€'À' 7B€„À'ÀV€!€ &À„À<€!p+À„À=€!,À„ÀI€!,À„À>€!,À„À@€!,À„ÀB€!+À„ÀA€!+À„p+À„ÀM€!+?6Ö€ @B:STKPRICE.DAT€€€€€kB:STKPRICE.BAK€€€€€k39\€&Àp+À…,À…,?9b€`€6£À€`À` 7Ì€&À`ÀJ€!+À`ÀJ€!+?À`ÀK€!À`ÀJ€!6–€&À`ÀJ€!+À`ÀJ€!+?À`ÀK€!À`ÀJ€!9_€@€@€:€4€ €5€€6enter name of stock€7€ €8€¡ÀÀ=€!À:€S€m€4€€5€€6enter exchange: NYSE, AMEX, OTC or OTHER€7€ €8€¡ÀÀ>€!Àms€†€4€€5€€6enter number of shares purchased€7€ €8€¡ÀÀ<€!À†X:ÀÀ@€!€4€€5€€6enter date: month/day/year purchased€7€ €8€¡€‡€4€€5€€6enter total purchase cost€7€ €8€¡ÀÀA€!À‡X€ˆ€4€€5€€6enter total commission charges€7€ €8€¡ÀÀB€!ÀˆX€l€4€€5€€6ENTER STOCK SYMBOL€7€ €8€¡ÀÀI€!Àls€‰€4€€5€€6enter stock dividend€7€ €8€¡ÀÀM€!À‰XÀ$€,€@$€-€M$STOCK ADD/DELETE PROGRAM$d4€,€@$€-€M$0 = return to main menu$d4€-€M$1 = ADD to stock file$d4€-€M$2 = DELETE stock from file$d4À$€-€M$INSTRUCTIONS: enter menu selection$d4€-€M$À!$d and hit returnn;€€":'À€€7!K6À€![b€^96!\6'Û€y2Ày7'Ú!s6"³€`!²€ `"B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j6"rno such file: B:STKPRICE.DAT exists$d4check disk on DRIVE B$d4enter y to resumen;€b1'u6"²no such file: B:STKFIL01.DAT exists$d4check disk on DRIVE B$d4enter y to resumen;€b1'u6"²€`"…€ `"�9M9S9P€ŠÀ9J€@€ @B:STKFIL01.BAK€P€ €€€k9Y€ @€À€€‹À€À‹ÀK€!ÀÀK€!À‹ÀJ€!ÀÀJ€!†›À$d4€/€ h$€-€M$INSTRUCTIONS:$d4€-€M$À!$ENTER current stock price for :$ÀÀ=€!$d4€n;ÀÀJ€!"'ÀÀK€!ÀÀJ€!#o6$O€Œ€€`€6#‰À€`À` 7#¨À`À=€!TÀŒ7#¥€ŒÀ`À=€!T6#|€`€6#½À€`À` 7$À`ÀG€!À`À=€!sÀ`ÀG€!TÀŒ€7#øÀ`ÀG€!À`ÀG€!zzzzÀ`ÀG€!À`ÀG€!ÀŒ€S6#°€}€€`€6$.À€€`À` 7$NÀÀG€!À`ÀG€!7$K€}À}€6$ÀÀ=€!$ is to be added after $À}€À=€!$d4 in the $À}p# position $d4B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€k9\€`€€'€À`À}€7%{À`ÀF€!À`€ À'%À`À<€!p+À`À=€!,À`ÀI€!,À`À>€!,À`À@€!,À`ÀB€!+À`ÀA€!+À`ÀF€!p+À`ÀM€!+?€À'€%À`ÀJ€!+À`ÀK€!+?€`À`€€'À'€6$ÜÀÀF€!À`€`À€ À'%À`À<€!p+À`À=€!,À`ÀI€!,À`À>€!,À`À@€!,À`ÀB€!+À`ÀA€!+À`ÀF€!p+À`ÀM€!+?€À'€%À`ÀJ€!+À`ÀK€!+?€`À}€'À'€À`À€7&¬À`ÀF€!À`€ À'%À`À<€!p+À`À=€!,À`ÀI€!,À`À>€!,À`À@€!,À`ÀB€!+À`ÀA€!+À`ÀF€!p+À`ÀM€!+?€À'€%À`ÀJ€!+À`ÀK€!+?€`À`€€'À'€6& €`À‹€À'€%À`ÀJ€!+À`ÀK€!+?€@€ @À$€/€h$À!$d4UPDATING HISTORICAL PRICE FILES FOR LATEST$d4 STOCK ADDITION ... you may wish to do something$d4 else for the next few minutes ...$d4‘À$€/€ h$€-€M$INSTRUCTIONS:$d4€€4€€5€,€6input another stock? y or n?€7€ €8€¡26!c!s€[STOCK DELETION PROGRAM€\enter stock name to be deleted€]T VÀ_ÀaÀ=€!€\€7(?€ @6(@€/€ h$€-€M$IS THIS THE CORRECT STOCK TO DELETE ?$d4€-€M$À!$dy or n?n;€b1'Àby7(©6(¬6(¬6'Þ€`)H€ `)HB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j9M€`€À`Àa7)9P9G€`À`€À`ÀF€!À`6(ð€`ÀaÀ`ÀŠ€7)@9P9G€`À`€À`ÀF€!À`6)€`ÀŠ9P€@€ @€`)ž€ `)žB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j€ÀŠ€9Y9\9b9_€@€ @À$€/€h$À!$d4UPDATING HISTORICAL PRICE FILES FOR LATEST$d4 STOCK DELETION ... you may wish to do something$d4 else for the next few minutes ...$d4"À$€,€@$€-€ M$STOCK TRANSACTION FILE$d4À$d4€-€M$0 = return to main menu$d4€-€M$1 = ADD to transaction file$d4€-€M$2 = ORIGINAL CREATION OF FILE$d4À$€-€M$INSTRUCTIONS: enter menu selection$d4€-€M$À!$d and hit returnn;€€":'À€€7+f6À€+vb€^96+Ÿ6+w€�€€ŽyB:TRANSACT.DAT€P€€€€k, €�€€ŽyB:TRANSACT.DAT€P€€€€j€`,ÀŽy7,€&€k):€_*€�)€m*€n*€o)€p)€l*>€�À�€6+È€€, ÀŽy71n,-;0”À$€,€@$€-€M$STOCK PURCHASE DATA$d4À$€-€M$STOCK NAME:$d4€-€M$BOUGHT/SOLD?:$d4€-€M$NUMBER SHARES:$d4€-€M$TRADE DATE:$d4€-€M$TOTAL COST:$d4€-€M$COMMISSION:$d4€-€M$SYMBOL:$d4€-€M$BUY/SELL PRICE:$d4À$€-€M$INSTRUCTIONS:$d4ü1r�Û$h±1»€/€ h$€1€€2À"€$€-€M$SELECT FIELD TO BE CORRECTED$d4€-€ M$0 = no changes$d4€-€ M$1 = stock name$d4€-€ M$2 = bought/sold$d4€-€ M$3 = number of shares$d4€-€ M$4 = date purchased/sold$d4€-€ M$5 = total purchase cost$d4€-€ M$6 = commission charges$d4€-€ M$7 = stock symbol$d4€-€ M$8 = price per share$d4€-€M$À!$dWHICH FIELD DO YOU WANT TO CHANGE?n;€€":'À€€À€€ 7/HÀ$€1€€2À"€$€-€M$dENTER A FIELD BETWEEN 0 AND 8: n;€€":'6.ñÀ€€7/T6/ÔÀ€€7/Ô€/€ h$d€1€€2À"€$d4€'€6/Œ€ €'À' 7/Ÿ€1€ €2À"€$d46/€1€€2À"€$d4À€/Ñb€^96ü61r6�6Û6$6 h6±61»6-S€-€M$À!$dare you sure?n;€b1'ÀbyÀbn 70NÀ$€1€€2À"€$€-€M$À!$denter y for yes or n for non;€b1'6/÷Àby70[60“Àbn70�€/€h$€1€€2À"€$d4€1€€2À"€$À$d6.¸€„À€&À„À<€!p+À„À=€!,À„ÀJ€!+À„À>€!,À„À@€!,À„ÀB€!+À„ÀA€!+À„ÀI€!,?€/€ h$d€1€€2À"€$d4€'€61€ €'À' 71(€1€€2À"€$d461€Ž€4€€5€,€6input another purchase/sell? y or n?€7€ €8€¡6, €@€m€4€ €5€€6enter B for bought, S for sold€7€ €8€¡ÀÀ>€!Àms€�€4€€5€€6enter price per share paid€7€ €8€¡ÀÀJ€!À�X€‘€€ €’€€ €“€€À‘€!€€À’€!À;À“€73€”À“À‘€!€•À“À’€!€“À“€À”À•73€`À”€'À•€–€À`À'72áÀ`ÀV€!ÀG€!À'ÀV€!ÀG€!72€—À`ÀV€!À`ÀV€!À'ÀV€!À'ÀV€!À—€–À–pDÀ–€72Ö€`À`€62Þ€'À'€62kÀ`€À•72퀓À“€À“À‘€!À`€À“À’€!À•€•À`€62R62+À$d4enter date of current stock prices: mo/dy/yr$d4€n;€…1'€˜€€™€p€š€p€›€pÀ$d47|€`À˜63ŽÀ€`À` 74€/€h$d4€'€63®€€'À' 73Á€1€€2À"€$d463¡€/€h$INSTRUCTIONS: ENTER stock price for $À`À=€!$À!$d4€n;À`ÀJ€!"'7|8D63�€`€64+À€`À` 74¾€œÀ`À<€!À`ÀK€!p€šÀšÀœ€�À`À<€!À`ÀJ€!p€›À›À�À`ÀL€!À�À`ÀC€!À�Àœ€™À™À`ÀC€!Àœ€p74¤À`ÀD€!€p64»À`ÀD€!À`ÀC€!Àœ€dp64Àš€p74Ñ€ž€p64Ý€žÀ™Àš€dp€`4ó€&À`ÀK€!)€Ÿ)>À`À=€!S&P 500€/€h$€1€€2À"€$d4€1€€2À"€$d4€/€h$INSTRUCTIONS: ENTER stock price for $À`À=€!$À!$d4€n;À`ÀJ€!"'À`ÀC€!À`ÀJ€!À`ÀK€!À`ÀK€!€p75°À`ÀD€!€p65ÍÀ`ÀD€!À`ÀC€!À`ÀK€!€dpd4You now have a chance to correct input errors$d4any price changes ? (y/n)?n;€Z1'ÀZnÀZN 76967|enter number of stock for price changen;€ ":'€¡À À<€!À ÀJ€!pprice for $À À=€!$ is $À ÀJ€!#d4enter correct price n;À ÀJ€!"'€œÀ À<€!À ÀK€!p€�À À<€!À ÀJ€!p€›À›À�À¡À ÀL€!À�À ÀC€!À�Àœ€™À™À ÀC€!À¡ÀœÀœ€p77CÀ ÀD€!€p67ZÀ ÀD€!À ÀC€!Àœ€dpÀš€p77m€ž€p67y€žÀ™Àš€dp66À$d4€'€67–€€'À' 77©€1€€2À"€$d467‰À$d4€J ***** STOCK PRICE UPDATE *****$d4d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4À`€78i€/€€À`€€8h$d468€/€h$d4€/€ h$d4€¢À`ÀJ€!À`ÀK€! ### / stock name / ##.### ##.### ###.###cÀ`p#5À`À=€!$5À`ÀK€!#5À`ÀJ€!#5À¢#d4€&Àp+À…,À£,?€`€69À€`À` 79,€&À`ÀJ€!+À`ÀK€!+?69€&À`ÀJ€!+À`ÀK€!+?€@69e69½69Ù69ë6:6:6:v6:’6:¡6:¸€ &À`À<€!):À`À=€!*À`ÀI€!*À`À>€!*À`À@€!*À`ÀB€!)À`ÀA€!)À`ÀF€!):À`ÀM€!)>€`€69ÒÀ€`À` 79Ø9G69Å€&€):€…*€£*>€&À`ÀJ€!)À`ÀK€!)>€`€6:À€`À` 7:9P6: € &À`À<€!p+À`À=€!,À`ÀI€!,À`À>€!,À`À@€!,À`ÀB€!+À`ÀA€!+À`ÀF€!p+À`ÀM€!+?€`€6:‹À€`À` 7:‘9V6:~€&Àp+À…,À£,?€&À`ÀJ€!+À`ÀK€!+?€`€6:ÍÀ€`À` 7:Ó9_6:À€number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4À`€À ÀC€!Àœ€dpÀš€p77m€ž€p67y€žÀ™Àš€dp66À$d4€'€67–€€'À' 77©€1€€2À"€$d467‰À$d4€J ***** STOCK PRICE UPDAT1$*Œ<&(@~~6ã€ÀT€/À€\€ÀÀ€S€ ÀX:€ /ÀÀ€\€ ÀÀÀ V€ À X:À€€7[€ 06n€ ÀÀ€À À€U€À X:/3 0,3,3,6,8,11,13,16,19,21,24,26,€€6‹À €À 7“€=:6~€ÀÀ €pr€À €€ÀÀ €prÀ €À € 7Ï€À€€À pW.ÀpWÀt65€€À€ÀT€.À€\€ ÀÀ€S€ À X:€ÀÀÀV€ÀX:€ÀÀ �mÀt6T€ÀÀ€ÀprÀ€ÀÀt€€R€€R€€ R€€ R€€ R€€ R€ €R€!€R€"€<€#€ R€$€R€$€R€% €&€6¶€€&À& 7Á€%À%À%6©€'À€&€6Û€€&À& 7æ€'À'À'6΀(À€&€6€€&À& 7 €(À(À(6ó€)À€&€6%€€&À& 70€)À)À)66=À(À*ÀTS6JÀ)À+ÀTS6eÀ$d4€-À'À,€ÀTSÀ-t6}€/À€+À.€@À/t6ž€2€,À0€MÀ%À1À0€SÀ2t6ú€.À6h$€0À7€1À"€$À!$€,À7M$À5$€*À33$€0À4€1À"€$€,À4M$d€n;€91'€8À9À8t€:€2€;À:€ €<À:€ €=À:€ €>À:€ €?À:€ €@À:€ €AÀ:€ €BÀ:€ €CÀ:€ €DÀ:€ €EÀ:€ €FÀ:€ €GÀ:€ €HÀ:€ €IÀ:€ €JÀ:€ €KÀ:€ €LÀ:€ €MÀ:€ €N€2€OÀN€ €PÀN€ €QÀN€ €RÀN€ €SÀN€ €TÀN€ €UÀN€ À€7ú6øÀ$€+€@$€,€ M$STOCK PORTFOLIO ANALYSIS$d4À$€.€h$€,€M$CHANGE disks at this time$d4€,€M$PROGRAMS disk should be on DRIVE A$d4À$€,€M$DATA files disk should be loaded on DRIVE B$d4€VL� p€.€ h$€,€M$Amount of FREE STORAGE area remaining $ÀV# bytes$d4€.€h$€,€M$À!$dPRESS ANY KEY TO CONTINUE $d4w 7Y6Qu€W€\€XÀWB:*.*Z€.€h$€,€M$Amount of FREE SPACE on DATA disk $ÀXp# Kbytes$d4PLEASE TAKE NOTE OF DISK SPACE!$À!$d4enter y to continue n;€Y1'À$€+€@$€,€ M$STOCK PORTFOLIO ANALYSIS$d4À$€,€M$option list$À$d4€,€M$0 = EXIT to CP/M$d4€,€M$1 = CREATE stock file$d4€,€M$2 = ADD/DELETE to stock file$d4€,€M$3 = CHANGE entries in stock file$d4€,€M$4 = HISTORICAL performance summary$d4€,€M$5 = UPDATE weekly stock prices$d4€,€M$6 = TIME-SERIES regressions$d4€,€M$7 = BUY/SELL FILE entry$d4€,€M$8 = STOCK SPLIT entry$d4€,€M$9 = RISK/RETURN f ile sort$d4À$€.€h$€,€ M$À!$dSELECT OPTION NUMBER: n;€":'À€76<%À€ 7'6<%À€ ^96H6N6T6Z6j6z6Š6�6–T6øÃ6ø¦6øA:STKPRICEy6øA:STKPRICEy6øA:STKGRAPHy6ø)Ü6ø ]6øA:STKGRAPHy6ø€ZSTOCK FILE CHANGE PROGRAM€[enter stock name for data changes€\Fô€]YÀ]Y7 \À$€+€@$€,€M$ÀZ$d4À$€,€M$STOCK NAME:$d4À$€,€M$INSTRUCTIONS:$d4€^€3€€4€€5À[€6€€7€¡€ ` 2B:STKFIL01.DAT€P€ €€€j€ ` Õ€_€€7 Õ€_À_€:˜À^À_À<€!€\€7 Ê6 Ò6 Ò€`À_6 “6 Ÿ€.€ h$€,€M$match not found$d4continue...? y or n?n;€a1'€aÀasÀaY7 16 € @6 2data file B:STKFIL01.DAT not found$d4check disk in drive B$d4enter y to continuen;€a1'u6 €À`8€_À`€.€h$€0€€1À"€$€,€M$À_À<€!$d4€0€€1À"€$€,€M$À_À=€!$d4€,€M$À_À;€!p#d4€,€M$À_À?€!$d4€,€M$À_À@€!#d4€,€M$À_ÀA€!#d4€,€M$À_ÀH€!$d4€,€M$À_ÀL€!#d4À\T7 qe€_À`€ À`%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€ @€.€ h$d€0€€1À"€$d4€&€6 €€&À& 7 €0€€1À"€$d46 ø€]€3€€4€,€5input another stock? y or n?€6€ €7€¡€]À]s6ú€ZSTOCK SPLIT PROGRAM€[enter stock name that split€\TôÀ^À`À<€!€\€7 µ€ @€.€ h$€,€M$IS THIS THE CORRECT STOCK TO UPDATE ?$d4€,€M$À!$dy or n?n;€a1'Àax7 6øÀay7 +6 .6 .6 ]d4enter the split factor as a fraction$d4for example, if the stock splits 2 for 1$d4your present holdings double, the factor$d4is 2.00$d4if the split is 3 for 2, factor = 1.50$d4d4if a stock dividend is declared rather than$d4a split, enter the multiplicative factor$d4for example, for a 5% stock dividend,$d4the factor is 1.05$d4d4ENTER STOCK SPLIT FACTOR : n;€b"'d4you have entered $Àb# as the split factor$d4enter y/n if this is correct/incorrect n;€Y1'€YÀYsÀYn7%6ŒB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j€cÀ`€€Àc%€d)€e)>€dÀdÀb€fÀdW€gÀf€S€dÀgX€eÀeÀb€hÀeW€iÀh€S€eÀiX€Àc%Àd+Àe+?€ À`%€j):€^*€k*€l*€m*€n)€o)€p):€q)>€jÀjÀbpr€ À`%Àjp+À^,Àk,Àl,Àm,Àn+Ào+Àpp+Àq+?€@€ @€r€Àr€^9666J6_6t6Š6.€sB:DAYHST.DAT6Ÿ€sB:WEEKHST.DAT6Ÿ€sB:MONTHST.DAT6Ÿ€sB:QUARTHST.DAT6Ÿ€sB:YEARHST.DAT6Ÿ€`Às€€€€€j€` €t€€7€Àt%€u):>€vÀtÀ`€€Àv%€e)>€eÀeÀb€hÀeW€iÀh€S€eÀiX€Àv%Àe+?€tÀtÀu€6¹€rÀr€6€@€rÀr€6€r€Àr€^96L6Z6i6x6ˆ6¿€wDAYHST6—€wWEEKHST6—€wMONTHST6—€wQUARTHST6—€wYEARHST6—€`ˆ€sB:Àw.DAT€xB:Àw.$$$€yB:Àw.BAKÀs€€€€€jÀx€€€€€k€Ày-€`“€7ˆ€&€z)>€&Àz+?€&€u):>€&Àu€p+?€&€{)>€&À{+?€_€À_À|€7R€&€e)>€&Àe+?€_À_€6,€&€p+?€_À|€À_Àu7…€&€e)>€&Àe+?€_À_€6b6ï€rÀr€64€@€@€eÀyÀsY 7¨6´ÀsÀxY 7´6´€rÀr€64€r€Àr€^96Ý6ë6ú6 66S€wDAYHST6(€wWEEKHST6(€wMONTHST6(€wQUARTHST6(€wYEARHST6(€`€sB:Àw.DAT€xB:Àw.$$$€yB:Àw.BAKÀs€€€€€jÀx€€€€€k€Ày-€`'€7€&€z)>€&Àz+?€&€u):>€&Àu€p+?€&€{)>€&À{+?€_€À_À`€7ã€&€e)>€&Àe+?€_À_€6½€&€e)>€_À`€À_Àu€7€&€e)>€&Àe+?€_À_€6ó6€€rÀr€6Å€@€@€eÀyÀsY 7<6HÀsÀxY 7H6H€rÀr€6Å€€€y2€ `B:STKFIL01.DAT€€ €€€jFILE B:STKFIL01.DAT ALREADY EXISTS$d4 do you want to continue? y or n? n;€Y1'ÀYn7Þ€ @old file will be written to B:STKFIL01.BAK$d4B:STKFIL01.BAKB:STKFIL01.DATY€786d4UNABLE TO RENAME OLD DATA FILE TO BACKUP$d4enter name for old stock file: 5 characters n;€}1'€~B:À}sFIL.DATÀ~B:STKFIL01.datY€7Î6:do you want to continue? y or n? n;€Y1'ÀYn7B:STKFIL01.DAT€P€ €€€kÀy7\€À€8MYÀ$€+€@$€,€M$STOCK PURCHASE DATA$d4À$€,€M$STOCK NAME:$d4€,€M$EXCHANGE:$d4€,€M$NUMBER SHARES:$d4€,€M$PURCHASE DATE:$d4€,€M$TOTAL COST:$d4€,€M$COMMISSION:$d4€,€M$SYMBOL:$d4€,€M$DIVIDEND:$d4À$€,€M$INSTRUCTIONS:$d4’Ò%qºþG„€.€ h$€0€€1€<€$€,€M$SELECT FIELD TO BE CORRECTED$d4€,€M$0 = no changes$d4€,€M$1 = stock name 5 = total purchase cost$d4€,€M$2 = stock exchange 6 = commission charges$d4€,€M$3 = number of shares 7 = stock symbol$d4€,€M$4 = date purchased 8 = annual dividend$d4d4€,€M$À!$dWHICH FIELD DO YOU WANT TO CHANGE?n;€":'À€À€ 78À$€0€€1À"€$€,€M$dENTER A FIELD BETWEEN 0 AND 8: n;€":'6áÀ€7D6³À€7Ž€.€ h$€0€€1À"€$d4€&€6{€€&À& 7Ž€0€€1À"€$d46nÀ°b€^96’6Ò6%6q6º6þ6G6„6e€,€M$À!$dare you sure?n;€a1'ÀayÀan 7-À$€0€€1À"€$€,€M$À!$denter y for yes or n for non;€a1'6ÖÀ$€0€€1À"€$d4Àay7KÀan7X6e€_À:§€.€ h$€0€€1À"€$d4€&€6�€€&À& 7¢€0€€1À"€$d46‚€.€ h$d4€€3€€4€,€5input another stock? y or n?€6€ €7€¡2Àn7ö6Y€À€€ 8€ 7 6Y€ @B:STKFIL01.DAT€P€ €€€j€ `Y€7@€ &€€):>6.€�A:€‚STKBASEÀ�À‚y6€ @B:STKFIL01.DAT€€ €€€j€ƒ€6�À€ƒÀƒ 7ç€ &ÀƒÀ;€!):ÀƒÀ<€!*ÀƒÀH€!*ÀƒÀ=€!*ÀƒÀ?€!*ÀƒÀA€!)ÀƒÀ @€!)ÀƒÀU€!):ÀƒÀL€!)>6€€ @€xB:STKFIL01.BAK€yB:STKFIL01.DATÀxÀyY 766Hunable to rename oldfile to BAK file$d4#B:STKFIL01.DAT€P€ €€€k€&€6yÀ€&À& 7Ø€ƒÀ&ÀU€!€ &ÀƒÀ;€!p+ÀƒÀ<€!,ÀƒÀH€!,ÀƒÀ=€!,ÀƒÀ?€!,ÀƒÀA€!+ÀƒÀ@€!+Àƒp+ÀƒÀL€!+?6l€ @B:STKPRICE.DAT€€€€€kB:STKPRICE.BAK€€€€€k4l:­€&Àp+À„,À„,?:³€_€69À€_À_ 7b€&À_ÀI€!+À_ÀI€!+?À_ÀJ€!À_ÀI€!6,€&À_ÀI€!+À_ÀI€!+?À_ÀJ€!À_ÀI€!:°€@€@€9€3€ €4€€5enter name of stock€6€ €7€¡ÀÀ<€!À9€S€l€3€€4€€5enter exchange: NYSE, AMEX, OTC or OTHER€6€ €7€¡ÀÀ=€!Àls€…€3€€4€€5enter number of shares purchased€6€ €7€¡ÀÀ;€!À…X:ÀÀ?€!€3€€4€€5enter date: month/day/year purchased€6€ €7€¡€†€3€€4€€5enter total purchase cost€6€ €7€¡ÀÀ@€!À†X€‡€3€€4€€5enter total commission charges€6€ €7€¡ÀÀA€!À‡X€k€3€€4€€5ENTER STOCK SYMBOL€6€ €7€¡ÀÀH€!Àks€ˆ€3€€4€€5enter stock dividend€6€ €7€¡ÀÀL€!ÀˆXÀ$€+€@$€,€M$STOCK ADD/DELETE PROGRAM$d4€+€@$€,€M$0 = return to main menu$d4€,€M$1 = ADD to stock file$d4€,€M$2 = DELETE stock from file$d4À$€,€M$INSTRUCTIONS: enter menu selection$d4€,€M$À!$d and hit returnn;€":'À€7 á6øÀ ñb€^96 ò6'q€y2Ày7'p! 6"I€`!H€ `!¨B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j6"no such file: B:STKPRICE.DAT exists$d4check disk on DRIVE B$d4enter y to resumen;€a1'u6"Hno such file: B:STKFIL01.DAT exists$d4check disk on DRIVE B$d4enter y to resumen;€a1'u6"H€`"€ `"#:ž:¤:¡€‰À:›€@€ @B:STKFIL01.BAK€P€ €€€k:ª€ @€À€€ŠÀ€ÀŠÀJ€!ÀÀJ€!ÀŠÀI€!ÀÀI€!8MÀ$d4€.€ h$€,€M$INSTRUCTIONS:$d4€,€M$À!$ENTER current stock price for :$ÀÀ<€!$d4€n;ÀÀI€!"'ÀÀJ€!ÀÀI€!#6#個€€_€6#À€_À_ 7#>À_À<€!TÀ‹7#;€‹À_À<€!T6#€_€6#SÀ€_À_ 7#§À_ÀF€!À_À<€!sÀ_ÀF€!TÀ‹€7#ŽÀ_ÀF€!À_ÀF€!zzzzÀ_ÀF€!À_ÀF€!À‹€S6#F€|€€_€6#ÄÀ€€_À_ 7#äÀÀF€!À_ÀF€!7#á€|À|€6#´ÀÀ<€!$ is to be added after $À|€À<€!$d4 in the $À|p# position $d4B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€k:­€_€€&€À_À|€7%À_ÀE€!À_€ À&%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€À&€%À_ÀI€!+À_ÀJ€!+?€_À_€€&À&€6$rÀÀE€!À_€_À€ À&%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€À&€%À_ÀI€!+À_ÀJ€!+?€_À|€&À&€À_À€7&BÀ_ÀE€!À_€ À&%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€À&€%À_ÀI€!+À_ÀJ€!+?€_À_€€&À&€6%£€_ÀŠ€À&€%À_ÀI€!+À_ÀJ€!+?€@€ @À$€.€h$À!$d4UPDATING HISTORICAL PRICE FILES FOR LATEST$d4 STOCK ADDITION ... you may wish to do something$d4 else for the next few minutes ...$d4/À$€.€ h$€,€M$INSTRUCTIONS:$d4€€3€€4€,€5input another stock? y or n?€6€ €7€¡26 ù! €ZSTOCK DELETION PROGRAM€[enter stock name to be deleted€\TôÀ^À`À<€!€\€7'Õ€ @6'Ö€.€ h$€,€M$IS THIS THE CORRECT STOCK TO DELETE ?$d4€,€M$À!$dy or n?n;€a1'Àay7(?6(B6(B6't€`(Þ€ `(ÞB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j:ž€_€À_À`7(ª:¡:˜€_À_€À_ÀE€!À_6(†€_À`À_À‰€7(Ö:¡:˜€_À_€À_ÀE€!À_6(¯€_À‰:¡€@€ @€`)4€ `)4B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j€À‰€:ª:­:³:°€@€ @À$€.€h$À!$d4UPDATING HISTORICAL PRICE FILES FOR LATEST$d4 STOCK DELETION ... you may wish to do something$d4 else for the next few minutes ...$d4ÀÀ$€+€@$€,€ M$STOCK TRANSACTION FILE$d4À$d4€,€M$0 = return to main menu$d4€,€M$1 = ADD to transaction file$d4€,€M$2 = ORIGINAL CREATION OF FILE$d4À$€,€M$INSTRUCTIONS: enter menu selection$d4€,€M$À!$d and hit returnn;€":'À€7*ü6øÀ+ b€^96+56+ €Œ€€�yB:TRANSACT.DAT€P€€€€k+¡€Œ€€�yB:TRANSACT.DAT€P€€€€j€`+�À�y7+˜€&€j):€^*€Ž)€l*€m*€n)€o)€k*>€ŒÀŒ€6+^€€+¡À�y70ì+µ,Ñ0À$€+€@$€,€M$STOCK PURCHASE DATA$d4À$€,€M$STOCK NAME:$d4€,€M$BOUGHT/SOLD?:$d4€,€M$NUMBER SHARES:$d4€,€M$TRADE DATE:$d4€,€M$TOTAL COST:$d4€,€M$COMMISSION:$d4€,€ M$SYMBOL:$d4€,€M$BUY/SELL PRICE:$d4À$€,€M$INSTRUCTIONS:$d41½0ð1ý2C2†2Ë31y€.€ h$€0€€1À"€$€,€M$SELECT FIELD TO BE CORRECTED$d4€,€M$0 = no changes$d4€,€M$1 = stock name $5 = total purchase cost$d4€,€M$2 = bought/sold $6 = commission charges$d4€,€M$3 = number of shares $7 = stock symbol$d4€,€M$4 = date purchased/sold $8 = price per share$d4d4€,€M$À!$dWHICH FIELD DO YOU WANT TO CHANGE?n;€":'À€À€ 7.ÐÀ$€0€€1À"€$€,€M$dENTER A FIELD BETWEEN 0 AND 8: n;€":'6.yÀ€7.Ü6/[À€7/[€.€ h$€0€€1À"€$d4€&€6/€ €&À& 7/&€0€€1À"€$d46/€0€€1À"€$d4À/Xb€^961½60ð61ý62C62†62Ë6361y6,é€,€M$À!$dare you sure?n;€a1'ÀayÀan 7/ÕÀ$€0€€1À"€$€,€M$À!$denter y for yes or n for no n;€a1'6/~Àay7/â60Àan70À$€0€€1À"€$d4€0€€1À"€$d46.@€ƒÀ€&ÀƒÀ;€!p+ÀƒÀ<€!,ÀƒÀI€!+ÀƒÀ=€!,ÀƒÀ?€!,ÀƒÀA€!+ÀƒÀ@€!+ÀƒÀH€!,?€.€ h$€0€€1À"€$d4€&€60“€€&À& 70¦€0€€1À"€$d460†€�€3€€4€,€5input another purchase/sell? y or n?€6€ €7€¡6+¡€@€l€3€€4€€5enter B for BUY, S for SELL, SPL for SPLIT€6€ €7€¡ÀÀ=€!ÀlsÀÀ=€!B71_€�boughtÀÀ=€!S71x€�sold€�€3€€4€€5enter price per share À�€6€ €7€¡ÀÀI€!À�X€9€3€ €4€€5enter name of stock€6€ €7€¡ÀÀ<€!À9€S€…€3€€4€€5enter number of shares À�€6€ €7€¡ÀÀ;€!À…X:ÀÀ?€!€3€€4€€5enter date: month/day/year À�€6€ €7€¡€†€3€€4€€5enter total value of trade€6€ €7€¡ÀÀ@€!À†X€‡€3€€4€€5enter total commission charges€6€ €7€¡ÀÀA€!À‡X€k€3€€4€€5ENTER STOCK SYMBOL€6€ €7€¡ÀÀH€!Àks€‘€€ €’€€ €“€€À‘€!€€À’€!À:À“€74k€”À“À‘€!€•À“À’€!€“À“€À”À•74h€_À”€&À•€–€À_À&742À_ÀU€!ÀF€!À&ÀU€!ÀF€!74€—À_ÀU€!À_ÀU€!À&ÀU€!À&ÀU€!À—€–À–pDÀ–€74'€_À_€64/€&À&€63¼À_€À•74>€“À“€À“À‘€!À_€À“À’€!À•€•À_€63£63|À$d4enter date of current stock prices: mo/dy/yr$d4€n;€„1'€˜€€™€p€š€p€›€pÀ$d48Í€_À˜64ßÀ€_À_ 75g€.€h$d4€&€64ÿ€€&À& 75€0€€1À"€$d464ò€.€h$INSTRUCTIONS: ENTER stock price for $À_À<€!$À!$d4€n;À_ÀI€!"'8Í9•64Ò€_€65|À€_À_ 76€œÀ_À;€!À_ÀJ€!p€šÀšÀœ€�À_À;€!À_ÀI€!p€›À›À�À_ÀK€!À�À_ÀB€!À�Àœ€™À™À_ÀB€!Àœ€p75õÀ_ÀC€!€p66 À_ÀC€!À_ÀB€!Àœ€dp65oÀš€p76"€ž€p66.€žÀ™Àš€dp€`6D€&À_ÀJ€!)€Ÿ)>À_À<€!S&P 500€.€h$€0€€1À"€$d4€0€€1À"€$d4€.€h$INSTRUCTIONS: ENTER stock price for $À_À<€!$À!$d4€n;À_ÀI€!"'À_ÀB€!À_ÀI€!À_ÀJ€!À_ÀJ€!€p77À_ÀC€!€p67À_ÀC€!À_ÀB€!À_ÀJ€!€dpd4You now have a chance to correct input errors$d4any price changes ? (y/n)?n;€Y1'ÀYnÀYN 77Š68Íenter number of stock for price changen;€ ":'€¡À À;€!À ÀI€!pprice for $À À<€!$ is $À ÀI€!#d4enter correct price n;À ÀI€!"'€œÀ À;€!À ÀJ€!p€�À À;€!À ÀI€!p€›À›À�À¡À ÀK€!À�À ÀB€!À�Àœ€™À™À ÀB€!À¡ÀœÀœ€p78”À ÀC€!€p68«À ÀC€!À ÀB€!Àœ€dpÀš€p78¾€ž€p68Ê€žÀ™Àš€dp67RÀ$d4€&€68瀀&À& 78ú€0€€1À"€$d468ÚÀ$d4€J ***** STOCK PRICE UPDATE *****$d4d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4À_€79º€.€€À_€€8h$d469Ѐ.€h$d4€.€ h$d4€¢À_ÀI€!À_ÀJ€! ### / stock name / ##.### ##.### ###.###cÀ_p#5À_À<€!$5À_ÀJ€!#5À_ÀI€!#5À¢#d4€&Àp+À„,À£,?€_€6:dÀ€_À_ 7:}€&À_ÀI€!+À_ÀJ€!+?6:W€&À_ÀI€!+À_ÀJ€!+?€@6:¶6;6;*6;<6;S6;o6;Ç6;ã6;ò6< € &À_À;€!):À_À<€!*À_ÀH€!*À_À=€!*À_À?€!*À_ÀA€!)À_À@€!)À_ÀE€!):À_ÀL€!)>€_€6;#À€_À_ 7;):˜6;€&€):€„*€£*>€&À_ÀI€!)À_ÀJ€!)>€_€6;hÀ€_À_ 7;n:¡6;[€ &À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€_€6;ÜÀ€_À_ 7;â:§6;Ï€&Àp+À„,À£,?€&À_ÀI€!+À_ÀJ€!+?€_€6<À€_À_ 7<$:°6<€number STOCK NAME OLD PRICE NEÀ�À¡À ÀK€!À�À ÀB€!À�Àœ€™À™À ÀB€!À¡ÀœÀœ€p78”À ÀC€!€p68«À ÀC€!À ÀB€!Àœ€dpÀš€p78¾€ž€p68Ê€žÀ™Àš€dp67RÀ$d4€&€68瀀&À& 78ú€0€€1À"€$d468ÚÀ$d4€J ***** STOCK PRICE UPDATE *****$d4d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4À_€79º€.€€À_€€8h$d469Ѐ.€h$d4€.€ h$d4€¢À_ÀI€!À_ÀJ€! ### / stock name / ##.### ##.### ###.###cÀ_p#5À_À<€!$5À_ÀJ€!#5À_ÀI€!#5À¢#d4€&Àp+À„,À£,?€_€6:dÀ€_À_ 7:}€&À_ÀI€!+À_ÀJ€!+?6:W€&À_ÀI€!+À_ÀJ€!+?€@6:¶6;6;*6;<6;S6;o6;Ç6;ã6;ò6< € &À_À;€!):À_À<€!*À_ÀH€!*À_À=€!*À_À?€!*À_ÀA€!)À_À@€!)À_ÀE€!):À_ÀL€!)>€_€6;#À€_À_ 7;):˜6;€&€):€„*€£*>€&À_ÀI€!)À_ÀJ€!)>€_€6;hÀ€_À_ 7;n:¡6;[€ &À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€_€1$*Œ<*(@~~6ã€ÀT€/À€\€ÀÀ€S€ ÀX:€ /ÀÀ€\€ ÀÀÀ V€ À X:À€€7[€ 06n€ ÀÀ€À À€U€À X:/3 0,3,3,6,8,11,13,16,19,21,24,26,€€6‹À €À 7“€=:6~€ÀÀ €pr€À €€ÀÀ €prÀ €À € 7Ï€À€€À pW.ÀpWÀt65€€À€ÀT€.À€\€ ÀÀ€S€ À X:€ÀÀÀV€ÀX:€ÀÀ �mÀt6T€ÀÀ€ÀprÀ€ÀÀt€€R€€R€€ R€€ R€€ R€€ R€ €R€!€R€"€<€#€ R€$€R€$€RQ€% €&€6º€€&À& 7Å€%À%À%6­€'À€&€6߀€&À& 7ê€'À'À'6Ò€(À€&€6€€&À& 7€(À(À(6÷€)À€&€6)€€&À& 74€)À)À)66AÀ(À*ÀTS6NÀ)À+ÀTS6iÀ$d4€-À'À,€ÀTSÀ-t6�€/À€+À.€DÀ/t6¢€2€,À0€QÀ%À1À0€SÀ2t6þ€.À6l$€0À7€1À"„$À!$€,À7Q$À5$€*À37$€0À4€1À"„$€,À4Q$d€n;€91'€8À9À8t€:€2€;À:€ €<À:€ €=À:€ €>À:€ €?À:€ €@À:€ €AÀ:€ €BÀ:€ €CÀ:€ €DÀ:€ €EÀ:€ €FÀ:€ €GÀ:€ €HÀ:€ €IÀ:€ €JÀ:€ €KÀ:€ €LÀ:€ €MÀ:€ €N€2€OÀN€ €PÀN€ €QÀN€  €RÀN€ €SÀN€ €TÀN€ €UÀN€ À€7þ6üÀ$€+€D$€,€ Q$STOCK PORTFOLIO ANALYSIS$d4À$€.€l$€,€Q$CHANGE disks at this time$d4€,€Q$PROGRAMS disk should be on DRIVE A$d4À$€,€Q$DATA files disk should be loaded on DRIVE B$d4€VL� p€.€ l$€,€Q$Amount of FREE STORAGE area remaining $ÀV# bytes$d4€.€l$€,€Q$À!$dPRESS ANY KEY TO CONTINUE $d4w 7]6Uu€W€\€XÀWB:*.*Z€.€l$€,€Q$Amount of FREE SPACE on DATA disk $ÀXp# Kbytes$d4PLEASE TAKE NOTE OF DISK SPACE!$À!$d4enter y to continue n;€Y1'À$€+€D$€,€ Q$STOCK PORTFOLIO ANALYSIS$d4À$€,€Q$option list$À$d4€,€Q$0 = EXIT to CP/M$d4€,€Q$1 = CREATE stock file$d4€,€Q$2 = ADD/DELETE to stock file$d4€,€Q$3 = CHANGE entries in stock file$d4€,€Q$4 = HISTORICAL performance summary$d4€,€Q$5 = UPDATE weekly stock prices$d4€,€Q$6 = TIME-SERIES regressions$d4€,€Q$7 = BUY/SELL FILE entry$d4€,€Q$8 = STOCK SPLIT entry$d4€,€Q$9 = RISK/RETURN file sort$d4À$€.€l$€,€ Q$À!$dSELECT OPTION NUMBER: n;€":'À€76<)À€ 7+6<)À€ ^96L6R6X6^6n6~6Ž6”6šX6üÇ6üª6üA:STKPRICEy6üA:STKPRICEy6üA:STKGRAPHy6ü)à6ü a6üA:STKGRAPHy6ü€ZSTOCK FILE CHANGE PROGRAM€[enter stock name for data changes€\Fø€]YÀ]Y7 `À$€+€D$€,€Q$ÀZ$d4À$€,€Q$STOCK NAME:$d4À$€,€Q$INSTRUCTIONS:$d4€^€3€€4€€5À[€6€€7€¥€ ` 6B:STKFIL01.DAT€P€ €€€j€ ` Ù€_€€7 Ù€_À_€:œÀ^À_À<€!€\€7 Î6 Ö6 Ö€`À_6 —6 £€.€ l$€,€Q$match not found$d4continue...? y or n?n;€a1'€aÀasÀaY7 56 € @6 6data file B:STKFIL01.DAT not found$d4check disk in drive B$d4enter y to continuen;€a1'u6 €À`<€_À`€.€l$€0€€1À"„$€,€Q$À_À<€!$d4€0€€1À"„$€,€Q$À_À=€!$d4€,€Q$À_À;€!p#d4€,€Q$À_À?€!$d4€,€Q$À_À@€!#d4€,€Q$À_ÀA€!#d4€,€Q$À_ÀH€!$d4€,€Q$À_ÀL€!#d4À\T7 ui€_À`€ À`%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€ @€.€ l$d€0€€1À"„$d4€&€6 €€&À& 7 €0€€1À"„$d46 ü€]€3€€4€,€5input another stock? y or n?€6€ €7€¥€]À]s6þ€ZSTOCK SPLIT PROGRAM€[enter stock name that split€\TøÀ^À`À<€!€\€7 ¹€ @€.€ l$€,€Q$IS THIS THE CORRECT STOCK TO UPDATE ?$d4€,€Q$À!$dy or n?n;€a1'Àax7 6üÀay7 /6 26 26 ad4enter the split factor as a fraction$d4for example, if the stock splits 2 for 1$d4your present holdings double, the factor$d4is 2.00$d4if the split is 3 for 2, factor = 1.50$d4d4if a stock dividend is declared rather than$d4a split, enter the multiplicative factor$d4for example, for a 5% stock dividend,$d4the factor is 1.05$d4d4ENTER STOCK SPLIT FACTOR : n;€b"'d4you have entered $Àb# as the split factor$d4enter y/n if this is correct/incorrect n;€Y1'€YÀYsÀYn7)6�B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j€cÀ`€€Àc%€d)€e)>€dÀdÀb€fÀdW€gÀf€S€dÀgX€eÀeÀb€hÀeW€iÀh€S€eÀiX€Àc%Àd+Àe+?€ À`%€j):€^*€k*€l*€m*€n)€o)€p):€q)>€jÀjÀbpr€ À`%Àjp+À^,Àk,Àl,Àm,Àn+Ào+Àpp+Àq+?€@€ @€r€Àr€^96:6N6c6x6Ž62€sB:DAYHST.DAT6£€sB:WEEKHST.DAT6£€sB:MONTHST.DAT6£€sB:QUARTHST.DAT6£€sB:YEARHST.DAT6£€`Às€€€€€j€`$€t€€7€Àt%€u):>€vÀtÀ`€€Àv%€e)>€eÀeÀb€hÀeW€iÀh€S€eÀiX€Àv%Àe+?€tÀtÀu€6½€rÀr€6"€@€rÀr€6"€r€Àr€^96P6^6m6|6Œ6ÀwDAYHST6›€wWEEKHST6›€wMONTHST6›€wQUARTHST6›€wYEARHST6›€`Œ€sB:Àw.DAT€xB:Àw.$$$€yB:Àw.BAKÀs€€€€€jÀx€€€€€k€Ày-€`—€7Œ€&€z)>€&Àz+?€&€u):>€&Àu€p+?€&€{)>€&À{+?€_€À_À|€7V€&€e)>€&Àe+?€_À_€60€&€p+?€_À|€À_Àu7‰€&€e)>€&Àe+?€_À_€6f6ó€rÀr€68€@€@€eÀyÀsY 7¬6¸ÀsÀxY 7¸6¸€rÀr€68€r€Àr€^96á6ï6þ6 66W€wDAYHST6,€wWEEKHST6,€wMONTHST6,€wQUARTHST6,€wYEARHST6,€` €sB:Àw.DAT€xB:Àw.$$$€yB:Àw.BAKÀs€€€€€jÀx€€€€€k€Ày-€`+€7 €&€z)>€&Àz+?€&€u):>€&Àu€p+?€&€{)>€&À{+?€_€À_À`€7ç€&€e)>€&Àe+?€_À_€6Á€&€e)>€_À`€À_Àu€7€&€e)>€&Àe+?€_À_€6÷6„€rÀr€6É€@€@€eÀyÀsY 7@6LÀsÀxY 7L6L€rÀr€6É€€€y2€ `B:STKFIL01.DAT€€ €€€jFILE B:STKFIL01.DAT ALREADY EXISTS$d4 do you want to continue? y or n? n;€Y1'ÀYn7†@old file will be written to B:STKFIL01.BAK$d4B:STKFIL01.BAKB:STKFIL01.DATY€7<6d4UNABLE TO RENAME OLD DATA FILE TO BACKUP$d4enter name for old stock file: 5 characters n;€}1'€~B:À}sFIL.DATÀ~B:STKFIL01.datY€7Ò6>do you want to continue? y or n? n;€Y1'ÀYn7B:STKFIL01.DAT€P€ €€€kÀy7`€À€<Q]À$€+€D$€,€Q$STOCK PURCHASE DATA$d4À$€,€Q$STOCK NAME:$d4€,€Q$EXCHANGE:$d4€,€Q$NUMBER SHARES:$d4€,€Q$PURCHASE DATE:$d4€,€Q$TOTAL COST:$d4€,€Q$COMMISSION:$d4€,€Q$SYMBOL:$d4€,€Q$DIVIDEND:$d4À$€,€Q$INSTRUCTIONS:$d4–Ö)u¾Kˆ€.€ l$€0€€1€<„$€,€Q$SELECT FIELD TO BE CORRECTED$d4€,€Q$0 = no changes$d4€,€Q$1 = stock name 5 = total purchase cost$d4€,€Q$2 = stock exchange 6 = commission charges$d4€,€Q$3 = number of shares 7 = stock symbol$d4€,€Q$4 = date purchased 8 = annual dividend$d4d4€,€Q$À!$dWHICH FIELD DO YOU WANT TO CHANGE?n;€":'À€À€ 7<À$€0€€1À"„$€,€Q$dENTER A FIELD BETWEEN 0 AND 8: n;€":'6åÀ€7H6·À€7’€.€ l$€0€€1À"„$d4€&€6€€&À& 7’€0€€1À"„$d46rÀ´b€^96–6Ö6)6u6¾66K6ˆ6i€,€Q$À!$dare you sure?n;€a1'ÀayÀan 71À$€0€€1À"„$€,€Q$À!$denter y for yes or n for non;€a1'6ÚÀ$€0€€1À"„$d4Àay7OÀan7\6i€_À:«€.€ l$€0€€1À"„$d4€&€6“€€&À& 7¦€0€€1À"„$d46†€.€ l$d4€€3€€4€,€5input another stock? y or n?€6€ €7€¥2Àn7ú6]€À€€ 8€ 76]€ @B:STKFIL01.DAT€P€ €€€j€ `]€7D€ &€€):>62€�A:€‚STKBASEÀ�À‚y6 € @B:STKFIL01.DAT€€ €€€j€ƒ€6‘À€ƒÀƒ 7ë€ &ÀƒÀ;€!):ÀƒÀ<€!*ÀƒÀH€!*ÀƒÀ=€!*ÀƒÀ?€!*ÀƒÀA€!)ÀƒÀ@€!)ÀƒÀU€!):ÀƒÀL€!)>6„€ @€xB:STKFIL01.BAK€yB:STKFIL01.DATÀxÀyY 7 6#6Lunable to rename oldfile to BAK file$d4# B:STKFIL01.DAT€P€ €€€k€&€6}À€&À& 7Ü€ƒÀ&ÀU€!€ &ÀƒÀ;€!p+ÀƒÀ<€!,ÀƒÀH€!,ÀƒÀ=€!,ÀƒÀ?€!,ÀƒÀA€!+ÀƒÀ@€!+Àƒp+ÀƒÀL€!+?6p€ @B:STKPRICE.DAT€€€€€kB:STKPRICE.BAK€€€€€k4p:±€&Àp+À„,À„,?:·€_€6=À€_À_ 7f€&À_ÀI€!+À_ÀI€!+?À_ÀJ€!À_ÀI€!60€&À_ÀI€!+À_ÀI€!+?À_ÀJ€!À_ÀI€!:´€@€@€9€3€ €4€€5enter name of stock€6€ €7€¥ÀÀ<€!À9€S€l€3€€4€€5enter exchange: NYSE, AMEX, OTC or OTHER€6€ €7€¥ÀÀ=€!Àls€…€3€€4€€5enter number of shares purchased€6€ €7€¥ÀÀ;€!À…X:ÀÀ?€!€3€€4€€5enter date: month/day/year purchased€6€ €7€¥€†€3€€4€€5enter total purchase cost€6€ €7€¥ÀÀ@€!À†X€‡€3€€4€€5enter total commission charges€6€ €7€¥ÀÀA€!À‡X€k€3€€4€€5ENTER STOCK SYMBOL€6€ €7€¥ÀÀH€!Àks€ˆ€3€€4€€5enter stock dividend€6€ €7€¥ÀÀL€!ÀˆXÀ$€+€D$€,€Q$STOCK ADD/DELETE PROGRAM$d4€+€D$€,€Q$0 = return to main menu$d4€,€Q$1 = ADD to stock file$d4€,€Q$2 = DELETE stock from file$d4À$€,€Q$INSTRUCTIONS: enter menu selection$d4€,€Q$À!$d and hit returnn;€":'À€7 å6üÀ õb€^96 ö6'u€y2Ày7't! 6"M€`!L€ `!¬B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j6" no such file: B:STKPRICE.DAT exists$d4check disk on DRIVE B$d4enter y to resumen;€a1'u6"Lno such file: B:STKFIL01.DAT exists$d4check disk on DRIVE B$d4enter y to resumen;€a1'u6"L€`"€ `"':¢:¨:¥€‰À:Ÿ€@€ @B:STKFIL01.BAK€P€ €€€k:®€ @€À€€ŠÀ€ÀŠÀJ€!ÀÀJ€!ÀŠÀI€!ÀÀI€!<QÀ$d4€.€ l$€,€Q$INSTRUCTIONS:$d4€,€Q$À!$ENTER current stock price for :$ÀÀ<€!$d4€n;ÀÀI€!"'ÀÀJ€!ÀÀI€!# 6#逋€€_€6##À€_À_ 7#BÀ_À<€!TÀ‹7#?€‹À_À<€!T6#€_€6#WÀ€_À_ 7#«À_ÀF€!À_À<€!sÀ_ÀF€!TÀ‹€7#’À_ÀF€!À_ÀF€!zzzzÀ_ÀF€!À_ÀF€!À‹€S6#J€|€€_€6#ÈÀ€€_À_ 7#èÀÀF€!À_ÀF€!7#å€|À|€6#¸ÀÀ<€!$ is to be added after $À|€À<€!$d4 in the $À|p# position $d4B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€k:±€_€€&€À_À|€7%À_ÀE€!À_€ À&%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€À&€%À_ÀI€!+À_ÀJ€!+?€_À_€€&À&€6$vÀÀE€!À_€_À€ À&%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€À&€%À_ÀI€!+À_ÀJ€!+?€_À|€&À&€À_À€7&FÀ_ÀE€!À_€ À&%À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€À&€%À_ÀI€!+À_ÀJ€!+?€_À_€€&À&€6%§€_ÀŠ€À&€%À_ÀI€!+À_ÀJ€!+?€@€ @À$€.€l$À!$d4UPDATING HISTORICAL PRICE FILES FOR LATEST$d4 STOCK ADDITION ... you may wish to do something$d4 else for the next few minutes ...$d43À$€.€ l$€,€Q$INSTRUCTIONS:$d4€€3€€4€,€5input another stock? y or n?€6€ €7€¥26 ý! €ZSTOCK DELETION PROGRAM€[enter stock name to be deleted€\TøÀ^À`À<€!€\€7'Ù€ @6'Ú€.€ l$€,€Q$IS THIS THE CORRECT STOCK TO DELETE ?$d4€,€Q$À!$dy or n?n;€a1'Àay7(C6(F6(F6'x€`(†`(âB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j:¢€_€À_À`7(®:¥:œ€_À_€À_ÀE€!À_6(Š€_À`À_À‰€7(Ú:¥:œ€_À_€À_ÀE€!À_6(³€_À‰:¥€@€ @€`)8€ `)8B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j€À‰€:®:±:·:´€@€ @À$€.€l$À!$d4UPDATING HISTORICAL PRICE FILES FOR LATEST$d4 STOCK DELETION ... you may wish to do something$d4 else for the next few minutes ...$d4ÄÀ$€+€D$€,€ Q$STOCK TRANSACTION FILE$d4À$d4€,€Q$0 = return to main menu$d4€,€Q$1 = ADD to transaction file$d4€,€Q$2 = ORIGINAL CREATION OF FILE$d4À$€,€Q$INSTRUCTIONS: enter menu selection$d4€,€Q$À!$d and hit returnn;€":'À€7+6üÀ+b€^96+96+€Œ€€�yB:TRANSACT.DAT€P€€€€k+¥€Œ€€�yB:TRANSACT.DAT€P€€€€j€`+¡À�y7+œ€&€j):€^*€Ž)€l*€m*€n)€o)€k*>€ŒÀŒ€6+b€€+¥À�y70ð+¹,Õ0À$€+€D$€,€Q$STOCK PURCHASE DATA$d4À$€,€Q$STOCK NAME:$d4€,€Q$BOUGHT/SOLD?:$d4€,€Q$NUMBER SHARES:$d4€,€Q$TRADE DATE:$d4€,€Q$TOTAL COST:$d4€,€Q$COMMISSION:$d4€,€ Q$SYMBOL:$d4€,€Q$BUY/SELL PRICE:$d4À$€,€Q$INSTRUCTIONS:$d41Á0ô22G2Š2Ï31}€.€ l$€0€€1À"„$€,€Q$SELECT FIELD TO BE CORRECTED$d4€,€Q$0 = no changes$d4€,€Q$1 = stock name $5 = total purchase cost$d4€,€Q$2 = bought/sold $6 = commission charges$d4€,€Q$3 = number of shares $7 = stock symbol$d4€,€Q$4 = date purchased/sold $8 = price per share$d4d4€,€Q$À!$dWHICH FIELD DO YOU WANT TO CHANGE?n;€":'À€À€ 7.ÔÀ$€0€€1À"„$€,€Q$dENTER A FIELD BETWEEN 0 AND 8: n;€":'6.}À€7.à6/_À€7/_€.€ l$€0€€1À"„$d4€&€6/€ €&À& 7/*€0€€1À"„$d46/ €0€€1À"„$d4À/\b€^961Á60ô6262G62Š62Ï6361}6,í€,€Q$À!$dare you sure?n;€a1'ÀayÀan 7/ÙÀ$€0€€1À"„$€,€Q$À!$denter y for yes or n for non;€a1'6/‚Àay7/æ60Àan70À$€0€€1À"„$d4€0€€1À"„$d46.D€ƒÀ€&ÀƒÀ;€!p+ÀƒÀ<€!,ÀƒÀI€!+ÀƒÀ=€!,ÀƒÀ?€!,ÀƒÀA€!+ÀƒÀ@€!+ÀƒÀH€!,?€.€ l$€0€€1À"„$d4€&€60—€€&À& 70ª€0€€1À"„$d460Š€�€3€€4€,€5input another purchase/sell? y or n?€6€ €7€¥6+¥€@€l€3€€4€€5enter B for BUY, S for SELL, SPL for SPLIT€6€ €7€¥ÀÀ=€!ÀlsÀÀ=€!B71c€�boughtÀÀ=€!S71|€�sold€�€3€€4€€5enter price per share À�€6€ €7€¥ÀÀI€!À�X€9€3€ €4€€5enter name of stock€6€ €7€¥ÀÀ<€!À9€S€…€3€€4€€5enter number of shares À�€6€ €7€¥ÀÀ;€!À…X:ÀÀ?€!€3€€4€€5enter date: month/day/year À�€6€ €7€¥€†€3€€4€€5enter total value of trade€6€ €7€¥ÀÀ@€!À†X€‡€3€€4€€5enter total commission charges€6€ €7€¥ÀÀA€!À‡X€k€3€€4€€5ENTER STOCK SYMBOL€6€ €7€¥ÀÀH€!Àks€‘€€ €’€€ €“€€À‘€!€€À’€!À:À“€74o€”À“À‘€!€•À“À’€!€“À“€À”À•74l€_À”€&À•€–€À_À&746À_ÀU€!ÀF€!À&ÀU€!ÀF€!74€—À_ÀU€!À_ÀU€!À&ÀU€!À&ÀU€!À—€–À–pDÀ–€74+€_À_€643€&À&€63ÀÀ_€À•74B€“À“€À“À‘€!À_€À“À’€!À•€•À_€63§63€À$d4enter date of current stock prices: mo/dy/yr$d4€n;€„1'€˜€€™€p€š€p€›€pÀ$d48Ñ€_À˜64ãÀ€_À_ 75k€.€l$d4€&€65€€&À& 75€0€€1À"„$d464ö€.€l$INSTRUCTIONS: ENTER stock price for $À_À<€!$À!$d4€n;À_ÀI€!"'8Ñ9™64Ö€_€65€À€_À_ 76€œÀ_À;€!À_ÀJ€!p€šÀšÀœ€�À_À;€!À_ÀI€!p€›À›À�À_ÀK€!À�À_ÀB€!À�Àœ€™À™À_ÀB€!Àœ€p75ùÀ_ÀC€!€p66À_ÀC€!À_ÀB€!Àœ€dp65sÀš€p76&€ž€p662€žÀ™Àš€dp€`6H€&À_ÀJ€!)€Ÿ)>À_À<€!S&P 500€.€l$€0€€1À"„$d4€0€€1À"„$d4€.€l$INSTRUCTIONS: ENTER stock price for $À_À<€!$À!$d4€n;À_ÀI€!"'À_ÀB€!À_ÀI€!À_ÀJ€!À_ÀJ€!€p77À_ÀC€!€p67"À_ÀC€!À_ÀB€!À_ÀJ€!€dpd4You now have a chance to correct input errors$d4any price changes ? (y/n)?n;€Y1'ÀYnÀYN 77Ž68Ñenter number of stock for price changen;€ ":'€¡À À;€!À ÀI€!pprice for $À À<€!$ is $À ÀI€!#d4enter correct price n;À ÀI€!"'€œÀ À;€!À ÀJ€!p€�À À;€!À ÀI€!p€›À›À�À¡À ÀK€!À�À ÀB€!À�Àœ€™À™À ÀB€!À¡ÀœÀœ€p78˜À ÀC€!€p68¯À ÀC€!À ÀB€!Àœ€dpÀš€p78€ž€p68΀žÀ™Àš€dp67VÀ$d4€&€68뀀&À& 78þ€0€€1À"„$d468ÞÀ$d4€J ***** STOCK PRICE UPDATE *****$d4d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4À_€79¾€.€€À_€€8l$d469Ô€.€l$d4€.€ l$d4€¢À_ÀI€!À_ÀJ€! ### / stock name / ##.### ##.### ###.###cÀ_p#5À_À<€!$5À_ÀJ€!#5À_ÀI€!#5À¢#d4€&Àp+À„,À£,?€_€6:hÀ€_À_ 7:�€&À_ÀI€!+À_ÀJ€!+?6:[€&À_ÀI€!+À_ÀJ€!+?€@6:º6;6;.6;@6;W6;s6;Ë6;ç6;ö6< € &À_À;€!):À_À<€!*À_ÀH€!*À_À=€!*À_À?€!*À_ÀA€!)À_À@€!)À_ÀE€!):À_ÀL€!)>€_€6;'À€_À_ 7;-:œ6;€&€):€„*€£*>€&À_ÀI€!)À_ÀJ€!)>€_€6;lÀ€_À_ 7;r:¥6;_€ &À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?€_€6;àÀ€_À_ 7;æ:«6;Ó€&Àp+À„,À£,?€&À_ÀI€!+À_ÀJ€!+?€_€6<"À€_À_ 7<(:´6<€number STOCK NAME OLD PRICE€›À›À�À¡À ÀK€!À�À ÀB€!À�Àœ€™À™À ÀB€!À¡ÀœÀœ€p78˜À ÀC€!€p68¯À ÀC€!À ÀB€!Àœ€dpÀš€p78€ž€p68΀žÀ™Àš€dp67VÀ$d4€&€68뀀&À& 78þ€0€€1À"„$d468ÞÀ$d4€J ***** STOCK PRICE UPDATE *****$d4d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4À_€79¾€.€€À_€€8l$d469Ô€.€l$d4€.€ l$d4€¢À_ÀI€!À_ÀJ€! ### / stock name / ##.### ##.### ###.###cÀ_p#5À_À<€!$5À_ÀJ€!#5À_ÀI€!#5À¢#d4€&Àp+À„,À£,?€_€6:hÀ€_À_ 7:�€&À_ÀI€!+À_ÀJ€!+?6:[€&À_ÀI€!+À_ÀJ€!+?€@6:º6;6;.6;@6;W6;s6;Ë6;ç6;ö6< € &À_À;€!):À_À<€!*À_ÀH€!*À_À=€!*À_À?€!*À_ÀA€!)À_À@€!)À_ÀE€!):À_ÀL€!)>€_€6;'À€_À_ 7;-:œ6;€&€):€„*€£*>€&À_ÀI€!)À_ÀJ€!)>€_€6;lÀ€_À_ 7;r:¥6;_€ &À_À;€!p+À_À<€!,À_ÀH€!,À_À=€!,À_À?€!,À_ÀA€!+À_À@€!+À_ÀE€!p+À_ÀL€!+?1$1.0$9.99$0.99$10.5$21.0$0.75$0.5$0.25$61444$64133$61440$65535$*h]~~€€c€ €€c€ €€c€ €€c€ €€c€ € €c€ € €c€ 6^€À À €À prÀ € ÀÀ t€€R€€R€€ R€€ R€€ R€€ R€€R€€R€€<€€ R€€R€€R€ €€6À€€À 7Ë€ÀÀ6³€À€€6倀À 7ð€ÀÀ6Ø€À€€6 €€À 7€ÀÀ6ý€À€€6/€€À 7:€ÀÀ6"6GÀÀÀTS6TÀÀ ÀTS6oÀ$d4€"ÀÀ!€ÀTSÀ"t6‡€$À€ À#€JÀ$t6¨€'€!À%€WÀÀ&À%€SÀ't6€#À+r$€%À,€&ÀŠ$À$€!À,W$À*$€À(=$€%À)€&ÀŠ$€!À)W$d€n;€.1'€-À.À-tu€€À€7>À€ 7"‡€/A:€0STKBASEÀ/À0y6\B:STKPRICE.DAT€€€€€j€&€):€1*€2*>€@€`À$€ €J$€!€W$ALPHA AND BETA CALCULATION FOR PORTFOLIO$d4À$€!€W$option list$À$d4€!€W$ 0 = RETURN to main menu$d4d4€!€W$ 1 = DAILY PRICE FILE$d4€!€W$ 2 = WEEKLY PRICE FILE$d4€!€W$ 3 = MONTHLY PRICE FILE$d4€!€W$ 4 = QUARTERLY PRICE FILE$d4€!€W$ 5 = YEARLY PRICE FILE$d4À$€#€r$€!€ W$À$dSELECT FILE TO ANALYZE: n;€":'À$€#€r$€%€€&ÀŠ$À$d4FOR PRICE PLOTS ONLY, ENTER 'P': n;€31'€3À3sÀ$€#€r$€%€€&ÀŠ$À$d4FOR AUTO-SCALING OF PLOTS, ENTER 'A': n;€41'€4À4sÀ€À€ 7ŸÀ€^96´6Î6é66 €5B:DAYHST.DAT€6�p68€5B:WEEKHST.DAT€6€4p68€5B:MONTHST.DAT€6€ p68€5B:QUARTHST.DAT€6€p68€5B:YEARHST.DAT€6€p€7F€8 BETA ANALYIS OF PORTFOLIO on €9 DATE: À3P76‚6‚ UÀ5€€€€€j€`€:S&P 500€;À€€€€<€€=€€7€À=%À<À€!)>À<À€!À<À€!À<À€!À<À€!€<À<€€À€€=À=À;6µ€>€p€?€p€@€p€A€p€B€p€C€€D.B:STKFIL01.DAT€P€ €€€j€E€6]À€EÀE 7×€=€€€€ &€F):€:*€G*€H*€I*€J)€K)ÀEÀ €!):€L)>À5€€€€€j€`€<€€7€À=ÀE%€M)>ÀM€p7Ì6î€À€ÀÀ€!À<À€!ÀÀ€!ÀM€=À=À;€<À<€6«€NÀ€€@ÀN€76ÈgÀ3P7)6Èw71€OxÀORX7=€P.€ÀN€€<€6`À€<À< 7Á€QÀ<€ÀQÀ€!À<À€!ÀQÀ€!ÀQÀ€!ÀQÀ€!À<À€!ÀQÀ€!ÀQÀ€!€PÀP.ÀQÀ€!6S€RÀNp€SÀRÀ6€TÀP.ÀSÀT.7ë€T.ÀT.07ý€T.0€UÀP.ÀR€V€À€!€W€À€!€<€64ÀN€<À< 7kÀ<À€!ÀW7N€WÀ<À€!À<À€!ÀV7h€VÀ<À€!6'€WÀW€VÀV4€XÀTÀY€ZÀ[À\A€dp €>À>À]€@À@À^€?À?À_€AÀAÀ`€BÀBÀa€CÀCÀN€DÀDÀPÀE€7Ô66P€ @À3P7å€:portfolio€aÀB€]À>€^À@€_À?€`ÀA€NÀC€RÀNp€SÀRÀ6€TÀD.ÀS€UÀD.ÀRd4Ë€XÀTÀY€ZÀ[À\A€dp ó€ˆofÀ$d4À$d4À8$À5$d4À9$À1$d4 stand stand stand -correlation- ------- RETURNS PER PERIOD-------------- reward$d4 STOCK no.of alpha beta error error error r-square r geometric arith. standard annual to-risk a/b$d4 no. name points intrcpt slope estimate  average average deviatn min max yield ratio ratio$d4€b--------- --------- --------- --------- --------- --------- --------- --------- --------- --------- --------- --------- ---------Àb$d4À7T7 ¬B:BETA.DAT€€ €€€k€ˆof€c ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##ÀccÀEp#5À:$5ÀNp#5À[#5À\#5Àd#5Àe#5Àf#5Àg#5Àh#5ÀU#5Ài#5ÀY#5ÀV#5ÀW#5ÀT#5ÀX#5ÀZ#d4€ ÀE€ €B€7 ¶d4€ &ÀEp+À:,ÀNp+À[+À\+Àd+Àe+Àf+Àg+Àh+ÀU+Ài+ÀY+ÀV+ÀW+ÀT+ÀX+ÀZ+?€ˆof€j ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##ÀjcÀEp#5À:$5ÀNp#5À[#5À\#5Àd#5Àe#5Àf#5Àg#5Àh#5ÀU#5Ài#5ÀY#5ÀT#5ÀX#5ÀZ#d4€V€p€W€p€ &ÀEp+À:,ÀNp+À[+À\+Àd+Àe+Àf+Àg+Àh+ÀU+Ài+ÀY+ÀV+ÀW+ÀT+ÀX+ÀZ+?€ @g€kÀN€€l€Àk€474€mÀk69€m€4Àk€47E6M€lÀk€4€n€€oÀl6gÀk€oÀo 7‚€nÀn€ÀnÀ€!ÀoÀ€!6Z€V€À€!€W€À€!€o€6­Àm€oÀo 7äÀoÀ€!ÀW7Ç€WÀoÀ€!ÀoÀ€!ÀV7á€VÀoÀ€!6 €pÀWÀVÀ4A7ù6õÀW.76+€W.€q10€r 7€s 5€t 26TÀW€p786]€W€p€q20€r15€s10€t 56TÀW€*p7j6�€W€*p€q40€r30€s20€t106TÀW€Tp7œ6Á€W€Tp€q80€r60€s40€t206TÀW€¨p7Î6õ€W€¨p€q160€r120€s80€t406T€uÀWÀV.€v.Àu€wÀV€qÀWW€S€rÀVÀp.W€S€sÀVÀp.W€S€tÀVÀp.W€S€xÀVW€S6s€uÀW.€v.Àu€w€p€x 0€o€6ˆÀm€oÀo 7§€yÀoÀ€!ÀwÀvÀoÀ €!Àyr6{g€z--------------------------------------------------À$€ JÀ:$d4€#€r$€!€W$Àz$d4€#€r$€!€W$Àz$d4€#€ r$€!€W$Àz$d4€#€r$€!€W$Àz$d4€#€r$Àq$d4€#€r$Àr$d4€#€ r$Às$d4€#€r$Àt$d4€#€r$Àx$À$d4€{. €o€6ª€€oÀo 7瀀Ào€ À€ €B€7΀|€ 6Ó€|€ €{À{€€pÀ{À|:l6�€o€6ü€4€oÀo 71€ Ào€ €B€7€|€ 6€|€€{À{€pÀ{À|:l6ï€#€r$€ J5$ 10$ 15$ 20$ 25$ 30$ 35$ 40$ 45$ 50$À$d4€{. €|€€n€6®Àm€nÀn 7€oÀnÀ €!€€6ÎÀo€À 7ûÀo€7Ú6âÀ{À|:l€{À{€€pÀ{. 7ø66Á€{. ÀnpÀ{. 766¡error in graphics$À{#À|p#d4€]€p€_€p€`€p€^€p€a€p€<€6gÀN€<À< 7Ë€]À]À<À€!€^À^À<À€!À<À€!€_À_À<À€!€`À`À<À€!À<À€!€aÀaÀ<À€!À<À€!6Z€}À]ÀNp€iÀ_ÀNp€~ÀaÀ}ÀiÀNp€À^À}À}ÀNp€€À`ÀiÀiÀNp€\À~À€[ÀiÀ\À}€�ÀÀN€p€‚À€ÀN€p€ƒÀ�I€YÀ‚I€fÀ€À\À~ÀN€pI€eÀfÀ^ÀNÀ}pÀ}I€dÀeÀ^ÀNpI€gÀ\À~À€€hÀgI€„€2€…À„€ €†À„€ €‡À„€ €ˆÀ„€ €‰À„€ €ŠÀ„€ €‹À„€ €ŒÀ„€ €�À„€ €ŽÀ„€ €�À„€ €�À„€ €‘À„€ €’À„€ €“À„€ €”À„€ €•À„€ €–À„€ €—À„€ € `ƒ€7TÀ$€ €J$€!€ W$READING IN BETA FILE$d4B:STKPRICE.DAT€€€€€j€&€):€1*€2*>€@B:BETA.DAT€€ €€€j€;À€€À€€<€6×À;€<À< 7}€ &€o):À<À…€!*À<À†€!):À<À‡€!)À<Àˆ€!)À<À‰€!)À<ÀŠ€!)À<À‹€!)À<ÀŒ€!)À<À�€!)À<ÀŽ€!)À<À�€!)À<À�€!)À<À‘€!)À<À’€!)À<À“€!)À<À”€!)À<À•€!)>6Ê€ @6†€ @À$€ €J$€!€W$HISTORICAL PORTFOLIO PERFORMANCE SUMMARY OPTION LIST$d4€ €J$€!€ W$SORTING OPTIONS:$À$d4€J0 = return to main menu$d4d4€J1 = on total risk/return ratio$d4€J2 = on alpha/beta ratio$d4€J3 = by alpha$d4€J4 = by beta$d4€J5 = by geometric average return$d4€J6 = by standard deviation$d4À$€!€ W$À$denter option number for sort:n;€":'À€7À€^96,6x6½6 6H6•€˜total risk/return ratio€€6]À;€À 7uÀÀ–€!ÀÀ”€!€dp:6P6瀘alpha/beta ratio€€6¢À;€À 7ºÀÀ–€!ÀÀ•€!ƒèp:6•6瀘alpha - return variable€€6îÀ;€À 7ÀÀ–€!ÀÀ‡€!§p:6á6瀘beta value€€6-À;€À 7EÀÀ–€!ÀÀˆ€!€dp:6 6瀘geometric average return€€6zÀ;€À 7’ÀÀ–€!ÀÀŽ€!§p:6m6瀘standard deviation of returns€€6ÌÀ;€À 7äÀÀ–€!ÀÀ�€!§p:6¿6瀙yes€„À;€€6 À„€À 7ÀÀ—€!À6üA€5B:BETA.DAT€8HISTORICAL SUMMARY OF PORTFOLIO from: €9SORTED BY À˜ DATE: €c ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##€j ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.## U€<€6¤À;€<À< 7<€À<À—€!ÀÀ;7oÀccÀ€ÀÀ6&6KÀÀÀTS6XÀÀ ÀTS6sÀ$d4€"ÀÀ!€ÀTSÀ"t6‹€$À€ À#€NÀ$t6¬€'€!À%€[ÀÀ&À%€SÀ't6€#À+v$€%À,€&ÀŽ$À$€!À,[$À*$€À(A$€%À)€&ÀŽ$€!À)[$d€n;€.1'€-À.À-tu€€À€7BÀ€ 7&‹€/A:€0STKBASEÀ/À0y6`B:STKPRICE.DAT€€€€€j€&€):€1*€2*>€@€`À$€ €N$€!€[$ALPHA AND BETA CALCULATION FOR PORTFOLIO$d4À$€!€[$option list$À$d4€!€[$ 0 = RETURN to main menu$d4d4€!€[$ 1 = DAILY PRICE FILE$d4€!€[$ 2 = WEEKLY PRICE FILE$d4€!€[$ 3 = MONTHLY PRICE FILE$d4€!€[$ 4 = QUARTERLY PRICE FILE$d4€!€[$ 5 = YEARLY PRICE FILE$d4À$€#€v$€!€ [$À$dSELECT FILE TO ANALYZE: n;€":'À$€#€v$€%€€&ÀŽ$À$d4FOR PRICE PLOTS ONLY, ENTER 'P': n;€31'€3À3sÀ$€#€v$€%€€&ÀŽ$À$d4FOR AUTO-SCALING OF PLOTS, ENTER 'A': n;€41'€4À4sÀ€À€ 7£À€^96¸6Ò6í66$€5B:DAYHST.DAT€6�p6<€5B:WEEKHST.DAT€6€4p6<€5B:MONTHST.DAT€6€ p6<€5B:QUARTHST.DAT€6€p6<€5B:YEARHST.DAT€6€p€7F€8 BETA ANALYIS OF PORTFOLIO on €9 DATE: À3P7ƒ6†6† YÀ5€€€€€j€`€:S&P 500€;À€€€€<€€=€€7 €À=%À<À€!)>À<À€!À<À€!À<À€!À<À€!€<À<€€À€€=À=À;6¹€>€p€?€p€@€p€A€p€B€p€C€€D.B:STKFIL01.DAT€P€ €€€j€E€6aÀ€EÀE 7Û€=€€€€ &€F):€:*€G*€H*€I*€J)€K)ÀEÀ €!):€L)>À5€€€€€j€`€<€€7€À=ÀE%€M)>ÀM€p7Ð6ò€À€ÀÀ€!À<À€!ÀÀ€!ÀM€=À=À;€<À<€6¯€NÀ€€@ÀN€76ÌgÀ3P7-6Ìw75€OxÀORX7A€P.€ÀN€€<€6dÀ€<À< 7Å€QÀ<€ÀQÀ€!À<À€!ÀQÀ€!ÀQÀ€!ÀQÀ€!À<À€!ÀQÀ€!ÀQÀ€!€PÀP.ÀQÀ€!6W€RÀNp€SÀRÀ6€TÀP.ÀSÀT.7ï€T.ÀT.07€T.0€UÀP.ÀR€V€À€!€W€À€!€<€68ÀN€<À< 7oÀ<À€!ÀW7R€WÀ<À€!À<À€!ÀV7l€VÀ<À€!6+€WÀW€VÀV8€XÀTÀY€ZÀ[À\A€dp Æ€>À>À]€@À@À^€?À?À_€AÀAÀ`€BÀBÀa€CÀCÀN€DÀDÀPÀE€7Ø6 6T€ @À3P7é€:portfolio€aÀB€]À>€^À@€_À?€`ÀA€NÀC€RÀNp€SÀRÀ6€TÀD.ÀS€UÀD.ÀRd4Ï€XÀTÀY€ZÀ[À\A€dp ÷€ˆofÀ$d4À$d4À8$À5$d4À9$À1$d4 stand stand stand -correlation- ------- RETURNS PER PERIOD-------------- reward$d4 STOCK no.of alpha beta error error error r-square r geometric arith. standard annual to-risk a/b$d4 no. name points intrcpt slope estimate  average average deviatn min max yield ratio ratio$d4€b--------- --------- --------- --------- --------- --------- --------- --------- --------- --------- --------- --------- ---------Àb$d4À7T7 °B:BETA.DAT€€ €€€k€ˆof€c ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##ÀccÀEp#5À:$5ÀNp#5À[#5À\#5Àd#5Àe#5Àf#5Àg#5Àh#5ÀU#5Ài#5ÀY#5ÀV#5ÀW#5ÀT#5ÀX#5ÀZ#d4€ ÀE€ €B€7 ºd4€ &ÀEp+À:,ÀNp+À[+À\+Àd+Àe+Àf+Àg+Àh+ÀU+Ài+ÀY+ÀV+ÀW+ÀT+ÀX+ÀZ+?€ˆof€j ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##ÀjcÀEp#5À:$5ÀNp#5À[#5À\#5Àd#5Àe#5Àf#5Àg#5Àh#5ÀU#5Ài#5ÀY#5ÀT#5ÀX#5ÀZ#d4€V€p€W€p€ &ÀEp+À:,ÀNp+À[+À\+Àd+Àe+Àf+Àg+Àh+ÀU+Ài+ÀY+ÀV+ÀW+ÀT+ÀX+ÀZ+?€ @g€kÀN€€l€Àk€478€mÀk6=€m€4Àk€47I6Q€lÀk€4€n€€oÀl6kÀk€oÀo 7†€nÀn€ÀnÀ€!ÀoÀ€!6^€V€À€!€W€À€!€o€6±Àm€oÀo 7èÀoÀ€!ÀW7Ë€WÀoÀ€!ÀoÀ€!ÀV7å€VÀoÀ€!6¤€pÀWÀVÀ4A7ý6ùÀW.7 6/€W.€q10€r 7€s 5€t 26XÀW€p7<6a€W€p€q20€r15€s10€t 56XÀW€*p7n6“€W€*p€q40€r30€s20€t106XÀW€Tp7 6Å€W€Tp€q80€r60€s40€t206XÀW€¨p7Ò6ù€W€¨p€q160€r120€s80€t406X€uÀWÀV.€v.Àu€wÀV€qÀWW€S€rÀVÀp.W€S€sÀVÀp.W€S€tÀVÀp.W€S€xÀVW€S6w€uÀW.€v.Àu€w€p€x 0€o€6ŒÀm€oÀo 7«€yÀoÀ€!ÀwÀvÀoÀ €!Àyr6g€z--------------------------------------------------À$€ JÀ:$d4€#€v$€!€[$Àz$d4€#€v$€!€[$Àz$d4€#€ v$€!€[$Àz$d4€#€v$€!€[$Àz$d4€#€v$Àq$d4€#€v$Àr$d4€#€ v$Às$d4€#€v$Àt$d4€#€v$Àx$À$d4€{. €o€6®€€oÀo 7뀀Ào€ À€ €B€7Ò€|€ 6×€|€ €{À{€€pÀ{À|:l6¡€o€6€4€oÀo 75€ Ào€ €B€7€|€ 6!€|€€{À{€pÀ{À|:l6ó€#€v$€ J5$ 10$ 15$ 20$ 25$ 30$ 35$ 40$ 45$ 50$À$d4€{. €|€€n€6²Àm€nÀn 7€oÀnÀ €!€€6ÒÀo€À 7ÿÀo€7Þ6æÀ{À|:l€{À{€€pÀ{. 7ü66Å€{. ÀnpÀ{. 766¥error in graphics$À{#À|p#d4€]€p€_€p€`€p€^€p€a€p€<€6kÀN€<À< 7Ï€]À]À<À€!€^À^À<À€!À<À€!€_À_À<À€!€`À`À<À€!À<À€!€aÀaÀ<À€!À<À€!6^€}À]ÀNp€iÀ_ÀNp€~ÀaÀ}ÀiÀNp€À^À}À}ÀNp€€À`ÀiÀiÀNp€\À~À€[ÀiÀ\À}€�ÀÀN€p€‚À€ÀN€p€ƒÀ�I€YÀ‚I€fÀ€À\À~ÀN€pI€eÀfÀ^ÀNÀ}pÀ}I€dÀeÀ^ÀNpI€gÀ\À~À€€hÀgI€„€2€…À„€ €†À„€ €‡À„€ €ˆÀ„€ €‰À„€ €ŠÀ„€ €‹À„€ €ŒÀ„€ €�À„€ €ŽÀ„€ €�À„€ €�À„€ €‘À„€ €’À„€ €“À„€ €”À„€ €•À„€ €–À„€ €—À„€ € `‡€7TÀ$€ €N$€!€ [$READING IN BETA FILE$d4B:STKPRICE.DAT€€€€€j€&€):€1*€2*>€@B:BETA.DAT€€ €€€j€;À€€À€€<€6ÛÀ;€<À< 7�€ &€o):À<À…€!*À<À†€!):À<À‡€!)À<Àˆ€!)À<À‰€!)À<ÀŠ€!)À<À‹€!)À<ÀŒ€!)À<À�€!)À<ÀŽ€!)À<À�€!)À<À�€!)À<À‘€!)À<À’€!)À<À“€!)À<À”€!)À<À•€!)>6΀ @6Š€ @À$€ €N$€!€[$HISTORICAL PORTFOLIO PERFORMANCE SUMMARY OPTION LIST$d4€ €N$€!€ [$SORTING OPTIONS:$À$d4€J0 = return to main menu$d4d4€J1 = on total risk/return ratio$d4€J2 = on alpha/beta ratio$d4€J3 = by alpha$d4€J4 = by beta$d4€J5 = by geometric average return$d4€J6 = by standard deviation$d4À$€!€ [$À$denter option number for sort:n;€":'À€7À€^9606|6Á6 6L6™€˜total risk/return ratio€€6aÀ;€À 7yÀÀ–€!ÀÀ”€!€dp:6T6뀘alpha/beta ratio€€6¦À;€À 7¾ÀÀ–€!ÀÀ•€!ƒèp:6™6뀘alpha - return variable€€6òÀ;€À 7 ÀÀ–€!ÀÀ‡€!§p:6å6뀘beta value€€61À;€À 7IÀÀ–€!ÀÀˆ€!€dp:6$6뀘geometric average return€€6~À;€À 7–ÀÀ–€!ÀÀŽ€!§p:6q6뀘standard deviation of returns€€6ÐÀ;€À 7èÀÀ–€!ÀÀ�€!§p:6Ã6뀙yes€„À;€€6 À„€À 7ÀÀ—€!À6E€5B:BETA.DAT€8HISTORICAL SUMMARY OF PORTFOLIO from: €9SORTED BY À˜ DATE: €c ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##€j ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.## Y€<€6¨À;€<À< 7@€À<À—€!ÀÀ;7sÀccÀ€@€`ûÀ$€ €D$€!€Q$ALPHA AND BETA CALCULATION FOR PORTFOLIO$d4À$€!€Q$option list$À$d4€!€Q$ 0 = RETURN to main menu$d4d4€!€Q$ 1 = DAILY PRICE FILE$d4€!€Q$ 2 = WEEKLY PRICE FILE$d4€!€Q$ 3 = MONTHLY PRICE FILE$d4€!€Q$ 4 = QUARTERLY PRICE FILE$d4€!€Q$ 5 = YEARLY PRICE FILE$d4À$€#€l$€!€ Q$À$dSELECT FILE TO ANALYZE: n;€":'À$€#€l$€%€€&À„$À$d4FOR PRICE PLOTS ONLY, ENTER 'P': n;€31'€3À3sÀ$€#€l$€%€€&À„$À$d4FOR AUTO-SCALING OF PLOTS, ENTER 'A': n;€41'€4À4sÀ€À€ 7™À€^96®6È6ã6þ6€5B:DAYHST.DAT€6�p62€5B:WEEKHST.DAT€6€4p62€5B:MONTHST.DAT€6€ p62€5B:QUARTHST.DAT€6€p62€5B:YEARHST.DAT€6€p€7F€8 BETA ANALYIS OF PORTFOLIO on €9 DATE: À3P7y6|6| OÀ5€€€€€j€`û€:S&P 500€;À€€€€<€€=€€7€À=%À<À€!)>À<À€!À<À€!À<À€!À<À€!€<À<€€À€€=À=À;6¯€>€p€?€p€@€p€A€p€B€p€C€€D.B:STKFIL01.DAT€P€ €€€j€E€6WÀ€EÀE 7Ñ€=€€€€ &€F):€:*€G*€H*€I*€J)€K)ÀEÀ €!):€L)>À5€€€€€j€`û€<€€7û€À=ÀE%€M)>ÀM€p7Æ6è€À€ÀÀ€!À<À€!ÀÀ€!ÀM€=À=À;€<À<€6¥€NÀ€€@ÀN€76ÂgÀ3P7#6Âw7+€OxÀORX77€P.€ÀN€€<€6ZÀ€<À< 7»€QÀ<€ÀQÀ€!À<À€!ÀQÀ€!ÀQÀ€!ÀQÀ€!À<À€!ÀQÀ€!ÀQÀ€!€PÀP.ÀQÀ€!6M€RÀNp€SÀRÀ6€TÀP.ÀSÀT.7å€T.ÀT.07÷€T.0€UÀP.ÀR€V€À€!€W€À€!€<€6.ÀN€<À< 7eÀ<À€!ÀW7H€WÀ<À€!À<À€!ÀV7b€VÀ<À€!6!€WÀW€VÀV.€XÀTÀY€ZÀ[À\A€dp ¼€>À>À]€@À@À^€?À?À_€AÀAÀ`€BÀBÀa€CÀCÀN€DÀDÀPÀE€7Î66J€ @À3P7߀:portfolio€aÀB€]À>€^À@€_À?€`ÀA€NÀC€RÀNp€SÀRÀ6€TÀD.ÀS€UÀD.ÀRd4Å€XÀTÀY€ZÀ[À\A€dp 퀈ofÀ$d4À$d4À8$À5$d4À9$À1$d4 stand stand stand -correlation- ------- RETURNS PER PERIOD-------------- reward$d4 STOCK no.of alpha beta error error error r-square r geometric arith. standard annual to-risk a/b$d4 no. name points intrcpt slope estimate  average average deviatn min max yield ratio ratio$d4€b--------- --------- --------- --------- --------- --------- --------- --------- --------- --------- --------- --------- ---------Àb$d4À7T7 ¦B:BETA.DAT€€ €€€k€ˆof€c ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##ÀccÀEp#5À:$5ÀNp#5À[#5À\#5Àd#5Àe#5Àf#5Àg#5Àh#5ÀU#5Ài#5ÀY#5ÀV#5ÀW#5ÀT#5ÀX#5ÀZ#d4€ ÀE€ €B€7 °d4€ &ÀEp+À:,ÀNp+À[+À\+Àd+Àe+Àf+Àg+Àh+ÀU+Ài+ÀY+ÀV+ÀW+ÀT+ÀX+ÀZ+?€ˆof€j ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##ÀjcÀEp#5À:$5ÀNp#5À[#5À\#5Àd#5Àe#5Àf#5Àg#5Àh#5ÀU#5Ài#5ÀY#5ÀT#5ÀX#5ÀZ#d4€V€p€W€p€ &ÀEp+À:,ÀNp+À[+À\+Àd+Àe+Àf+Àg+Àh+ÀU+Ài+ÀY+ÀV+ÀW+ÀT+ÀX+ÀZ+?€ @g€kÀN€€l€Àk€47.€mÀk63€m€4Àk€47?6G€lÀk€4€n€€oÀl6aÀk€oÀo 7|€nÀn€ÀnÀ€!ÀoÀ€!6T€V€À€!€W€À€!€o€6§Àm€oÀo 7ÞÀoÀ€!ÀW7Á€WÀoÀ€!ÀoÀ€!ÀV7Û€VÀoÀ€!6š€pÀWÀVÀ4A7ó6ïÀW.76%€W.€q10€r 7€s 5€t 26NÀW€p726W€W€p€q20€r15€s10€t 56NÀW€*p7d6‰€W€*p€q40€r30€s20€t106NÀW€Tp7–6»€W€Tp€q80€r60€s40€t206NÀW€¨p7È6ï€W€¨p€q160€r120€s80€t406N€uÀWÀV.€v.Àu€wÀV€qÀWW€S€rÀVÀp.W€S€sÀVÀp.W€S€tÀVÀp.W€S€xÀVW€S6m€uÀW.€v.Àu€w€p€x 0€o€6‚Àm€oÀo 7¡€yÀoÀ€!ÀwÀvÀoÀ €!Àyr6ug€z--------------------------------------------------À$€ JÀ:$d4€#€l$€!€Q$Àz$d4€#€l$€!€Q$Àz$d4€#€ l$€!€Q$Àz$d4€#€l$€!€Q$Àz$d4€#€l$Àq$d4€#€l$Àr$d4€#€ l$Às$d4€#€l$Àt$d4€#€l$Àx$À$d4€{. €o€6¤€€oÀo 7ကÀo€ À€ €B€7È€|€ 6Í€|€ €{À{€€pÀ{À|:l6—€o€6ö€4€oÀo 7+€ Ào€ €B€7€|€ 6€|€€{À{€pÀ{À|:l6é€#€l$€ J5$ 10$ 15$ 20$ 25$ 30$ 35$ 40$ 45$ 50$À$d4€{. €|€€n€6¨Àm€nÀn 7€oÀnÀ €!€€6ÈÀo€À 7õÀo€7Ô6ÜÀ{À|:l€{À{€€pÀ{. 7ò66»€{. ÀnpÀ{. 7 66›error in graphics$À{#À|p#d4€]€p€_€p€`€p€^€p€a€p€<€6aÀN€<À< 7Å€]À]À<À€!€^À^À<À€!À<À€!€_À_À<À€!€`À`À<À€!À<À€!€aÀaÀ<À€!À<À€!6T€}À]ÀNp€iÀ_ÀNp€~ÀaÀ}ÀiÀNp€À^À}À}ÀNp€€À`ÀiÀiÀNp€\À~À€[ÀiÀ\À}€�ÀÀN€p€‚À€ÀN€p€ƒÀ�I€YÀ‚I€fÀ€À\À~ÀN€pI€eÀfÀ^ÀNÀ}pÀ}I€dÀeÀ^ÀNpI€gÀ\À~À€€hÀgI€„€2€…À„€ €†À„€ €‡À„€ €ˆÀ„€ €‰À„€ €ŠÀ„€ €‹À„€ €ŒÀ„€ €�À„€ €ŽÀ„€ €�À„€ €�À„€ €‘À„€ €’À„€ €“À„€ €”À„€ €•À„€ €–À„€ €—À„€ € `}€7TÀ$€ €D$€!€ Q$READING IN BETA FILE$d4B:STKPRICE.DAT€€€€€j€&€):€1*€2*>€@B:BETA.DAT€€ €€€j€;À€€À€€<€6ÑÀ;€<À< 7w€ &€o):À<À…€!*À<À†€!):À<À‡€!)À<Àˆ€!)À<À‰€!)À<ÀŠ€!)À<À‹€!)À<ÀŒ€!)À<À�€!)À<ÀŽ€!)À<À�€!)À<À�€!)À<À‘€!)À<À’€!)À<À“€!)À<À”€!)À<À•€!)>6Ä€ @6€€ @À$€ €D$€!€Q$HISTORICAL PORTFOLIO PERFORMANCE SUMMARY OPTION LIST$d4€ €D$€!€ Q$SORTING OPTIONS:$À$d4€J0 = return to main menu$d4d4€J1 = on total risk/return ratio$d4€J2 = on alpha/beta ratio$d4€J3 = by alpha$d4€J4 = by beta$d4€J5 = by geometric average return$d4€J6 = by standard deviation$d4À$€!€ Q$À$denter option number for sort:n;€":'À€7À€^96&6r6·66B6�€˜total risk/return ratio€€6WÀ;€À 7oÀÀ–€!ÀÀ”€!€dp:6J6ဘalpha/beta ratio€€6œÀ;€À 7´ÀÀ–€!ÀÀ•€!ƒèp:6�6ဘalpha - return variable€€6èÀ;€À 7ÀÀ–€!ÀÀ‡€!§p:6Û6ဘbeta value€€6'À;€À 7?ÀÀ–€!ÀÀˆ€!€dp:66ဘgeometric average return€€6tÀ;€À 7ŒÀÀ–€!ÀÀŽ€!§p:6g6ဘstandard deviation of returns€€6ÆÀ;€À 7ÞÀÀ–€!ÀÀ�€!§p:6¹6မyes€„À;€€6À„€À 7ÀÀ—€!À6ö;€5B:BETA.DAT€8HISTORICAL SUMMARY OF PORTFOLIO from: €9SORTED BY À˜ DATE: €c ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##€j ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.### ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.## O€<€6žÀ;€<À< 76€À<À—€!ÀÀ;7iÀccÀÀ:€ €?À:€ €@À:€ €AÀ:€ €BÀ:€ €CÀ:€ €DÀ:€ €EÀ:€ €FÀ:€ €GÀ:€ €HÀ:€ €IÀ:€ €JÀ:€ €KÀ:€ €LÀ:€ €MÀ:€ €N€2€OÀN€ €PÀN€ €QÀN€ €RÀN€ €SÀN€ €TÀN€ €UÀN€ €€À€7ÿ6À€7 66·6ó66ó€VA:€WSTKBASEÀVÀWy6+`b:stkprice.$$$€€€€€k€`0b:stkprice.dat€€€€€j€`[b:stkprice.bak€€€€€j€ `òb:stkfil01.dat€P€ €€€j€`â*e*Ž*w*I€X€6ÏÀ€XÀX 7âÀXÀJ€!ÀXÀI€!6ÂÀXÀJ€!ÀXÀI€!ùçÀ $€€3$d4 Enter date of current stock prices: mo/dy/yr$d4€n;€Y1'€Z€€[€p€\€p€]€pÀ $d4 m€`ÉB:TEMPRICE.DAT€€€€€j€`Æ€&€^):€Y*€_*>€X€6­ÀZ€€XÀX 7Æ€&ÀXÀI€!)ÀXÀJ€!)>6�€@€XÀZ6ÞÀ€XÀX 7�€€3$d4€€6þ€€À 7€€€ÀK$d46ñ€€3$INSTRUCTIONS: ENTER stock price for $ÀXÀ<€!$À$d4€n;ÀXÀI€!"' m “ÀXÀI€!€p7~€ÀX€6‚6Ñ€X€6–À€XÀX 7)€`ÀXÀ;€!ÀXÀJ€!p€\À\À`€aÀXÀ;€!ÀXÀI€!p€]À]ÀaÀXÀK€!ÀaÀXÀB€!ÀaÀ`€[À[ÀXÀB€!À`€p7ÀXÀC€!€p6&ÀXÀC€!ÀXÀB€!À`€dp6‰À\€p7<€b€p6H€bÀ[À\€dp€`^€&ÀXÀJ€!)€c)>ÀXÀ<€!S&P 500€€3$€€€ÀK$d4€€€ÀK$d4€€€ÀK$d4€€3$INSTRUCTIONS: ENTER stock price for $ÀXÀ<€!$À$d4€n;ÀXÀI€!"'ÀXÀB€!ÀXÀI€!ÀXÀJ€!ÀXÀJ€!€p7+ÀXÀC€!€p6HÀXÀC€!ÀXÀB€!ÀXÀJ€!€dpd4You now have a chance to correct input errors$d4any price changes ? (y/n)?n;€d1'ÀdnÀdN 7´6 ÷enter number of stock for price changen;€e":'€fÀeÀ;€!ÀeÀI€!pprice for $ÀeÀ<€!$ is $ÀeÀI€!#d4enter correct price n;ÀeÀI€!"'€`ÀeÀ;€!ÀeÀJ€!p€aÀeÀ;€!ÀeÀI€!p€]À]ÀaÀfÀeÀK€!ÀaÀeÀB€!ÀaÀ`€[À[ÀeÀB€!ÀfÀ`À`€p7 ¾ÀeÀC€!€p6 ÕÀeÀC€!ÀeÀB€!À`€dpÀ\€p7 è€b€p6 ô€bÀ[À\€dp6|€:À€€6 À:€À 7 3ÀÀT€!ÀÀC€!€ prÀÀU€!À6 '»À $€ JDO YOU WANT TO PRINT TO :$d4€J CONSOLE = 1 $d4€J PRINTER = 2 $d4€J BOTH = 3 $d4€€ 3$À$d4INSTRUCTIONS: enter selection and hit returnn;€g":'Àg€7 é6 \€hOPTION 5 - PRICES UPDATED FOR THE CURRENT WEEK - NEW VALUATION€isorted by: percent increase for week™ ?gÀg€7 i6 lªÀ$d4€€6 ‡€€À 7 š€€€ÀK$d46 z€€3$€€%€ÀK$d4€€€ÀK$d4À$d4€J ***** STOCK PRICE UPDATE *****$d4 price$d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4ÀX€7 ¸€€€ÀX€€3$d46 ΀€3$d4€€ 3$d4€jÀXÀI€!ÀXÀJ€! ### / stock name / ##.### ##.### ###.###cÀXp#5ÀXÀ<€!$5ÀXÀJ€!#5ÀXÀI€!#5Àj#d4€k ## /................../ ##### ####.# ###.### ###.### ##.### #### #####.## $ % current previous price number current$d4 stock name increase increase price price increase of shares value$d4d4€X€6nÀ€XÀX 7ú€ÀXÀU€!€jÀÀI€!ÀÀJ€!ÀkcÀXp#5ÀÀ<€!$5ÀÀB€!#5ÀÀC€!#5ÀÀI€!#5ÀÀJ€!#5Àj#5ÀÀ;€!p#5ÀÀK€!#d4€ÀX€€€7÷d46ad4ÀkcÀXp#5ÀXÀ<€!$5ÀXÀB€!#5ÀXÀC€!#5ÀXÀI€!#5ÀXÀJ€!#d4€l TOTALS : ######.## ###.# ######.##d4ÀlcÀ[#5Àb#5À]#d4À $d€J ***** STOCK PRICE CHANGE ANALYSIS *****$d4d4€m## /........../ ###.### ###.## ###.## ####.# # STOCK NAME CURRENT PRICE % $$d4 PRICE change inc inc$d4-------------------------------------------------$d4d4€n€6ÛÀ€ Àn€n€€8€97Ù€€3$€€€ÀK$d€X€6€ €XÀX 7€€€ÀK$d46û€€3$d4€oÀn€ ÀÀo7<€oÀ€XÀn6QÀo€XÀX 7¾€ÀXÀU€!€jÀÀI€!ÀÀJ€!ÀmcÀXp#5ÀÀ<€!$5ÀÀI€!#5Àj#5ÀÀC€!#5ÀÀB€!#d4€ÀX€€€7»d46D€p€6ӇЀpÀp 7Ö6Æ6½€jÀXÀI€!ÀXÀJ€!d4ÀmcÀXp#5ÀXÀ<€!$5ÀXÀI€!#5Àj#5ÀXÀC€!#5ÀXÀB€!#d4d4€q PORTFOLIO : ###.## #####.##ÀqcÀb#5À[#d4€p€6~‡Ð€pÀp 7�6qB:TEMPRICE.DAT€€€€€k€&Àp+ÀY,À_,?€X€6¾À€XÀX 7×€&ÀXÀI€!+ÀXÀJ€!+?6±€@€@€@€@€ @€&Àp+ÀY,À_,?€X€6 À€XÀX 7#€&ÀXÀI€!+ÀXÀJ€!+?6ý€&ÀXÀI€!+ÀXÀJ€!+?€@€@€ @€eB:stkprice.bakB:stkprice.datY€7p6ÇB:stkprice.datB:stkprice.$$$Y€7›6÷d4€ JUPDATING HISTORICAL PRICE FILE$d4#±unable to rename old data file to backup$d46Æunable to rename temporary file to new data file$d46ÆFILE B: STKPRICE.DAT NOT FOUND$d4check diskette loaded in drive B$d4does a stock price file exist?$d4do you want to continue the routine? y or n?n;€r1'Àry7á€@u6Td4reached END-OF-FILE on B:STKPRICE.DAT$d4 not enough stock prices in data file $d4to continue, enter yesn;€r1'6ÚFILE B: STKPRICE.BAK NOT FOUND$d4does a backup of the stock price file exist?$d4do you want to continue the routine? y or n?n;€r1'Àry7ñ6rFILE B:STKFIL01.DAT NOT FOUND$d4check diskette loaded in drive B$d4or perhaps you have not run the CREATE STOCK FILE yet!$d4do you want to continue the routine? y or n?n;€r1'Àry7¶6�€ `iÀ $€€ $€€ $READING IN STOCK FILE$d4b:stkfil01.dat€P€ €€€j€€€À€€XÀ)ñÀXÀ;€!€76ÀXÀ>€!€p6PÀXÀ>€!ÀXÀ@€!ÀXÀ;€!pÀXÀG€!€5ÀXÀ?€!«6 € @€À€€`Ÿ€€3$€€ $READING IN CURRENT PRICES$d4b:stkprice.dat€€€€€j*e€s€5ÀY«*Ž€X€6èÀ€XÀX 7ËÀXÀK€!ÀXÀ;€!pÀXÀI€!ÀXÀB€!ÀXÀK€!ÀXÀ@€!ÀXÀ@€!€p79ÀXÀC€!€p6VÀXÀC€!ÀXÀB€!ÀXÀ@€!€dpÀXÀI€!€p7tÀXÀM€!€p6‘ÀXÀM€!ÀXÀL€!ÀXÀI€!€dpÀXÀ@€!€p7¯ÀXÀD€!€p6ÈÀXÀD€!ÀXÀK€!ÀXÀ@€!6Û€€3$€€ $CALCULATING ANNUAL YIELD$d4€X€6À€XÀX 7œ€tÀXÀG€!€uÀsÀtp.ÀXÀD€!ÀXÀD€!€Àup€p€dpÀXÀD€!ÀXÀD€!ÀXÀM€!ÀXÀD€!ƒçp7|ÀXÀD€!ƒçpÀXÀD€!€cp7™ÀXÀD€!€cp66Áend-of-file on unit 8 reached$d4€@À $€€ $€€$HISTORICAL PERFORMANCE SUMMARY OPTION LIST$d4€€ $€€ $SORTING OPTIONS:$À $d4€J0 = return to main menu$d4€J1 = on date purchased$d4€J2 = by number of shares$d4€J3 = by stock exchange$d4€J4 = by purchase cost$d4€J5 = by current value$d4€J6 = by percentage increase in value$d4€J7 = by annual yield$d4€J8 = by $ increase in value$d4€J9 = alphabetical by stock name$d4€J10 = by dividend yield$d4À $€€ $À$denter option number for sort:n;€":'À€7Ñ6óÀ€ ^96õ656u6+6p6®6ÿ6V6£6Æ€vdate of purchase€€6À€À 72ÀÀT€!ÀÀG€!66€vnumber of shares€€6_À€À 7rÀÀT€!ÀÀ;€!6R6€vstock exchange€wNYSE€x€€X€€xÀx€€€6¸À€À 7ÜÀÀ=€!Àw7ÙÀXÀU€!À€XÀX€6«Àx€7ñ€wAMEX6›Àx€7€wOTC6›Àx€7€wOTHER6›€:À€yyes6H€vtotal purchase price€€6YÀ€À 7mÀÀT€!ÀÀ@€!r6L6€vcurrent value€€6—À€À 7«ÀÀT€!ÀÀK€!r6Š6€vpercentage increase in value€€6äÀ€À 7üÀÀT€!ÀÀC€!€ pr6×6€vannual yield (including dividends)€€6;À€À 7SÀÀT€!ÀÀD€!€ pr6.6€vdollar increase in value€€6ˆÀ€À 7 ÀÀT€!ÀÀB€!€ pr6{6€vALPHABETICAL BY NAME€yno6H€vannual dividend yield€€6õÀ€À 7 ÀÀT€!ÀÀM€!€ pr6è6€yyes€:À€€62À:€À 7?ÀÀU€!À6%'»6H(Ö€hOPTION 4 - HISTORICAL SUMMARY OF STOCK PORTFOLIO€iSORTED BY Àv™Ï6Ä€„ofÀ$d4À$d4d4€JÀh$d4€JÀi$d4d4€JDATE: $ÀY$d4d4 total total$d4€Jstk date no. company stock purch current purchase$ current $ % dividend annual % of$d4€Jno. purchd shrs symbol xchng equiv price cost  value increase inc yield return assets$d4d4€q TOTALS : #####.## #####.## ######.## ###.#€m ## /....../ ### /..../ /............/ /../ ##.### ##.### ####.## ####.## #####.## ###.# ##.# ###.# ##.#€[€p€\€p€]€p€X€6"tÀ€XÀX 7"…€\À\ÀXÀK€!6"g€X€6"šÀ€XÀX 7#�€ÀXÀyyes7"¶€ÀXÀU€!€zÀÀK€!À\€dpÀmcÀXp#5ÀÀ?€!$5ÀÀ;€!p#5ÀÀH€!$5ÀÀ<€!$5ÀÀ=€!$5ÀÀ>€!#5ÀÀI€!#5ÀÀ@€!#5ÀÀK€!#5ÀÀB€!#5ÀÀC€!#5ÀÀM€!#5ÀÀD€!#5Àz#d4€ÀX€€€7#nd4€[À[ÀXÀ@€!€]À]ÀXÀB€!6"�€{À]À[€dpd4ÀqcÀ[#5À\#5À]#5À{#d4g€`$N€ `$sB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j*e€|€(ÀYÈ€}À|X€~À€current date is $ÀY$ = $À}#d4€X€6$?À€XÀX 7$H*w)ñ6$2*w6$•file B:STKPRICE.DAT not found$d46$•file B:STKFIL01.DAT not found$d4€@€ @€`&ÌÀ $€€ $€€ $PRICE HISTORY FILE$d4À $€€$option list$À $d4€€$0 = RETURN to main menu$d4€€$1 = STORE prices in DAILY FILE$d4€€$2 = STORE prices in WEEKLY FILE$d4€€$3 = STORE prices in MONTHLY FILE$d4€€$4 = STORE prices in QUARTERLY FILE$d4€€$5 = STORE prices in ANNUAL FILE$d4À $€€3$€€ $À$dSELECT option number: n;€":'À€À€ 7&@6óÀ€^96&U6&i6&~6&“6&©€B:DAYHST.DAT6&¾€B:WEEKHST.DAT6&¾€B:MONTHST.DAT6&¾€B:QUARTHST.DAT6&¾€B:YEARHST.DAT6&¾À€€€€€j6&×À€€€€€k€`'Z€€ÀZsize of $À$ is $À€p# Kbytes$d4À€„7'6'H6'1€„À�Z€ƒÀ„€„À‚€Àƒt€€�À€‚€'%€…):>€7'Z€&€†):>6'HEOF on unit #4 : $À$d4€&À}+?€&À~p+?€&À~ÀI€!+?€X€6'¤À€XÀX 7'´€&ÀXÀI€!+?6'—€@6$›€‡€€ €ˆ€€ €‰€€À‡€!€€Àˆ€!À:À‰€7(Õ€ŠÀ‰À‡€!€‹À‰Àˆ€!€‰À‰€ÀŠÀ‹7(Ò€XÀŠ€À‹€Œ€ÀXÀ7(œÀXÀU€!ÀT€!ÀÀU€!ÀT€!7(}€�ÀXÀU€!ÀXÀU€!ÀÀU€!ÀÀU€!À�€ŒÀŒpDÀŒ€7(‘€XÀX€6(™€À€6(&ÀX€À‹7(¨€‰À‰€À‰À‡€!ÀX€À‰Àˆ€!À‹€‹ÀX€6( 6'怇€€ €ˆ€€ €‰€€À‡€!€€Àˆ€!À:À‰€7)ð€pÀ‰À‡€!€ŽÀ‰Àˆ€!€‰À‰€ÀpÀŽ7)í€XÀp€ÀŽ€Œ€ÀXÀ7)·ÀXÀU€!ÀF€!ÀÀU€!ÀF€!7)˜€�ÀXÀU€!ÀXÀU€!ÀÀU€!ÀÀU€!À�€ŒÀŒpDÀŒ€7)¬€XÀX€6)´€À€6)AÀX€ÀŽ7)À‰À‰€À‰À‡€!ÀX€À‰Àˆ€!ÀŽ€ŽÀX€6)(6)€ &ÀXÀ;€!):ÀXÀ<€!*ÀXÀH€!*ÀXÀ=€!*ÀXÀ?€!*ÀXÀA€!)ÀXÀ@€!)ÀXÀE€!):ÀXÀL€!)>€X€6*^À€XÀX 7*d)ñ6*Q€&€):€Y*€_*>€&ÀXÀI€!)ÀXÀJ€!)>€X€6*£À€XÀX 7*©*w6*–€ &ÀXÀ;€!p+ÀXÀ<€!,ÀXÀH€!,ÀXÀ=€!,ÀXÀ?€!,ÀXÀA€!+ÀXÀ@€!+ÀXÀE€!p+ÀXÀL€!+?€X€6+À€XÀX 7+*ª6+ €&Àp+ÀY,À_,?€&ÀXÀI€!+ÀXÀJ€!+?€X€6+YÀ€XÀX 7+_+-6+L€ÀU€!ÀÀU€!À�€ŒÀŒpDÀŒ€7(‘€XÀX€6(™€À€6(&ÀX€À‹7(¨€‰À‰€À‰À‡€!ÀX€À‰Àˆ€1$0.00274$*+e!x~~6€ÀÀ€ÀprÀ€ÀÀt€€R€ €R€ € R€ € R€ € R€ € R€€R€€R€€<€€ R€€R€€RQ€ €€6…€€À 7�€ÀÀ6x€À €€6ª€€À 7µ€ÀÀ6�€À €€6Ï€€À 7Ú€ÀÀ6€À €€6ô€€À 7ÿ€ÀÀ6ç6 ÀÀÀ TS6ÀÀÀ TS64À $d4€ÀÀ€À TSÀt6L€À€À€Àt6m€ €À€ÀÀÀ€SÀ t6É€À$7$€À%€ÀO$À$€À%$À#$€À!$€À"€ÀO$€À"$d€n;€'1'€&À'À&t6¬€*À(T€+/À(€\€,À(À+€S€-À,X:€./À(À+€\€/À(À*À.V€0À/X:À+€€7$€1067€1À(À+€À.À+€U€2À1X:/3 0,3,3,6,8,11,13,16,19,21,24,26,€3€6TÀ-€3À3 7\€4=:6G€4À4À0€pr€À-€€À2À0€prÀ0€À-€ 7˜€4À4€€)À0pW.À4pWÀ)t6þ€7€(À5Ì€*À7T€+.À7€\€/À7À+€S€0À/X:€8À7À*À+V€9À8X:€6À9À0�mÀ6t€:€2€;À:€ €<À:€ €=À:€ €>À:€ €?À:€ €@À:€ €AÀ:€ €BÀ:€ €CÀ:€ €DÀ:€ €EÀ:€ €FÀ:€ €GÀ:€ €HÀ:€ €IÀ:€ €JÀ:€ €KÀ:€ €LÀ:€ €MÀ:€ €N€2€OÀN€ €PÀN€ €QÀN€ €RÀN€ €SÀN€ €TÀN€ €UÀN€ €€À€76À€766»6÷:6÷€VA:€WSTKBASEÀVÀWy6+db:stkprice.$$$€€€€€k€`4b:stkprice.dat€€€€€j€`_b:stkprice.bak€€€€€j€ `öb:stkfil01.dat€P€ €€€j€`æ*i*’*{*M€X€6ÓÀ€XÀX 7æÀXÀJ€!ÀXÀI€!6ÆÀXÀJ€!ÀXÀI€!ýëÀ $€€7$d4 Enter date of current stock prices: mo/dy/yr$d4€n;€Y1'€Z€€[€p€\€p€]€pÀ $d4 q€`ÍB:TEMPRICE.DAT€€€€€j€`Ê€&€^):€Y*€_*>€X€6±ÀZ€€XÀX 7Ê€&ÀXÀI€!)ÀXÀJ€!)>6¡€@€XÀZ6âÀ€XÀX 7…€€7$d4€€6€€À 7€€€ÀO$d46õ€€7$INSTRUCTIONS: ENTER stock price for $ÀXÀ<€!$À$d4€n;ÀXÀI€!"' q —ÀXÀI€!€p7‚€ÀX€6†6Õ€X€6šÀ€XÀX 7-€`ÀXÀ;€!ÀXÀJ€!p€\À\À`€aÀXÀ;€!ÀXÀI€!p€]À]ÀaÀXÀK€!ÀaÀXÀB€!ÀaÀ`€[À[ÀXÀB€!À`€p7ÀXÀC€!€p6*ÀXÀC€!ÀXÀB€!À`€dp6�À\€p7@€b€p6L€bÀ[À\€dp€`b€&ÀXÀJ€!)€c)>ÀXÀ<€!S&P 500€€7$€€€ÀO$d4€€€ÀO$d4€€€ÀO$d4€€7$INSTRUCTIONS: ENTER stock price for $ÀXÀ<€!$À$d4€n;ÀXÀI€!"'ÀXÀB€!ÀXÀI€!ÀXÀJ€!ÀXÀJ€!€p7/ÀXÀC€!€p6LÀXÀC€!ÀXÀB€!ÀXÀJ€!€dpd4You now have a chance to correct input errors$d4any price changes ? (y/n)?n;€d1'ÀdnÀdN 7¸6 ûenter number of stock for price changen;€e":'€fÀeÀ;€!ÀeÀI€!pprice for $ÀeÀ<€!$ is $ÀeÀI€!#d4enter correct price n;ÀeÀI€!"'€`ÀeÀ;€!ÀeÀJ€!p€aÀeÀ;€!ÀeÀI€!p€]À]ÀaÀfÀeÀK€!ÀaÀeÀB€!ÀaÀ`€[À[ÀeÀB€!ÀfÀ`À`€p7 ÂÀeÀC€!€p6 ÙÀeÀC€!ÀeÀB€!À`€dpÀ\€p7 ì€b€p6 ø€bÀ[À\€dp6€€:À€€6 À:€À 7 7ÀÀT€!ÀÀC€!€ prÀÀU€!À6 '¿À $€ JDO YOU WANT TO PRINT TO :$d4€J CONSOLE = 1 $d4€J PRINTER = 2 $d4€J BOTH = 3 $d4€€ 7$À$d4INSTRUCTIONS: enter selection and hit returnn;€g":'Àg€7 í6 `€hOPTION 5 - PRICES UPDATED FOR THE CURRENT WEEK - NEW VALUATION€isorted by: percent increase for week� CgÀg€7 m6 p®À$d4€€6 ‹€€À 7 ž€€€ÀO$d46 ~€€7$€€%€ÀO$d4€€€ÀO$d4À$d4€J ***** STOCK PRICE UPDATE *****$d4 price$d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4ÀX€7 ¼€€€ÀX€€7$d46 Ò€€7$d4€€ 7$d4€jÀXÀI€!ÀXÀJ€! ### / stock name / ##.### ##.### ###.###cÀXp#5ÀXÀ<€!$5ÀXÀJ€!#5ÀXÀI€!#5Àj#d4€k ## /................../ ##### ####.# ###.### ###.### ##.### #### #####.## $ % current previous price number current$d4 stock name increase increase price price increase of shares value$d4d4€X€6rÀ€XÀX 7þ€ÀXÀU€!€jÀÀI€!ÀÀJ€!ÀkcÀXp#5ÀÀ<€!$5ÀÀB€!#5ÀÀC€!#5ÀÀI€!#5ÀÀJ€!#5Àj#5ÀÀ;€!p#5ÀÀK€!#d4€ÀX€€€7ûd46ed4ÀkcÀXp#5ÀXÀ<€!$5ÀXÀB€!#5ÀXÀC€!#5ÀXÀI€!#5ÀXÀJ€!#d4€l TOTALS : ######.## ###.# ######.##d4ÀlcÀ[#5Àb#5À]#d4À $d€J ***** STOCK PRICE CHANGE ANALYSIS *****$d4d4€m## /........../ ###.### ###.## ###.## ####.# # STOCK NAME CURRENT PRICE % $$d4 PRICE change inc inc$d4-------------------------------------------------$d4d4€n€6ßÀ€ Àn€n€€8€97Ý€€7$€€€ÀO$d€X€6 € €XÀX 7€€€ÀO$d46ÿ€€7$d4€oÀn€ ÀÀo7@€oÀ€XÀn6UÀo€XÀX 7€ÀXÀU€!€jÀÀI€!ÀÀJ€!ÀmcÀXp#5ÀÀ<€!$5ÀÀI€!#5Àj#5ÀÀC€!#5ÀÀB€!#d4€ÀX€€€7¿d46H€p€6ׇЀpÀp 7Ú6Ê6Á€jÀXÀI€!ÀXÀJ€!d4ÀmcÀXp#5ÀXÀ<€!$5ÀXÀI€!#5Àj#5ÀXÀC€!#5ÀXÀB€!#d4d4€q PORTFOLIO : ###.## #####.##ÀqcÀb#5À[#d4€p€6‚‡Ð€pÀp 7…6uB:TEMPRICE.DAT€€€€€k€&Àp+ÀY,À_,?€X€6ÂÀ€XÀX 7Û€&ÀXÀI€!+ÀXÀJ€!+?6µ€@€@€@€@€ @€&Àp+ÀY,À_,?€X€6À€XÀX 7'€&ÀXÀI€!+ÀXÀJ€!+?6€&ÀXÀI€!+ÀXÀJ€!+?€@€@€ @€eB:stkprice.bakB:stkprice.datY€7t6ËB:stkprice.datB:stkprice.$$$Y€7Ÿ6ûd4€ JUPDATING HISTORICAL PRICE FILE$d4#µunable to rename old data file to backup$d46Êunable to rename temporary file to new data file$d46ÊFILE B: STKPRICE.DAT NOT FOUND$d4check diskette loaded in drive B$d4does a stock price file exist?$d4do you want to continue the routine? y or n?n;€r1'Àry7å€@u6Xd4reached END-OF-FILE on B:STKPRICE.DAT$d4 not enough stock prices in data file $d4to continue, enter yesn;€r1'6ÞFILE B: STKPRICE.BAK NOT FOUND$d4does a backup of the stock price file exist?$d4do you want to continue the routine? y or n?n;€r1'Àry7õ6vFILE B:STKFIL01.DAT NOT FOUND$d4check diskette loaded in drive B$d4or perhaps you have not run the CREATE STOCK FILE yet!$d4do you want to continue the routine? y or n?n;€r1'Àry7º6”€ `mÀ $€€$€€ $READING IN STOCK FILE$d4b:stkfil01.dat€P€ €€€j€€€À€€XÀ)õÀXÀ;€!€7:ÀXÀ>€!€p6TÀXÀ>€!ÀXÀ@€!ÀXÀ;€!pÀXÀG€!€5ÀXÀ?€!¯6 € @€À€€`£€€7$€€ $READING IN CURRENT PRICES$d4b:stkprice.dat€€€€€j*i€s€5ÀY¯*’€X€6ìÀ€XÀX 7ÏÀXÀK€!ÀXÀ;€!pÀXÀI€!ÀXÀB€!ÀXÀK€!ÀXÀ@€!ÀXÀ@€!€p7=ÀXÀC€!€p6ZÀXÀC€!ÀXÀB€!ÀXÀ@€!€dpÀXÀI€!€p7xÀXÀM€!€p6•ÀXÀM€!ÀXÀL€!ÀXÀI€!€dpÀXÀ@€!€p7³ÀXÀD€!€p6ÌÀXÀD€!ÀXÀK€!ÀXÀ@€!6߀€7$€€ $CALCULATING ANNUAL YIELD$d4€X€6À€XÀX 7 €tÀXÀG€!€uÀsÀtp.ÀXÀD€!ÀXÀD€!€Àup€p€dpÀXÀD€!ÀXÀD€!ÀXÀM€!ÀXÀD€!ƒçp7€ÀXÀD€!ƒçpÀXÀD€!€cp7�ÀXÀD€!€cp66Åend-of-file on unit 8 reached$d4€@À $€€$€€$HISTORICAL PERFORMANCE SUMMARY OPTION LIST$d4€€$€€ $SORTING OPTIONS:$À $d4€J0 = return to main menu$d4€J1 = on date purchased$d4€J2 = by number of shares$d4€J3 = by stock exchange$d4€J4 = by purchase cost$d4€J5 = by current value$d4€J6 = by percentage increase in value$d4€J7 = by annual yield$d4€J8 = by $ increase in value$d4€J9 = alphabetical by stock name$d4€J10 = by dividend yield$d4À $€€ $À$denter option number for sort:n;€":'À€7Õ6÷À€ ^96ù696y6/6t6²66Z6§6Ê€vdate of purchase€€6#À€À 76ÀÀT€!ÀÀG€!66€vnumber of shares€€6cÀ€À 7vÀÀT€!ÀÀ;€!6V6€vstock exchange€wNYSE€x€€X€€xÀx€€€6¼À€À 7àÀÀ=€!Àw7ÝÀXÀU€!À€XÀX€6¯Àx€7õ€wAMEX6ŸÀx€7 €wOTC6ŸÀx€7€wOTHER6Ÿ€:À€yyes6L€vtotal purchase price€€6]À€À 7qÀÀT€!ÀÀ@€!r6P6€vcurrent value€€6›À€À 7¯ÀÀT€!ÀÀK€!r6Ž6€vpercentage increase in value€€6èÀ€À 7ÀÀT€!ÀÀC€!€ pr6Û6€vannual yield (including dividends)€€6?À€À 7WÀÀT€!ÀÀD€!€ pr626€vdollar increase in value€€6ŒÀ€À 7¤ÀÀT€!ÀÀB€!€ pr66€vALPHABETICAL BY NAME€yno6L€vannual dividend yield€€6ùÀ€À 7ÀÀT€!ÀÀM€!€ pr6ì6€yyes€:À€€66À:€À 7CÀÀU€!À6)'¿6L(Ú€hOPTION 4 - HISTORICAL SUMMARY OF STOCK PORTFOLIO€iSORTED BY Àv�Ó6È€„ofÀ$d4À$d4d4€JÀh$d4€JÀi$d4d4€JDATE: $ÀY$d4d4 total total$d4€Jstk date no. company stock purch current purchase$ current $ % dividend annual % of$d4€Jno. purchd shrs symbol xchng equiv price cost  value increase inc yield return assets$d4d4€q TOTALS : #####.## #####.## ######.## ###.#€m ## /....../ ### /..../ /............/ /../ ##.### ##.### ####.## ####.## #####.## ###.# ##.# ###.# ##.#€[€p€\€p€]€p€X€6"xÀ€XÀX 7"‰€\À\ÀXÀK€!6"k€X€6"žÀ€XÀX 7#‘€ÀXÀyyes7"º€ÀXÀU€!€zÀÀK€!À\€dpÀmcÀXp#5ÀÀ?€!$5ÀÀ;€!p#5ÀÀH€!$5ÀÀ<€!$5ÀÀ=€!$5ÀÀ>€!#5ÀÀI€!#5ÀÀ@€!#5ÀÀK€!#5ÀÀB€!#5ÀÀC€!#5ÀÀM€!#5ÀÀD€!#5Àz#d4€ÀX€€€7#rd4€[À[ÀXÀ@€!€]À]ÀXÀB€!6"‘€{À]À[€dpd4ÀqcÀ[#5À\#5À]#5À{#d4g€`$R€ `$wB:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j*i€|€(ÀYÌ€}À|X€~À€current date is $ÀY$ = $À}#d4€X€6$CÀ€XÀX 7$L*{)õ6$6*{6$™file B:STKPRICE.DAT not found$d46$™file B:STKFIL01.DAT not found$d4€@€ @€`&ÐÀ $€€$€€ $PRICE HISTORY FILE$d4À $€€$option list$À $d4€€$0 = RETURN to main menu$d4€€$1 = STORE prices in DAILY FILE$d4€€$2 = STORE prices in WEEKLY FILE$d4€€$3 = STORE prices in MONTHLY FILE$d4€€$4 = STORE prices in QUARTERLY FILE$d4€€$5 = STORE prices in ANNUAL FILE$d4À $€€7$€€ $À$dSELECT option number: n;€":'À€À€ 7&D6÷À€^96&Y6&m6&‚6&—6&­€B:DAYHST.DAT6&€B:WEEKHST.DAT6&€B:MONTHST.DAT6&€B:QUARTHST.DAT6&€B:YEARHST.DAT6&ÂÀ€€€€€j6&ÛÀ€€€€€k€`'^€€ÀZsize of $À$ is $À€p# Kbytes$d4À€„7'6'L6'5€„À�Z€ƒÀ„€„À‚€Àƒt€€�À€‚€'%€…):>€7'^€&€†):>6'LEOF on unit #4 : $À$d4€&À}+?€&À~p+?€&À~ÀI€!+?€X€6'¨À€XÀX 7'¸€&ÀXÀI€!+?6'›€@6$Ÿ€‡€€ €ˆ€€ €‰€€À‡€!€€Àˆ€!À:À‰€7(Ù€ŠÀ‰À‡€!€‹À‰Àˆ€!€‰À‰€ÀŠÀ‹7(Ö€XÀŠ€À‹€Œ€ÀXÀ7( ÀXÀU€!ÀT€!ÀÀU€!ÀT€!7(�€�ÀXÀU€!ÀXÀU€!ÀÀU€!ÀÀU€!À�€ŒÀŒpDÀŒ€7(•€XÀX€6(�€À€6(*ÀX€À‹7(¬€‰À‰€À‰À‡€!ÀX€À‰Àˆ€!À‹€‹ÀX€6(6'ꀇ€€ €ˆ€€ €‰€€À‡€!€€Àˆ€!À:À‰€7)ô€pÀ‰À‡€!€ŽÀ‰Àˆ€!€‰À‰€ÀpÀŽ7)ñ€XÀp€ÀŽ€Œ€ÀXÀ7)»ÀXÀU€!ÀF€!ÀÀU€!ÀF€!7)œ€�ÀXÀU€!ÀXÀU€!ÀÀU€!ÀÀU€!À�€ŒÀŒpDÀŒ€7)°€XÀX€6)¸€À€6)EÀX€ÀŽ7)Ç€‰À‰€À‰À‡€!ÀX€À‰Àˆ€!ÀŽ€ŽÀX€6),6)€ &ÀXÀ;€!):ÀXÀ<€!*ÀXÀH€!*ÀXÀ=€!*ÀXÀ?€!*ÀXÀA€!)ÀXÀ@€!)ÀXÀE€!):ÀXÀL€!)>€X€6*bÀ€XÀX 7*h)õ6*U€&€):€Y*€_*>€&ÀXÀI€!)ÀXÀJ€!)>€X€6*§À€XÀX 7*­*{6*š€ &ÀXÀ;€!p+ÀXÀ<€!,ÀXÀH€!,ÀXÀ=€!,ÀXÀ?€!,ÀXÀA€!+ÀXÀ@€!+ÀXÀE€!p+ÀXÀL€!+?€X€6+À€XÀX 7+!*®6+€&Àp+ÀY,À_,?€&ÀXÀI€!+ÀXÀJ€!+?€X€6+]À€XÀX 7+c+16+P€ÀU€!ÀÀU€!À�€ŒÀŒpDÀŒ€7(•€XÀX€6(�€À€6(*ÀX€À‹7(¬€‰À‰€À‰À‡€!ÀX€À1$0.00274$*+k!€~~6€ÀÀ€ÀprÀ€ÀÀt€€R€ €R€ € R€ € R€ € R€ € R€€R€€R€€<€€ R€€R€ €€6{€€À 7†€ÀÀ6n€À €€6 €€À 7«€ÀÀ6“€À €€6Å€€À 7ЀÀÀ6¸€À €€6ꀀÀ 7õ€ÀÀ6Ý6ÀÀÀ TS6ÀÀÀ TS6*À $d4€ÀÀ€À TSÀt6B€À€À€Àt6c€ €À€ÀÀÀ€SÀ t6¿€À$-$€À%€ÀE$À$€À%$À#$€À!ø$€À"€ÀE$€À"$d€n;€'1'€&À'À&t6²€*À(T€+/À(€\€,À(À+€S€-À,X:€./À(À+€\€/À(À*À.V€0À/X:À+€€7€106-€1À(À+€À.À+€U€2À1X:/3 0,3,3,6,8,11,13,16,19,21,24,26,€3€6JÀ-€3À3 7R€4=:6=€5€À0€€€4À4À5€pr€À-€€À2À0€prÀ0€À-€ 7ž€4À4€€)À0pW.À4pWÀ)t6€8€(À6€*À8T€+.À8€\€/À8À+€S€0À/X:€9À8À*À+V€:À9X:€7À:À0�mÀ7t€;€2€<À;€ €=À;€ €>À;€ €?À;€ €@À;€ €AÀ;€ €BÀ;€ €CÀ;€ €DÀ;€ €EÀ;€ €FÀ;€ €GÀ;€ €HÀ;€ €IÀ;€ €JÀ;€ €KÀ;€ €LÀ;€ €MÀ;€ €NÀ;€ €O€2€PÀO€ €QÀO€ €RÀO€ €SÀO€ €TÀO€ €UÀO€ €VÀO€ €€À€7 6À€766$Á6ý@6ý€WA:€XSTKBASEÀWÀXy6+jb:stkprice.$$$€€€€€k€`:b:stkprice.dat€€€€€j€`eb:stkprice.bak€€€€€j€ `üb:stkfil01.dat€P€ €€€j€`ì*o*˜*�*S€Y€6ÙÀ€YÀY 7ìÀYÀK€!ÀYÀJ€!6ÌÀYÀK€!ÀYÀJ€!ñÀ $€€-$d4 Enter date of current stock prices: mo/dy/yr$d4€n;€Z1'€[€€\€p€]€p€^€pÀ $d4 w€`ÓB:TEMPRICE.DAT€€€€€j€`Ѐ&€_):€Z*€`*>€Y€6·À[€€YÀY 7Ѐ&ÀYÀJ€!)ÀYÀK€!)>6§€@€YÀ[6èÀ€YÀY 7‹€€-$d4€€6€€À 7€€€ÀE$d46û€€-$INSTRUCTIONS: ENTER stock price for $ÀYÀ=€!$À$d4€n;ÀYÀJ€!"' w �ÀYÀJ€!€p7ˆ€ÀY€6Œ6Û€Y€6 À€YÀY 73€aÀYÀ<€!ÀYÀK€!p€]À]Àa€bÀYÀ<€!ÀYÀJ€!p€^À^ÀbÀYÀL€!ÀbÀYÀC€!ÀbÀa€\À\ÀYÀC€!Àa€p7ÀYÀD€!€p60ÀYÀD€!ÀYÀC€!Àa€dp6“À]€p7F€c€p6R€cÀ\À]€dp€`h€&ÀYÀK€!)€d)>ÀYÀ=€!S&P 500€€-$€€€ÀE$d4€€€ÀE$d4€€€ÀE$d4€€-$INSTRUCTIONS: ENTER stock price for $ÀYÀ=€!$À$d4€n;ÀYÀJ€!"'ÀYÀC€!ÀYÀJ€!ÀYÀK€!ÀYÀK€!€p75ÀYÀD€!€p6RÀYÀD€!ÀYÀC€!ÀYÀK€!€dpd4You now have a chance to correct input errors$d4any price changes ? (y/n)?n;€e1'ÀenÀeN 7¾6 enter number of stock for price changen;€f":'€gÀfÀ<€!ÀfÀJ€!pprice for $ÀfÀ=€!$ is $ÀfÀJ€!#d4enter correct price n;ÀfÀJ€!"'€aÀfÀ<€!ÀfÀK€!p€bÀfÀ<€!ÀfÀJ€!p€^À^ÀbÀgÀfÀL€!ÀbÀfÀC€!ÀbÀa€\À\ÀfÀC€!ÀgÀaÀa€p7 ÈÀfÀD€!€p6 ßÀfÀD€!ÀfÀC€!Àa€dpÀ]€p7 ò€c€p6 þ€cÀ\À]€dp6†€;À€€6 À;€À 7 =ÀÀU€!ÀÀD€!€ prÀÀV€!À6 'ÅÀ $€ JDO YOU WANT TO PRINT TO :$d4€J CONSOLE = 1 $d4€J PRINTER = 2 $d4€J BOTH = 3 $d4€€ -$À$d4INSTRUCTIONS: enter selection and hit returnn;€h":'Àh€7 ó6 f€iOPTION 5 - PRICES UPDATED FOR THE CURRENT WEEK - NEW VALUATION€jsorted by: percent increase for week£ IgÀh€7 s6 v´À$d4€€6 ‘€€À 7 ¤€€€ÀE$d46 „€€-$€€%€ÀE$d4€€€ÀE$d4À$d4€J ***** STOCK PRICE UPDATE *****$d4 price$d4number STOCK NAME OLD PRICE NEW PRICE change$d4---------------------------------------- ------$d4d4ÀY€7 €€€ÀY€€-$d46 Ø€€-$d4€€ -$d4€kÀYÀJ€!ÀYÀK€! ### / stock name / ##.### ##.### ###.###cÀYp#5ÀYÀ=€!$5ÀYÀK€!#5ÀYÀJ€!#5Àk#d4€l ## /................../ ##### ####.# ###.### ###.### ##.### #### #####.## $ % current previous price number current$d4 stock name increase increase price price increase of shares value$d4d4€Y€6xÀ€YÀY 7€ÀYÀV€!€kÀÀJ€!ÀÀK€!ÀlcÀYp#5ÀÀ=€!$5ÀÀC€!#5ÀÀD€!#5ÀÀJ€!#5ÀÀK€!#5Àk#5ÀÀ<€!p#5ÀÀL€!#d4€ÀY€€€7d46kd4ÀlcÀYp#5ÀYÀ=€!$5ÀYÀC€!#5ÀYÀD€!#5ÀYÀJ€!#5ÀYÀK€!#d4€m TOTALS : ######.## ###.# ######.##d4ÀmcÀ\#5Àc#5À^#d4À $d€J ***** STOCK PRICE CHANGE ANALYSIS *****$d4d4€n## /........../ ###.### ###.## ###.## ####.# # STOCK NAME CURRENT PRICE % $$d4 PRICE change inc inc$d4-------------------------------------------------$d4d4€o€6åÀ€ Ào€o€€8€97 -$€€€ÀE$d€Y€6€ €YÀY 7%€€€ÀE$d46€€-$d4€pÀo€ ÀÀp7F€pÀ€YÀo6[Àp€YÀY 7È€ÀYÀV€!€kÀÀJ€!ÀÀK€!ÀncÀYp#5ÀÀ=€!$5ÀÀJ€!#5Àk#5ÀÀD€!#5ÀÀC€!#d4€ÀY€€€7Åd46N€q€6݇ЀqÀq 7à6Ð6Ç€kÀYÀJ€!ÀYÀK€!d4ÀncÀYp#5ÀYÀ=€!$5ÀYÀJ€!#5Àk#5ÀYÀD€!#5ÀYÀC€!#d4d4€r PORTFOLIO : ###.## #####.##ÀrcÀc#5À\#d4€q€6ˆ‡Ð€qÀq 7‹6{B:TEMPRICE.DAT€€€€€k€&Àp+ÀZ,À`,?€Y€6ÈÀ€YÀY 7á€&ÀYÀJ€!+ÀYÀK€!+?6»€@€@€@€@€ @€&Àp+ÀZ,À`,?€Y€6À€YÀY 7-€&ÀYÀJ€!+ÀYÀK€!+?6€&ÀYÀJ€!+ÀYÀK€!+?€@€@€ @€eB:stkprice.bakB:stkprice.datY€7z6ÑB:stkprice.datB:stkprice.$$$Y€7¥6d4€ JUPDATING HISTORICAL PRICE FILE$d4#»unable to rename old data file to backup$d46Ðunable to rename temporary file to new data file$d46ÐFILE B: STKPRICE.DAT NOT FOUND$d4check diskette loaded in drive B$d4does a stock price file exist?$d4do you want to continue the routine? y or n?n;€s1'Àsy7ë€@u6^d4reached END-OF-FILE on B:STKPRICE.DAT$d4 not enough stock prices in data file $d4to continue, enter yesn;€s1'6äFILE B: STKPRICE.BAK NOT FOUND$d4does a backup of the stock price file exist?$d4do you want to continue the routine? y or n?n;€s1'Àsy7û6|FILE B:STKFIL01.DAT NOT FOUND$d4check diskette loaded in drive B$d4or perhaps you have not run the CREATE STOCK FILE yet!$d4do you want to continue the routine? y or n?n;€s1'Àsy7À6š€ `sÀ $€€$€€ $READING IN STOCK FILE$d4b:stkfil01.dat€P€ €€€j€€€À€€YÀ)ûÀYÀ<€!€7@ÀYÀ?€!€p6ZÀYÀ?€!ÀYÀA€!ÀYÀ<€!pÀYÀH€!€6ÀYÀ@€!µ6€ @€À€€`©€€-$€€ $READING IN CURRENT PRICES$d4b:stkprice.dat€€€€€j*o€t€6ÀZµ*˜€Y€6òÀ€YÀY 7ÕÀYÀL€!ÀYÀ<€!pÀYÀJ€!ÀYÀC€!ÀYÀL€!ÀYÀA€!ÀYÀA€!€p7CÀYÀD€!€p6`ÀYÀD€!ÀYÀC€!ÀYÀA€!€dpÀYÀJ€!€p7~ÀYÀN€!€p6›ÀYÀN€!ÀYÀM€!ÀYÀJ€!€dpÀYÀA€!€p7¹ÀYÀE€!€p6ÒÀYÀE€!ÀYÀL€!ÀYÀA€!6倀-$€€ $CALCULATING ANNUAL YIELD$d4€Y€6À€YÀY 7¦€uÀYÀH€!€vÀtÀup.ÀYÀE€!ÀYÀE€!€Àvp€p€dpÀYÀE€!ÀYÀE€!ÀYÀN€!ÀYÀE€!ƒçp7†ÀYÀE€!ƒçpÀYÀE€!€cp7£ÀYÀE€!€cp6 6Ëend-of-file on unit 8 reached$d4€@À $€€$€€$HISTORICAL PERFORMANCE SUMMARY OPTION LIST$d4€€$€€ $SORTING OPTIONS:$À $d4€J0 = return to main menu$d4€J1 = on date purchased$d4€J2 = by number of shares$d4€J3 = by stock exchange$d4€J4 = by purchase cost$d4€J5 = by current value$d4€J6 = by percentage increase in value$d4€J7 = by annual yield$d4€J8 = by $ increase in value$d4€J9 = alphabetical by stock name$d4€J10 = by dividend yield$d4À $€€ $À$denter option number for sort:n;€":'À€7Û6ýÀ€ ^96ÿ6?6656z6¸6 6`6­6Ѐwdate of purchase€€6)À€À 7<ÀÀU€!ÀÀH€!66€wnumber of shares€€6iÀ€À 7|ÀÀU€!ÀÀ<€!6\6€wstock exchange€xNYSE€y€€Y€€yÀy€€€6ÂÀ€À 7æÀÀ>€!Àx7ãÀYÀV€!À€YÀY€6µÀy€7û€xAMEX6¥Ày€7€xOTC6¥Ày€7%€xOTHER6¥€;À€zyes6R€wtotal purchase price€€6cÀ€À 7wÀÀU€!ÀÀA€!r6V6€wcurrent value€€6¡À€À 7µÀÀU€!ÀÀL€!r6”6€wpercentage increase in value€€6îÀ€À 7ÀÀU€!ÀÀD€!€ pr6á6€wannual yield (including dividends)€€6EÀ€À 7]ÀÀU€!ÀÀE€!€ pr686€wdollar increase in value€€6’À€À 7ªÀÀU€!ÀÀC€!€ pr6…6€wALPHABETICAL BY NAME€zno6R€wannual dividend yield€€6ÿÀ€À 7ÀÀU€!ÀÀN€!€ pr6ò6€zyes€;À€€6<À;€À 7IÀÀV€!À6/'Å6R(à€iOPTION 4 - HISTORICAL SUMMARY OF STOCK PORTFOLIO€jSORTED BY Àw£Ù6΀„ofÀ$d4À$d4d4€JÀi$d4€JÀj$d4d4€JDATE: $ÀZ$d4d4 total total$d4€Jstk date no. company stock purch current purchase$ current $ % dividend annual % of$d4€Jno. purchd shrs symbol xchng equiv price cost  value increase inc yield return assets$d4d4€r TOTALS : #####.## #####.## ######.## ###.#€n ## /....../ ### /..../ /............/ /../ ##.### ##.### ####.## ####.## #####.## ###.# ##.# ###.# ##.#€\€p€]€p€^€p€Y€6"~À€YÀY 7"�€]À]ÀYÀL€!6"q€Y€6"¤À€YÀY 7#—€ÀYÀzyes7"À€ÀYÀV€!€{ÀÀL€!À]€dpÀncÀYp#5ÀÀ@€!$5ÀÀ<€!p#5ÀÀI€!$5ÀÀ=€!$5ÀÀ>€!$5ÀÀ?€!#5ÀÀJ€!#5ÀÀA€!#5ÀÀL€!#5ÀÀC€!#5ÀÀD€!#5ÀÀN€!#5ÀÀE€!#5À{#d4€ÀY€€€7#xd4€\À\ÀYÀA€!€^À^ÀYÀC€!6"—€|À^À\€dpd4ÀrcÀ\#5À]#5À^#5À|#d4g€`$X€ `$}B:STKPRICE.DAT€€€€€jB:STKFIL01.DAT€P€ €€€j*o€}€(ÀZ€~À}X€À€current date is $ÀZ$ = $À~#d4€Y€6$IÀ€YÀY 7$R*�)û6$<*�6$Ÿfile B:STKPRICE.DAT not found$d46$Ÿfile B:STKFIL01.DAT not found$d4€@€ @€`&ÖÀ $€€$€€ $PRICE HISTORY FILE$d4À $€€$option list$À $d4€€$0 = RETURN to main menu$d4€€$1 = STORE prices in DAILY FILE$d4€€$2 = STORE prices in WEEKLY FILE$d4€€$3 = STORE prices in MONTHLY FILE$d4€€$4 = STORE prices in QUARTERLY FILE$d4€€$5 = STORE prices in ANNUAL FILE$d4À $€€-$€€ $À$dSELECT option number: n;€":'À€À€ 7&J6ýÀ€^96&_6&s6&ˆ6&�6&³€€B:DAYHST.DAT6&È€€B:WEEKHST.DAT6&È€€B:MONTHST.DAT6&È€€B:QUARTHST.DAT6&È€€B:YEARHST.DAT6&ÈÀ€€€€€€j6&áÀ€€€€€€k€`'d€�À€Zsize of $À€$ is $À�p# Kbytes$d4À�„7'6'R6';€…À‚Z€„À…€„Àƒ€À„t€€‚À€€ƒ€' %€†):>€7'd€&€‡):>6'REOF on unit #4 : $À€$d4€&À~+?€&Àp+?€&ÀÀJ€!+?€Y€6'®À€YÀY 7'¾€&ÀYÀJ€!+?6'¡€@6$¥€ˆ€€ €‰€€ €Š€€Àˆ€!€€À‰€!À;ÀŠ€7(߀‹ÀŠÀˆ€!€ŒÀŠÀ‰€!€ŠÀŠ€À‹ÀŒ7(Ü€YÀ‹€ÀŒ€�€ÀYÀ7(¦ÀYÀV€!ÀU€!ÀÀV€!ÀU€!7(‡€ŽÀYÀV€!ÀYÀV€!ÀÀV€!ÀÀV€!ÀŽ€�À�pDÀ�€7(›€YÀY€6(£€À€6(0ÀY€ÀŒ7(²€ŠÀŠ€ÀŠÀˆ€!ÀY€ÀŠÀ‰€!ÀŒ€ŒÀY€6(6'ð€ˆ€€ €‰€€ €Š€€Àˆ€!€€À‰€!À;ÀŠ€7)ú€qÀŠÀˆ€!€�ÀŠÀ‰€!€ŠÀŠ€ÀqÀ�7)÷€YÀq€À�€�€ÀYÀ7)ÁÀYÀV€!ÀG€!ÀÀV€!ÀG€!7)¢€ŽÀYÀV€!ÀYÀV€!ÀÀV€!ÀÀV€!ÀŽ€�À�pDÀ�€7)¶€YÀY€6)¾€À€6)KÀY€À�7)Í€ŠÀŠ€ÀŠÀˆ€!ÀY€ÀŠÀ‰€!À�€�ÀY€6)26) € &ÀYÀ<€!):ÀYÀ=€!*ÀYÀI€!*ÀYÀ>€!*ÀYÀ@€!*ÀYÀB€!)ÀYÀA€!)ÀYÀF€!):ÀYÀM€!)>€Y€6*hÀ€YÀY 7*n)û6*[€&€):€Z*€`*>€&ÀYÀJ€!)ÀYÀK€!)>€Y€6*­À€YÀY 7*³*�6* € &ÀYÀ<€!p+ÀYÀ=€!,ÀYÀI€!,ÀYÀ>€!,ÀYÀ@€!,ÀYÀB€!+ÀYÀA€!+ÀYÀF€!p+ÀYÀM€!+?€Y€6+!À€YÀY 7+'*´6+€&Àp+ÀZ,À`,?€&ÀYÀJ€!+ÀYÀK€!+?€Y€6+cÀ€YÀY 7+i+76+V€ÀV€!ÀÀV€!ÀŽ€�À�pDÀ�€7(›€YÀY€6(£€À€6(0ÀY€ÀŒ7(²€ŠÀŠ€ÀŠÀˆ€!Àrem *---------------------------------------------* rem * JULIAN DATE SUBROUTINE * rem * ---------------------- * rem * WRITTEN: Edward A. Valenzuela * rem * DATE: January 10, 1983 * rem * VERSION: 1.30 * rem *---------------------------------------------* def fn.juldate$(date$) rem *** function takes a date in month/day/year format *** rem *** and returns a character string year.julian date *** rem ......decompose the character string into three integers...... rem ......isolate the month...... rem ......find the character position for the first slash...... nc% = len(date$) sl1% = match("/",date$,1) mo$ = left$(date$,sl1%-1) month% = val(mo$) rem .....isolate the year..... rem .....find the character position for the second slash...... sl2% = match("/",date$,sl1%+1) yr$ = right$(date$,nc%-sl2%) year% = val(yr$) rem .....now isolate the day..... if (sl1%+1) <= 0 then dy$ = "0" else \ dy$ = mid$(date$,sl1%+1,sl2%-sl1%-1) day% = val(dy$) rem ......now convert the three integers to julian date...... restore data 0,3,3,6,8,11,13,16,19,21,24,26 for ki% = 1 to month% read d30% next ki% d30% = d30% + int%(year%/4) + 1 + (month%-1)*28 + day% rem ... example 1/5/1 = 0 + 0 + 1 + 0 + 5 = 6 if int%(year%/4) = year%/4 and month% < 3 then d30% = d30% - 1 rem ... thus 1/5/1 = 6-1 = 5 fn.juldate$ = str$(year%) + "." + str$(d30%) return fend def fn.juldate%(date$) jdate$ = fn.juldate$(date$) nc% = len(jdate$) sl1% = match(".",jdate$,1) yr$ = left$(jdate$,sl1%-1) year% = val(yr$) jd$ = right$(jdate$,nc%-sl1%) jd% = val(jd$) fn.juldate% = jd% + year%*365 rem ......example 1/5/1 = 5 + 365 = 370 RETURN FEND rem *----------- END julian date SUBROUTINE -------* .now isolate the day..... if (sl1%+1) <= 0 then dy$ = "0" else \ dy$ = mid$(date$,sl1%+1,sl2%-sl1%-1) day% = val(dy$) reREM *----------------------------------------------* REM * LINEAR REGRESSION * REM * ----------------- * REM * UPDATED: January 10, 1983 * REM * COPYRIGHT: E.A. Valenzuela * REM * VERSION: 1.30 * REM *----------------------------------------------* REM ... INPUT VARIABLES ... REM XR ... INDEPENDENT VARIABLE REM YR ... DEPENDENT VARIABLE REM NR ... NUMBER OF REGRESSION POINTS REM ... OUTPUT VARIABLES ... REM XAVG ... AVERAGE OF X REM YAVG ... AVERAGE OF Y REM XSD ... STANDARD DEVIATION OF X REM YSD ... STANDARD DEVIATION OF Y REM VX ... VARIATION IN X REM VY ... VARIATION IN Y REM R ... CORRELATION COEFFICIENT OF X WITH Y REM R2 ... R-SQUARED REM A ... INTERCEPT REM B ... SLOPE REM SA ... STANDARD ERROR OF INTERCEPT REM SB ... STANDARD ERROR OF SLOPE rem see ... standard error of the estimate 9100 rem ... set up summation counters ... sx = 0 sy = 0 sy2 = 0 sx2 = 0 sxy = 0 rem ... accumulate sums ... for i%=1 to nr% sx = sx + xr(i%) sx2 = sx2 + xr(i%)*xr(i%) sy = sy + yr(i%) sy2 = sy2 + yr(i%)*yr(i%) sxy = sxy + xr(i%)*yr(i%) next i% 9110 rem ... calculate averages ... xavg = sx/nr% yavg = sy/nr% rem ... store useful parameters ... t1 = sxy - xavg*yavg*NR% : rem b*t1 = sum of square about regression t2 = sx2 - xavg*xavg*NR% t3 = sy2 - yavg*yavg*NR% : rem t3 = sum of squares about mean rem ...determine slope and intercept... b = t1 / t2 a = yavg - b*xavg rem ... calculate variances ... vx = t2 / (nr%-1) vy = t3 / (nr%-1) rem ...test for negative square root ... rem ... calculate standard deviation of variables ... XSD = SQR(vx) YSD = SQR(vy) rem ...standard error of estimate...(standard deviation) see = SQR(( t3 - b*t1 ) / (nr%-2)) rem ... standard error of the slope ... sb = see / SQR( sx2 - nr%*xavg*xavg) rem ... standard error of the intercept ... SA = SB * SQR( SX2 / NR% ) rem ... calculate correlation coefficient and "r-squared" r2 = b*t1 / t3 r = SQR(R2) return REM ---------------- END OF REGRESSION --------------------- .. xavg = sx/nr% yavg = sy/nr% rem ... store useful parameters ... t1 = sxy - xavg*yavg*NR% : rem b*t1 = sum of square about regression t2 = sx2 - xavg*xavg*NR% t3 = sy2 - yavg*yavg*NR% : rem t3 = sum of squares about mean rem ...determine slope and intercept... b = t1 / t2 a = yavg - b*xavg rem ... calculate variances ... vx = t2 / (nr%-1) vy = t3 / (nr%-1) rem ...test for negative square root ... rem ... calculate standard deviation of variables ... XSD = SQR(vx) YSD = SQR(vy) rem ...standard error of estimate...(standard deviation) see = SQR(( t3 - b*t1 ) / (nr%-2)) rem ... standard error of the slope ... sb = see / SQR( sx2 - nr%*xavg*xavg) rem ... standard error of the intercept ... SA = SB * SQR( Srem *--------------- Section 8.0 ------------------* rem * * rem * HISTORICAL PORTFOLIO STATISTICAL SUMMARY * rem * ---------------------------------------- * rem * COPYRIGHT: E. A. Valenzuela * rem * DATE: February 5, 1983 * rem * VERSION: 1.31 * rem *----------------------------------------------* rem --- requires subroutines --- rem scrnin.bas rem qksort%.bas ... for sorting integers 8000 rem ...... check for end of file ...... n%=50 dim namstk$(n%),nr%(n%),a(n%),b(n%),sa(n%),sb(n%),see(n%),r2(n%),r(n%), \ ygavg(n%),yavg(n%),ysd(n%),min(n%),max(n%),yield(n%),ratio(n%),ab(n%) dim x%(N%), kode%(N%) if end # 10 then 8099 print$="T" print clear$; fn.down$(3); fn.right$(10); \ "READING IN BETA FILE" open "B:STKPRICE.DAT" as 8 read #8; nstk%, newdate$, olddate$ close 8 open "B:BETA.DAT" AS 10 nitems% = nstk% + 2 : rem ... read S&P 500 and portfolio nstk% = nstk% + 1 for i% = 1 to nitems% read #10; k%,namstk$(i%),nr%(i%),a(i%),b(i%),sa(i%),sb(i%),see(i%), \ r2(i%),r(i%),ygavg(i%),yavg(i%),ysd(i%),min(i%),max(i%),yield(i%), \ ratio(i%),ab(i%) next i% CLOSE 10 goto 8050 8099 REM "reached end-of-file on unit 10: # of stocks is "; i% close 10 8050 print clear$; fn.down$(1); fn.right$(5); \ "HISTORICAL PORTFOLIO PERFORMANCE SUMMARY OPTION LIST" print fn.down$(2); fn.right$(10); "SORTING OPTIONS:"; down$ print tab(5);"0 = return to main menu" print print tab(5);"1 = on total risk/return ratio" print tab(5);"2 = on alpha/beta ratio" print tab(5);"3 = by alpha" print tab(5);"4 = by beta" print tab(5);"5 = by geometric average return" print tab(5);"6 = by standard deviation" print down$; fn.right$(10); bell$; input "enter option number for sort:"; option% if option%=0 then RETURN on option% goto 8010,8020,8025,8030,8040,8045 8010 sort$ = "total risk/return ratio" for j%=1 to nitems% X%(j%) = ratio(j%)*100. next j% goto 8017 8020 sort$ = "alpha/beta ratio" for j% = 1 to nitems% X%(j%) = ab(j%)*1000. next j% goto 8017 8025 sort$ = "alpha - return variable" for j% = 1 to nitems% X%(j%) = a(j%)*10000. next j% goto 8017 8030 sort$ = "beta value" for j%=1 to nitems% X%(j%) = b(j%)*100. next j% goto 8017 8040 sort$ = "geometric average return" for j%=1 to nitems% X%(j%) = ygavg(j%)*10000. next j% goto 8017 8045 sort$ = "standard deviation of returns" for j%=1 to nitems% X%(j%) = ysd(j%)*10000. next j% goto 8017 rem ..... sort the percentage increases ..... 8017 sortcheck$ = "yes" N% = NITEMS% FOR J%=1 TO N% KODE%(J%)=J% NEXT J% gosub 1500 rem ...... print out statistical summary by calling print subroutine ... filename$ = "B:BETA.DAT" title1$ = "HISTORICAL SUMMARY OF PORTFOLIO from: " TITLE2$ = "SORTED BY " + SORT$ + " DATE: " for9$=" ## /........../ ### ##.### ##.### #.### #.### #.### #.### #.##"\ +"# ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##" for8$=" ## /......../ ##### ##.### ##.### #.### #.### #.### #.### ##.##"\ +"# ##.### ##.### ##.### ##.### ##.### ##.### ###.## ###.##" gosub 9023 for i%=1 to nitems% j% = kode%(i%) if j% < nitems% then \ print using for9$; i%,namstk$(j%),nr%(j%),a(j%),b(j%),sa(j%),sb(j%), \ see(j%),r2(j%),r(j%),ygavg(j%),yavg(j%),ysd(j%),min(j%),max(j%), \ yield(j%),ratio(j%),ab(j%) \ else \ print using for8$; j%,namstk$(j%),nr%(j%),a(j%),b(j%),sa(j%),sb(j%), \ see(j%),r2(j%),r(j%),ygavg(j%),yavg(j%),ysd(j%),min(j%),max(j%), \ yield(j%),ratio(j%),ab(j%) if fn.mod%(i%,5) eq 5 then print NEXT I% CONSOLE goto 8050 8049 return rem ---------- END OF PORTFOLIO STATISTICS -------- MMARY OF PORTFOLIO from: " TITLE2$ = "SORTED BY " + SORT$ + " DATE: " for9$=" ## /........../ ### ##.### ##.### #.#REM ... QUICKSORT ... FOR ALPHABETICAL SORTS ... REM REM ... WRITTEN BY: EDWARD A. VALENZUELA REM JANUARY 25, 1982 REM REM -------------------------------------------------------------------- REM REM VARIABLES: REM REM SL(P) ... THE LEFT END OF THE NEXT SUBLIST REM SR(P) ... THE RIGHT END OF THE NEXT SUBLIST REM I ....... INDEX VARIABLE FOR THE LEFT SIDE OF LIST REM L ...... LEFT END OF THE CURRENT LIST REM J ....... INDEX VARIABLE FOR THE RIGHT SIDE OF LIST REM R ...... RIGHT END OF THE CURRENT LIST REM S ....... DIRECTION SWITCH (-1 AT I, +1 AT J) REM T ....... TEMPORARY EXCHANGE VARIABLE REM X( ) .... LIST OF NUMBERS TO BE SORTED REM P ....... POINTER TO THE TOP OF THE STACK OF SUBLISTS REM REM -------------------------------------------------------------------- 1550 REM DIM SL%(20),SR%(20) P% = 1 SL%(1) = 1 SR%(1) = N% WHILE P%>0 L%=SL%(P%) R%=SR%(P%) P%=P%-1 WHILE L% < R% I% = L% J% = R% S% = -1 WHILE I% < J% IF X$(KODE%(I%)) > X$(KODE%(J%)) THEN \ T% = KODE%(I%) : \ KODE%(I%) = KODE%(J%) : \ KODE%(J%) = T% : \ S% = SGN(-S%) IF S% = 1 THEN I%=I%+1 ELSE J%=J%-1 WEND IF I%+1 < R% THEN P% = P% + 1 : \ SL%(P%) = I% + 1 : \ SR%(P%) = R% R% = I% - 1 WEND WEND RETURN  ...... RIGHT END OF THE CURRENT LIST REM S ....... DIRECTION SWITCH (-1 AT I, +1 AT J) REM T ....... TEMPORARY EXCHANGE VARIABLE REM X( ) .... LIST OF NUMBERS TO BE SORTED REM P ....... POINTER TO THE TOP OF THE STACK OF SUBLISTS REM REM -------------------------------------------------------------------- 1550 REM DIM SL%(20),SR%(20) P% = 1 SL%(1) = 1 SR%(1) = N% WHILE P%>0 L%=SL%(P%) R%=SR%(P%) P%=P%-1 WHILE L% < R% I% = L% J% = R% S% = -1REM ... QUICKSORT ... REM REM ... WRITTEN BY: EDWARD A. VALENZUELA REM JANUARY 25, 1982 REM REM -------------------------------------------------------------------- REM REM VARIABLES: REM REM SL(P) ... THE LEFT END OF THE NEXT SUBLIST REM SR(P) ... THE RIGHT END OF THE NEXT SUBLIST REM I ....... INDEX VARIABLE FOR THE LEFT SIDE OF LIST REM I1 ...... LEFT END OF THE CURRENT LIST REM J ....... INDEX VARIABLE FOR THE RIGHT SIDE OF LIST REM J1 ...... RIGHT END OF THE CURRENT LIST REM S ....... DIRECTION SWITCH (-1 AT I, +1 AT J) REM T ....... TEMPORARY EXCHANGE VARIABLE REM X( ) .... LIST OF NUMBERS TO BE SORTED REM P ....... POINTER TO THE TOP OF THE STACK OF SUBLISTS REM REM -------------------------------------------------------------------- 1500 REM DIM SL%(20),SR%(20) P% = 1 SL%(1) = 1 SR%(1) = N% WHILE P%>0 I1%=SL%(P%) J1%=SR%(P%) P%=P%-1 WHILE I1% < J1% I% = I1% J% = J1% S% = -1 WHILE I% < J% IF X%(KODE%(I%)) > X%(KODE%(J%)) THEN \ T% = KODE%(I%) : \ KODE%(I%) = KODE%(J%) : \ KODE%(J%) = T% : \ S% = SGN(-S%) IF S% = 1 THEN I%=I%+1 ELSE J%=J%-1 WEND IF I%+1 < J1% THEN P% = P% + 1 : \ SL%(P%) = I% + 1 : \ SR%(P%) = J1% J1% = I% - 1 WEND WEND RETURN URRENT LIST REM S ....... DIRECTION SWITCH (-1 AT I, +1 AT J) REM T ....... TEMPORARY EXCHANGE VARIABLE REM X( ) .... LIST OF NUMBERS TO BE SORTED REM P ....... POINTER TO THE TOP OF THE STACK OF SUBLISTS REM REM -------------------------------------------------------------------- 1500 REM DIM SL%(20),SR%(20) P% = 1 SL%(1) = 1 SR%(1) = N% WHILE P%>0 I1%=SL%(P%) J1%=SR%(P%) P%=P%-1 WHILE I1% < J1% I% = I1% J% = J1% S% = -1 WHILE rem *----------------------------------------------* rem * SCREEN COMMANDS ROUTINES * rem * ------------------------ * rem * FROM: CBASIC USER GUIDE * rem * BY: Osborne, Eubanks, McNiff * rem * DATE: December 15, 1982 * rem * VERSION: 1.25 * rem *----------------------------------------------* 500 rem ......screen commands routines.............. def fn.mod%(j%,i%) a% = j% - int%( (j%-1)/i% ) * i% fn.mod% = a% RETURN fend rem ******************* define constants ******************************* home$ = chr$(30) : \ move cursor to column 1, row 1 clear$ = chr$(26) : \ clear screen, home cursor up$ = chr$(11) : \ move cursor up 1 row down$ = chr$(10) : \ move cursor down one row cr$ = chr$(13) : \ carriage return without line feed rht$ = chr$(12) : \ move cursor right one space lft$ = chr$(8) : \ move cursor left one position bell$ = chr$(7) : \ ring bell line% = 60 rem ... printer control ... newpage$ = chr$(12) small.print$ = chr$(29) rem .....the following cursor movement string characters are defined at rem .....the start of the program to be used by all modules rem ******************** initialize string variables ******************** bl$ = " " for j% = 1 to 7 bl$ = bl$ + bl$ next j% movr$ = rht$ for j% = 1 to 7 movr$ = movr$ + movr$ next j% movu$ = up$ for j% = 1 to 6 movu$ = movu$ + movu$ next j% movd$ = down$ for j% = 1 to 6 movd$ = movd$ + movd$ next j% rem ******************** define functions **************************** def fn.up$(i%) = left$(movu$,i% * len(up$)) def fn.down$(i%) = left$(movd$,i% * len(down$)) def fn.right$(i%) print up$ fn.right$ = left$(movr$,(i%-1) * len(rht$)) return fend def fn.line$(i%) fn.line$ = home$ + \ fn.down$(i%-1) return fend def fn.clear$(first%,last%) fn.clear$ = fn.right$(first%-1) + \ left$(bl$,last%-first%+1) return fend def fn.entry$(row%,col%,prompt$,linep%,colp%) rem ... prints a prompt in the comment section of the display at rem ... line linp%, column colp% rem ... moves the cursor up row% rows and over to column col% rem ... to print a question mark and receive input print fn.line$(linep%) ; fn.clear$(colp%,line%) ; \ write prompt bell$; fn.right$(colp%); prompt$ ; \ fn.up$(row%) ; \ position cursor fn.clear$(col%,line%); fn.right$(col%); input temp$ fn.entry$ = temp$ return fend rem ---------------------------- end of utility routines --------------- ht$)) return fend def fn.line$(i%) fn.line$ = home$ + \ fn.down$(i%-1) return fend def fnrem *----------------------------------------------* rem * SCREEN COMMANDS ROUTINES * rem * ------------------------ * rem * FROM: CBASIC USER GUIDE * rem * BY: Osborne, Eubanks, McNiff * rem * DATE: December 15, 1982 * rem * VERSION: 1.25 * rem *----------------------------------------------* 500 rem ......screen commands routines.............. def fn.mod%(j%,i%) a% = j% - int%( (j%-1)/i% ) * i% fn.mod% = a% RETURN fend rem ******************* define constants ******************************* home$ = chr$(30) : \ move cursor to column 1, row 1 clear$ = chr$(26) : \ clear screen, home cursor up$ = chr$(11) : \ move cursor up 1 row down$ = chr$(10) : \ move cursor down one row cr$ = chr$(13) : \ carriage return without line feed rht$ = chr$(12) : \ move cursor right one space lft$ = chr$(8) : \ move cursor left one position bell$ = chr$(7) : \ ring bell line% = 60 rem ... printer control ... newpage$ = chr$(12) small.print$ = chr$(29) rem Revised for Epson by Jim Woolley, FOG Disk Librarian, 5/83 small.print$ = chr$(15) rem .....the following cursor movement string characters are defined at rem .....the start of the program to be used by all modules rem ******************** initialize string variables ******************** bl$ = " " for j% = 1 to 7 bl$ = bl$ + bl$ next j% movr$ = rht$ for j% = 1 to 7 movr$ = movr$ + movr$ next j% movu$ = up$ for j% = 1 to 6 movu$ = movu$ + movu$ next j% movd$ = down$ for j% = 1 to 6 movd$ = movd$ + movd$ next j% rem ******************** define functions **************************** def fn.up$(i%) = left$(movu$,i% * len(up$)) def fn.down$(i%) = left$(movd$,i% * len(down$)) def fn.right$(i%) print up$ fn.right$ = left$(movr$,(i%-1) * len(rht$)) return fend def fn.line$(i%) fn.line$ = home$ + \ fn.down$(i%-1) return fend def fn.clear$(first%,last%) fn.clear$ = fn.right$(first%-1) + \ left$(bl$,last%-first%+1) return fend def fn.entry$(row%,col%,prompt$,linep%,colp%) rem ... prints a prompt in the comment section of the display at rem ... line linp%, column colp% rem ... moves the cursor up row% rows and over to column col% rem ... to print a question mark and receive input print fn.line$(linep%) ; fn.clear$(colp%,line%) ; \ write prompt bell$; fn.right$(colp%); prompt$ ; \ fn.up$(row%) ; \ position cursor fn.clear$(col%,line%); fn.right$(col%); input temp$ fn.entry$ = temp$ return fend rem ---------------------------- end of utility routines --------------- len(down$)) def fn.right$(i%) print up$ fn.right$ = left$(movr$,(i%-1) * len(rht$)) return fend def fn.lirem *----------------------------------------------* rem * SCREEN COMMANDS ROUTINES * rem * ------------------------ * rem * FROM: CBASIC USER GUIDE * rem * BY: Osborne, Eubanks, McNiff * rem * DATE: December 15, 1982 * rem * VERSION: 1.25 * rem *----------------------------------------------* 500 rem ......screen commands routines.............. def fn.mod%(j%,i%) a% = j% - int%( (j%-1)/i% ) * i% fn.mod% = a% RETURN fend rem ******************* define constants ******************************* home$ = chr$(30) : \ move cursor to column 1, row 1 clear$ = chr$(26) : \ clear screen, home cursor up$ = chr$(11) : \ move cursor up 1 row down$ = chr$(10) : \ move cursor down one row cr$ = chr$(13) : \ carriage return without line feed rht$ = chr$(12) : \ move cursor right one space lft$ = chr$(8) : \ move cursor left one position bell$ = chr$(7) : \ ring bell line% = 60 rem ... printer control ... newpage$ = chr$(12) small.print$ = chr$(29) rem Revised for NEC 8023 by Jim Woolley, FOG Disk Librarian, 5/83 rem Applicable to C.Itoh 8510 & TEC, also small.print$ = chr$(27)+"Q" rem .....the following cursor movement string characters are defined at rem .....the start of the program to be used by all modules rem ******************** initialize string variables ******************** bl$ = " " for j% = 1 to 7 bl$ = bl$ + bl$ next j% movr$ = rht$ for j% = 1 to 7 movr$ = movr$ + movr$ next j% movu$ = up$ for j% = 1 to 6 movu$ = movu$ + movu$ next j% movd$ = down$ for j% = 1 to 6 movd$ = movd$ + movd$ next j% rem ******************** define functions **************************** def fn.up$(i%) = left$(movu$,i% * len(up$)) def fn.down$(i%) = left$(movd$,i% * len(down$)) def fn.right$(i%) print up$ fn.right$ = left$(movr$,(i%-1) * len(rht$)) return fend def fn.line$(i%) fn.line$ = home$ + \ fn.down$(i%-1) return fend def fn.clear$(first%,last%) fn.clear$ = fn.right$(first%-1) + \ left$(bl$,last%-first%+1) return fend def fn.entry$(row%,col%,prompt$,linep%,colp%) rem ... prints a prompt in the comment section of the display at rem ... line linp%, column colp% rem ... moves the cursor up row% rows and over to column col% rem ... to print a question mark and receive input print fn.line$(linep%) ; fn.clear$(colp%,line%) ; \ write prompt bell$; fn.right$(colp%); prompt$ ; \ fn.up$(row%) ; \ position cursor fn.clear$(col%,line%); fn.right$(col%); input temp$ fn.entry$ = temp$ return fend rem ---------------------------- end of utility routines --------------- rem *______________ Section 5.5 ___________________* rem * * rem * PRINT STOCK STATISTICS PROGRAM * rem * ------------------------------ * rem * UPDATED: January 10, 1983 * rem * COPYRIGHT: E. A. Valenzuela * rem * VERSION: 1.30 * rem *----------------------------------------------* rem *--- requires subroutines --- rem scrnin.bas ... for function 6600 REM 6610 rem set up printer for small print 132 characters per line lprinter width 132 print small.print$ print newpage$ print print tab(6);title$ PRINT TAB(8);TITLE2$ print print tab(6); "DATE: "; newdate$ print RETURN 6620 rem ...performance vs. original purchase ... print " total total" print tab(6);"stk date no. company stock purch current purchase" \ ;" current $ % dividend annual % of" print tab(6);"no. purch d shrs symbol xchng equiv price cost " \ +" value increase inc yield return assets" print for6$=" TOTALS : #####.##" \ +" #####.## ######.## ###.#" for5$=" ## /....../ ### /..../ /............/ /../ ##.### ##.### ####.##" \ +" ####.## #####.## ###.# ##.# ###.# ##.#" sum1=0 sum2=0 sum3=0 for i% = 1 to nstk% sum2=sum2 + NEWvalue(i%) next i% for i% = 1 to nstk% j% = i% if sortcheck$="yes" then j% = kode%(i%) pcntport = newvalue(j%)/sum2 * 100 print using for5$;i%,purdate$(j%),nshrs%(j%),symbol$(j%),namstk$(j%), \ xchng$(j%),equiv(j%),NEWprice(j%),totpurprice(j%),NEWvalue(j%), \ INCVALUE(j%),pcntinc(j%),yield(j%),ANYIELD(J%),pcntport if fn.mod%(i%,5) eq 5 then print sum1=sum1+totpurprice(i%) sum3=sum3+INCVALUE(i%) next i% sum4=sum3/sum1*100. print print using for6$; sum1,sum2,sum3,sum4 CONSOLE RETURN rem *---------- end of sub stock file print -------*  print for6$=" TOTALS : #####.##" \ +" #####.## ######.## ###.#" for5$=" ## /....../ ### /..../ /............/ /../ ##.### ##.### ####.##" \ +" ####.## #####.## ###.# ##.# ###.# ##.#" sum1=0 sum2=0 sum3=0 for i% = 1 to nstk% sum2=sum2 + NEWvalue(i%) next i% for i% = 1 to nstk% j% = i% if sortcheck$="yes" then j% = kode%(i%) pcntport = newvalue(j%)/sum2 * 100 print using for5$;i%,purdate$(j%),nshrs%(j%),symbol$(j%),namstk$(j%), \ xchng$(j%),equiv(j%),NEWprice(j%),totpurprice(j%),NEWvalue(j%), \ INCVALUE(j%),pcntinc(j%),yield(j%),ANYIELD(J%),pcntport if fn.mod%(i%,5) eq 5 then print sum1=sum1+totpurprice(i%) sum3=sum3+INCVALUE(i%) next i% sum4=sum3/sum1*100. print print using for6$; sum1,sum2,sum3,sum4 CONSOLE RETURN rem *--rem *----------------------------------------------* rem * STOCK GRAPH PROGRAM * rem * ------------------- * rem * * rem * COPYRIGHT: E.A. Valenzuela * rem * DATE: February 25, 1983 * rem * VERSION: 1.35 * rem *----------------------------------------------* rem ----- requires following subroutines ----- rem stkplot.bas rem linreg.bas rem stkbeta.bas rem scrnin.bas ... for screen handling rem portprfm.bas rem qksort%.bas COMMON option%,entry%, nstk%,morestock$ rem ... dimension arrays ... dim x0(99), x(99), y(99), xr(99), yr(99) dim key%(99), ynew%(99) rem ... define functions ... %include SCRNIN rem ... proceed to stkbeta ... INITIALIZE entry% = 3 900 rem ... print main menu ... if option% = 6 then GOSUB 9001 if option% = 9 then gosub 8000 rem ... return to main program ... drive$ = "A:" prog.name$ = "STKBASE" CHAIN DRIVE$ + PROG.NAME$ goto 99 rem --- other programs --- %include STKBETA %include STKPLOT %include LINREG %include PORTPRFM %include QKSORT% 99 end------- * rem * * rem * COPYRIGHT: E.A. Valenzuela * rem * DATE: February 25, 1983 * rem * VERSION: 1.35 * rem *----------------------------------------------* rem ----- requires following subroutines ----- rem stkplot.bas rem linreg.bas rem stkbeta.bas rem scrnin.bas ... for screen handling rem portprfm.bas rem qksort%.bas COMMON option%,entry%, nstk%,morestock$ rem ... dimension arrays ... dim x0(99), x(99), y(99), xr(99), yr(99) dim key%(99), ynew%(99) rem ... define functions ... %include SCRNIN rem ... proceed to stkbeta ... INITIALIZE entry% = 3 900 rem ... print main menu ... if option% = 6 then GOSUB 9001 if option% = 9 then gosub 8000 rem ... return to main program ... drive$ = "A:" prog.name$ = "STKBASE" CHAIN DRIVE$ + PROG.NAME$ goto 99 rem --- other programs --- %inclrem *_______________ section 5.1 __________________* rem * HISTORICAL STOCK PRICE FILE * rem * --------------------------- * rem * UPDATED: February 5, 1983 * rem * BY: Edward A. Valenzuela * rem * VERSION: 1.31 * rem *______________________________________________* rem *--- requires subroutines --- rem juldate%.bas rem stkprice.bas ... for jump vectors rem scrnin.bas 5500 rem if end #8 then 5529 if end #9 then 5539 OPEN "B:STKPRICE.DAT" AS 8 OPEN "B:STKFIL01.DAT" recl 80 AS 9 GOSUB 320 : rem .. read price file header dummy$ = fn.juldate$(newdate$) dummy = val(dummy$) nitem%=nstk% + 1 print "current date is "; newdate$ ; " = "; dummy FOR I%=1 TO NSTK% GOSUB 325 : rem ... read all prices GOSUB 310 : rem ... read all names NEXT I% GOSUB 325 : rem .. S&P 500 price goto 5517 5529 print "file B:STKPRICE.DAT not found" goto 5517 5539 print "file B:STKFIL01.DAT not found" ! 5517 CLOSE 8,9 5508 if end #4 then 5519 print clear$; fn.down$(2); \ fn.right$(10); "PRICE HISTORY FILE" print down$; fn.right$(15); "option list"; down$ print fn.right$(4); "0 = RETURN to main menu" print fn.right$(4); "1 = STORE prices in DAILY FILE" print fn.right$(4); "2 = STORE prices in WEEKLY FILE" print fn.right$(4); "3 = STORE prices in MONTHLY FILE" print fn.right$(4); "4 = STORE prices in QUARTERLY FILE" print fn.right$(4); "5 = STORE prices in ANNUAL FILE" print down$; fn.line$(17); fn.right$(10); bell$ ; input "SELECT option number: "; option% if option% <= 0 or option% > 5 then goto 900 ON option% goto 5501,5502,5503,5504,5505 5501 filename$ = "B:DAYHST.DAT" goto 5507 5502 filename$ = "B:WEEKHST.DAT" goto 5507 5503 filename$ = "B:MONTHST.DAT" goto 5507 5504 filename$ = "B:QUARTHST.DAT" goto 5507 5505 filename$ = "B:YEARHST.DAT" goto 5507 5507 OPEN FILENAME$ RECL 8 AS 4 GOTO 5511 5519 REM ... no file exists, create one ... CREATE FILENAME$ RECL 8 AS 4 5511 if end #4 then 5521 rem ... find size of data file ... area% = size( filename$ ) print "size of "; filename$; " is "; area%; " Kbytes" if area% < 1024 then goto 5523 rem ... FN.LAST.BLK% FINDS THE NUMBER OF THE FIRST RECORD OF THE LAST rem ... BLOCK OCCUPIED BY A RELATIVE FILE ... DEF FN.LAST.BLK%(FILE.NAME$,REC.SIZE%) FILE.SIZE% = SIZE(FILE.NAME$) FN.LAST.BLK% = ((FILE.SIZE% - 1) * 1024)/ REC.SIZE% + 1 RETURN FEND rem ... find END-OF-FILE by reading all records in last block ... read #4, fn.last.blk%(FILENAME$,8); num1% 5523 WHILE -1 read #4 ; dum1% WEND 5521 rem ... end of file on stock history file found ... print "EOF on unit #4 : "; filename$ rem ... print date, number of items ... print #4 ; dummy print #4 ; nitem% rem ... print the prices to file ... print #4 ; NEWPRICE(nitem%) : rem ... S&P 500 FOR I%=1 TO NSTK% print #4 ; NEWprice(I%) NEXT I% CLOSE 4 REM -------------------- END OF HISTORY FILE---------------- REM SUBROUTINE goto 5508 5509 RETURN .. FN.LAST.BLK% FINDS THE NUMBER OF THE FIRST RECORD OF THE LAST rem ... BLOCK OCCUPIED BY A RELATIVE FILE ... DEF FN.LAST.BLK%(FILE.NAME$,REC.SIZE%) FILE.SIZE% = SIZE(FILE.NAME$) FN.LAST.BLK% = ((FILE.SIZE% - 1) * 1024)/ REC.SIZE% + 1 RETURN FEND rem ... find END-OF-FILE by reading all records in last block ... read #4, fn.last.blk%(FILENAME$,8); num1% 5523 WHILE -1 read #4 ; dum1% WEND 5521 rem ... end of file on stock history file found ... print "EOF on unit #4 : "; filename$ rem ... print date, number of items ... print #4 ; dummy print #4 ; nitem% rem ... print the prices to file ... print #4 ; NEWPRICE(nitem%) : rem ... S&P 500 FOR I%=1 TO NSTK% print #4 ; NEWprice(I%) NEXT I% REM *------------ SUBROUTINE STKPLOT --------------* REM * ------------------ * REM * UPDATED: February 5, 1983 * REM * BY: Edward A. Valenzuela * REM * VERSION: 1.31 * REM *----------------------------------------------* rem ..... VARIABLE LIST ...... rem ... min, max rem ... y(nstk%) ... prices rem ... nr% ... number of returns (np%-1) rem ... np% ... number of prices in price file rem ... points% ... number of prices used in plot 298 rem ... find max and min ... np% = nr% + 1 new%=1 if np% <= 52 then points%=np% else points%=52 if np% <= 52 then goto 303 new% = np%-52 303 l%=0 for k%=new% to np% l%=l%+1 yr(l%) = y(k%) next k% min=yr(1) max=yr(1) for k%=2 to points% if yr(k%) > max then max=yr(k%) if yr(k%) < min then min=yr(k%) next k% range = max - min if auto.scale$="A" then goto 314 if max > 10.5 then goto 309 max = 10.5 top0$ = "10" top1$ = " 7" mid0$ = " 5" mid1$ = " 2" GOTO 321 309 if max > 21 then goto 311 max = 21 top0$ = "20" top1$ = "15" mid0$ = "10" mid1$ = " 5" GOTO 321 311 if max > 42 then goto 312 max = 42 top0$ = "40" top1$ = "30" mid0$ = "20" mid1$ = "10" GOTO 321 312 if max > 84 then goto 313 max = 84 top0$ = "80" top1$ = "60" mid0$ = "40" mid1$ = "20" GOTO 321 313 if max > 168 then goto 314 max = 168 top0$ = "160" top1$ = "120" mid0$ = "80" mid1$ = "40" GOTO 321 rem ... automatic scaling of the axes ... 314 scale.factor = (max - min )/21.0 sf = 1.0 / scale.factor offset = min top0$ = left$( str$( max ),4 ) top1$ = left$( str$( min + range*0.75 ),4 ) mid0$ = left$( str$( min + range*0.5 ),4 ) mid1$ = left$( str$( min + range*0.25 ),4 ) zero$ = left$( str$( min ),4 ) goto 322 321 rem ... transform into 0-21 scale.factor = (max)/21.0 sf = 1.0 / scale.factor offset = 0 zero$ = " 0" 322 for k%=1 to points% ynew = (yr(k%)-offse"t)*sf ynew%(k%) = int%( YNEW ) next k% rem ... do bar chart ... rem ... clear screen, position cursor at upper left ... console : rem ... print y-axis scale ... dash$ = "--------------------------------------------------" print clear$; tab(10); namstk$ print fn.line$(3) ; fn.right$(6); dash$ print fn.line$(8) ; fn.right$(6); dash$ print fn.line$(13); fn.right$(6); dash$ print fn.line$(18); fn.right$(6); dash$ print fn.line$(3) ; top0$ print fn.line$(8) ; top1$ print fn.line$(13); mid0$ print fn.line$(18); mid1$ print fn.line$(23); zero$; home$ scr=61444 rem ... form y-axis line ... for k%=1 to 22 j%=22-k% if ( fn.mod%(j%,5) eq 5 ) then ch%=12 else ch%=11 scr=scr+128 poke scr,ch% next k% rem ... form x-axis line for k%=1 to 52 if ( fn.mod%(k%,5) eq 5 ) then ch%=12 else ch%=27 scr=scr+1 poke scr,ch% next k% print fn.line$(23); tab(10); "5"; " 10"; \ " 15"; " 20"; " 25"; " 30"; " 35"; \  " 40"; " 45"; " 50"; home$ rem ... position cursor at bottom left ... scr=64133 ch%=127 for l%=1 to points% k% = ynew%(l%) for j%=1 to k% if k% = 0 then goto 329 poke scr,ch% 329 scr=scr-128 if scr < 61440 then goto 299 next j% scr=64133+l% if scr > 65535 then goto 299 next l% RETURN 299 print "error in graphics";scr;ch% RETURN fn.line$(13); mid0$ print fn.line$(18); mid1$ print fn.line$(23); zero$; home$ scr=61444 rem ... form y-axis line ... for k%=1 to 22 j%=22-k% if ( fn.mod%(j%,5) eq 5 ) then ch%=12 else ch%=11 scr=scr+128 poke scr,ch% next k% rem ... form x-axis line for k%=1 to 52 if ( fn.mod%(k%,5) eq 5 ) then ch%=12 else ch%=27 scr=scr+1 poke scr,ch% next k% print fn.line$(23); tab(10); "5"; " 10"; \ " 15"; " 20"; " 25"; " 30"; " 35"; \ rem ************************************************ rem * STOCK PRICE DATABASE PROGRAM * rem ************************************************ rem * MAIN PROGRAM 2 - STKPRICE.BAS * rem * ----------------------------- * rem * COPYRIGHT: Edward A. Valenzuela * rem * DATE: February 5, 1983 * rem * VERSION: 1.31 * rem ************************************************ COMMON OPTION%,entry%, nstk%,morestock$ rem ---------- functions used in program ------------------------------- %include scrnin %include juldate% n%=50 dim nshrs%(n%),namstk$(n%),xchng$(n%),equiv(n%) dim purdate$(n%),totpurprice(n%),commission(n%) dim incvalue(n%),pcntinc(n%),anyield(n%),key%(n%) dim X$(N%),day%(n%),symbol$(n%) DIM NEWPRICE(N%),OLDPRICE(N%),NEWVALUE(N%) dim dividend(n%),YIELD(N%) rem ... stock beta calculation arrays ... m%=50 dim x(m%),y(m%),x0(m%),xr(m%),yr(m%),x%(m%),kode%(m%) entry% = 2 900 REM ...PRINT MAIN MENU... if option% = 4 THEN GOTO 940 if option% = 5 then goto 950 GOTO 990 rem -----end of screen option menu----- 940 rem ...... performance summary ...... rem ...... versus original purchase ...... gosub 7000 goto 900 950 rem ...... update weekly stock prices ...... gosub 5000 goto 900 990 rem ..... return to original menu ..... drive$ = "A:" prog.name$ = "STKBASE" CHAIN DRIVE$ + PROG.NAME$ goto 999 rem ************************************************ rem * SUBROUTINES * rem ************************************************ %include stkupdat %include stkprfm %include stkfprnt %include stkhist %include qksort% %include qksort$ rem *---------------- END STKPRICE ----------------* rem ... jump vectors for reading and writing files rem ----------------------------------------------- 310 rem ... unit number 9 READ #9; nshrs%(i%), namstk$(i%), symbol$(i%), xchng$(i%), purdate$(i%), \ commission(i%), totpurprice(i%), key%(i%), dividend(i%) RETURN 315 rem ... read nstk% records rem ... use i% for array element FOR i% = 1 to nstk% GOSUB 310 NEXT i% RETURN 320 rem ... unit number 8 READ #8; nstk%, newdate$, olddate$ RETURN 325 rem ... use i% for array element READ #8; newprice(i%),oldprice(i%) RETURN 330 rem ... read nstk% records FOR i% = 1 to nstk% GOSUB 325 NEXT i% RETURN 335 rem ... unit number 9 PRINT #9; nshrs%(i%), namstk$(i%), symbol$(i%), xchng$(i%), purdate$(i%), \ commission(i%), totpurprice(i%), key%(i%), dividend(i%) RETURN 340 rem ... print nstk% records rem ... use i% for array element FOR i% = 1 to nstk% GOSUB 335 NEXT i% RETURN 345 rem ... unit number 8 PRINT #8; nstk%, newdate$, olddate$ RETURN 350 rem ... use i% for array element PRINT #8; newprice(i%), oldprice(i%) RETURN 355 rem ... print nstk% records FOR i% = 1 to nstk% GOSUB 350 NEXT# i% RETURN 999 end rem ************** MAIN PROGRAM END **************** 0 NEXT i% RETURN 320 rem ... unit number 8 READ #8; nstk%, newdate$, olddate$ RETURN 325 rem ... use i% for array element READ #8; newprice(i%),oldprice(i%) RETURN 330 rem ... read nstk% records FOR i% = 1 to nstk% GOSUB 325 NEXT i% RETURN 335 rem ... unit number 9 PRINT #9; nshrs%(i%), namstk$(i%), symbol$(i%), xchng$(i%), purdate$(i%), \ commission(i%), totpurprice(i%), key%(i%), dividend(i%) RETURN 340 rem ... print nstk% records rem ... use i% for array element FOR i% = 1 to nstk% GOSUB 335 NEXT i% RETURN 345 rem ... unit number 8 PRINT #8; nstk%, newdate$, olddate$ RETURN 350 rem ... use i% for array element PRINT #8; newprice(i%), oldprice(i%) RETURN 355 rem ... print nstk% records FOR i% = 1 to nstk% GOSUB 350 NEXTrem *_________________ section 5.0 ________________* rem * STOCK PRICE UPDATE ROUTINE * rem * -------------------------- * rem * UPDATED: January 10, 1983 * rem * BY: Edward A. Valenzuela * rem * VERSION: TRUNCATED FOR STOCK BASE PROGRAM * rem * -------------------------------- * rem * REVISION: 1.30 * rem *----------------------------------------------* rem ----- requires subroutines ----- rem scrnin.bas ... for screen handling 5200 rem ... update the current price of each stock ... print clear$ print "enter date of current stock prices: mo/dy/yr" input newdate$ nbegin%=1 sum1 =0 sum2 =0 sum3 =0 print clear$ GOSUB 5250 5210 for i%=nbegin% to nstk% print fn.line$(14) for j%=1 to 4 print fn.clear$(2,line%) next j% print fn.line$(16); \ "INSTRUCTIONS: ENTER stock price for "; namstk$(i%); BELL$ input NEWprice(i%) GOSUB 5250 : rem ...print heading GOSUB 5255 : rem ...print record next i% FOR I%=1 to nstk% oldval = nshrs%(i%)*OLDprice(i%) sum2 = sum2 + oldval newval = nshrs%(i%)*NEWprice(i%) sum3 = sum3 + newval NEWvalue(i%) = newval incvalue(i%) = newval - oldval sum1 = sum1 + incvalue(i%) rem ... check for no oldvalue ... if oldval = 0 then pcntinc(i%) = 0 else \ pcntinc(i%) = ( incvalue(i%)/oldval * 100. ) NEXT I% if sum2 = 0 then sum9 = 0 else sum9 = sum1/sum2 * 100. if end #8 then 5213 read #8; OLDprice(i%),dummyprice 5213 namstk$(i%)="S&P 500" print fn.line$(15); fn.clear$(2,line%) : \ print fn.clear$(2,line%) : \ print fn.line$(16); \ "INSTRUCTIONS: ENTER stock price for "; namstk$(i%); BELL$ input NEWprice(i%) incvalue(i%) = NEWprice(i%) - OLDprice(i%) if OLDprice(i%) = 0 then pcntinc(i%) = 0 else \ pcntinc(i%)=( incvalue(i%)/OLDprice(i%) * 100. ) rem ... ASK IF ANY MISTAKES ... PRINT print "You now have a chance to correct input errors" 5308 input "any price changes ? (y/n)?"; yes$ if yes$ = "n" or yes$ = "N" then goto 5310 input "enter number of stock for price change"; num% previous.value = nshrs%(num%)*newprice(num%) print "price for "; namstk$(num%); " is "; newprice(num%) input "enter correct price "; newprice(num%) oldval = nshrs%(num%)*oldprice(num%) newval = nshrs%(num%)*NEWprice(num%) sum3 = sum3 + newval - previous.value NEWvalue(num%) = newval incvalue(num%) = newval - oldval sum1 = sum1 + incvalue(num%) - (previous.value-oldval) rem ... check for no oldvalue ... if oldval = 0 then pcntinc(num%) = 0 else \ pcntinc(num%) = ( incvalue(num%)/oldval * 100. ) if sum2 = 0 then sum9 = 0 else sum9 = sum1/sum2 * 100. GOTO 5308 5310 rem ----- sort the percentage increases ----- 5250 rem ... home cursor, print header ... print home$ for j%=1 to 4 print fn.clear$(2,line%) next j% print home$ print tab(4); " ***** STOCK PRICE UPDATE *****" print print "number STOCK NAME OLD PRICE NEW PRICE change" print "---------------------------------------- ------" print RETURN 5255 rem ... display next record ... if i% < 6 then print fn.line$( 4 + fn.mod%(i%,5) ) else \ print fn.line$(24) : print fn.line$(9) pq = newprice(i%) - oldprice(i%) print using \ " ### / stock name / ##.### ##.### ###.###" ; \ i%,namstk$(i%),oldprice(i%),newprice(i%),pq RETURN 5410 rem ----- SUBROUTINE WRITE TO FILE ----- print # 1 ; nstk%,newdate$,olddate$ for i%=1 to nstk% print #1; NEWprice(i%),OLDprice(i%) next i% print #1; NEWprice(i%),OLDprice(i%) : rem S&P 500 rem ...... close all open files ...... CLOSE 1 5480 RETURN 5999 RETURN rem *------------ end of weekly update ------------*em ... home cursor, print header ... print home$ for j%=1 to 4 print fn.clear$(2,line%) next j% print home$ pr$83.035 11 146.14 19.5 37 35.125 39.5 20.375 26 15.75 33 10 29.625 83.038 11 146.93 20.25 36.75 35.25 40.25 21 26.5 15.5 34.125 11 29.875 83.04 11 145 20.125 35.75 33.625 40.375 20.75 28 15.5 32.625 11 28.75 83.041 11 147.5 20.875 36.5 35 41 21.5 29.5 15.5 33 11.125 30.125 83.042 11 147.63 20.5 36.5 34.875 41.375 21.5 29.75 16 34 11.25 30.125 83.045 11 148.92 20.875 37.5 36.375 45.375 21.375 29.75 17 34 11.25 29.625 83.046 11 148.3 20.5 38 35.75 44.875 20.875 29.25 16.5 33.75 11.375 29.25 83.047 11 147.43 20.125 38 36 44.25 20.125 28.75 17 33.875 11.25 29.25 83.48 11 147.44 20.25 37.5 36 43.875 19.625 28.5 17 33.375 11 29.5 83.49 11 148 20.875 37.875 35.875 44.25 19.75 29.75 18.25 33.75 10.875 29.625 83.53 11 145.48 20.625 37.75 35.75 45.25 19 29.5 17.75 32.375 11.5 29.25 83.54 11 146.79 20.5 37.75 36 47.5 19 29.5 17.25 30.375 11.375 30.5 83.55 11 149.6 20.25 39.25 36 47.5 20.375 30.25 17.25 31.375 11.5 31.25 83.56 11 149.74 20.5 40.375 36 47.375 20.125 30 16.5 32.25 11.75 31.25 83.59 11 148.06 20.25 40 35.75 48.125 19.125 30 17.25 31 11.625 31 83.61 11 150.88 20.25 40.25 36.5 49 19 29.75 17.75 31 11.375 31.75 83.62 11 152.3 19.875 40.125 37.25 48.5 20.125 30 18.25 30.375 11.5 31.625 83.63 11 153.48 19.5 41 38.75 47.375 20 32.75 18.25 29.75 11.5 31.875 83.64 11 153.67 19.25 41 40 45.625 19.125 32.75 18 30.125 11.5 31.75 82,"aeroflex labs","ARX","AMEX","5/19/81",35,1454.73,1,0 100,"andrew corp","ANDW","OTC","12/09/81",0,2075,2,0 40,"automatic data proc","AUD","NYSE","3/12/80",30,710,3,0 53,"aydin corp","AYD","NYSE","7/28/80",35,1119.46,4,0 25,"Baker International","BKD","NYSE","12/22/82",0,562.5,5,0 100,"cipher data products","CIPD","OTC","1/20/83",65.11,2715.11,6,0 248,"computer data","CPTD","OTC","1/20/81",35,1327.43,7,0 50,"cooper industries","CBE","NYSE","5/18/82",35,1585.86,8,0 85,"dayco","DAY","NYSE","7/14/80",42,985,9,0 16,"dow chemical","DOW","NYSE","6/30/81",30,300,10,1.8 åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå10,"3/4/83","2/4/83" 19.25,19.5 41,41 40,38.75 45.625,47.375 19.125,20 32.75,32.75 18,18.25 30.125,29.75 11.5,11.5 31.75,31.875 153.67,153.48 JULDATE%BASz{LINREG BAS|}~PORTPRFMBAS€�‚QKSORT$ BAS ƒ„QKSORT% BAS …†SCRNIN BAS‡ˆ‰SCRNIN2 BASŠ‹ŒSCRNIN3 BAS�Ž�STKFPRNTBAS�‘’STKGRAPHBAS “”STKHIST BAS•–—˜STKPLOT BAS™š›œSTKPRICEBAS�žŸ STKUPDTEBAS¡¢£¤DAYHST DAT¥¦STKFIL01DAT§STKPRICE$$$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå (Thió texô waó transcribeä bù Jií Switú oî 1¸ Sept®  8³ froí aî enclosurå tï � STKBASE¬ writteî bù Eä Valenzuela) Dear Investor: Encloseä  yoõ wilì finä twï single-sideä single-densitù Osbornå  formaô � disks® Theså contaiî thå STKBASÅ prograí aó describeä iî thå FOÇ newsletteò � anä thå Portablå Companion®  BEFORÅ YOÕ DÏ ANYTHINÇ ELSE¬  MAKÅ TWÏ OÒ MORÅ � BACKUP COPIES OF THE TWO DISKS. Now proceed. Therå arå CBASIà prograí files¬ witè suffiø BAÓ scattereä oî thå disks® � Therå arå CBASIà run-timå intermediatå files¬  witè suffiø INÔ oî onå oæ thå � disks® Thå disë witè thå INÔ fileó oî iô ió whaô É calì thå "programó disk¬ � disë #1"®  Therå arå samplå datá files¬  witè suffiø DAÔ oî thå otheò oæ thå � twï disks¬  whicè É calì thå "datá fileó disk¬ disë #2"® Thuó yoõ shoulä bå � ablå  tï seå á demonstratioî bù placinç thå programó disë witè thå INÔ fileó � oî  onå  drivå  anä  thå  datá fileó disë oî  thå  other¬  Á  anä  Â  driveó � respectively¬  afteò thå programó havå beeî load%eä bù CBASIC® Therå ió alsï � á documentatioî file¬  witè suffiø DOà oî thå disk®  BEFORÅ DOINÇ  ANYTHINÇ � ELSE¬ PRINÔ OUÔ THIÓ FILÅ ANÄ REAÄ IT® It'ó calleä STOKBASE.DOà anä yoõ caî � uså eitheò Wordstaò oò PIÐ tï lisô thå file® Iæ yoõ trù runninç thå demï oî � thå  backups¬  notå thaô thå optionó havå beeî renumbered®  Buô thå choiceó � arå stilì correct®  Therå isn'ô enougè disë storagå oî thå originaì prograí � diskó  tï creatå ne÷ files¬  sï don'ô trù thå betá calculatioî  oò  updatinç � pricå  infï withouô copyinç thå fouò samplå datá fileó oveò tï anotheò  disë � witè  rooí  foò thå backuð fileó anä ne÷ fileó (therå arå ³ DAÔ fileó anä  ± � BAË file)® Thió onlù applieó tï thå samplå runs. Makå á directorù listinç oæ botè diskó now¬ tï insurå thaô yoõ havå twï � distincô diskó witè alì theså fileó oî them®  Wheî yoõ begiî tï creatå youò � owî  portfoliï  files¬  starô small®  Starô witè twï stockó oî á branä  ne÷ � formatteä disk®  Iæ yoõ successfullù completå that¬  theî gï bacë anä starô � oveò  oî thå reaì portfolio®  Enteò á fe÷ stockó aô á timå anä keeð  makinç � backupó sï yoõ won'ô loså everythinç bù creatinç á ne÷ filå oveò aî olä  onå � thaô ;yoõ reallù wanteä tï save®  Gooä lucë witè thå program®  It'ó noô aó � user-friendlù   aó  iô  coulä  be®   Everybodù  seemó  tï  encounteò   somå � difficultieó  runninç  it¬  buô É thoughô thå benefitó Osbornå  useró  coulä � obtaiî  bù  usinç  iô waó wortè thå efforô involved®  É hadn'ô  planneä  oî � providinç thió copù service¬  É meanô foò peoplå tï joiî FOÇ tï geô it¬  buô � thå editoró sweet-talkeä må intï providinç thió service. Ed Valenzuela å ³ DAÔ fileó anä  ± � BAË file)® Thió onlù applieó tï thå samplå runs. Makå á directorù listinç oæ botè diskó now¬ tï insurå thaô yoõ havå twï � distincô diskó witè alì theså fileó oî them®  Wheî yoõ begiî tï creatå youò � owî  portfoliï  files¬  starô small®  Starô witè twï stockó oî á branä  ne÷ � formatteä disk®  Iæ yoõ successfullù completå that¬  theî gï bacë anä  This is the release date of the disk. STOKBASETXT € STKBASE INT €€;STKBASE2INT €!€<STKBASE3INT €1€<STKGRAP2INT €ASTKGRAP3INT €ISTKGRAPHINT €QSTKPRIC2INT €Y,STKPRIC3INT €d,STKPRICEINT €o,JULDATE%BAS €z€LINREG BAS €| PORTPRFMBAS €€QKSORT$ BAS €ƒSTKPRIC3.INT 8D CC 11264 88 STKPRICE.INT 72 C4 11264 88 JULDATE%.BAS E9 D4 1920 15 LINREG .BAS 2B 31 2304 18 PORTPRFM.BAS D0 FE 3968 31 QKSORT$ .BAS 3E E7 1536 12 QKSORT% .BAS DE D7 1536 12 SCRNIN .BAS A8 6A 2944 23 SCRNIN2 .BAS 27 FA 2944 23 SCRNIN3 .BAS AD BC 3072 24 STKFPRNT.BAS CE 8C 2176 17 STKGRAPH.BAS 93 CA 1152 9 STKHIST  Fog Library Disk FOG-CPM.081 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Disk 1 of 2. STOCKBASE to track stock performance. Filename Description -06-00 .86 This is the release date of the disk. -CPM081 .DOC This is the description of the disk contents. STOKBASE.DOC 9C30 12K [Stockbase 1 of 37] As described in the FOGHORN (and Portable Companion), this CBasic program (you need CRUN2 and CBAS2) can be used to track the performance of a stock portfolio. STOKBASE.TXT 3311 3K [Stockbase 2 of 37] STKBASE .INT E970 15K [Stockbase 3 of 37] STKBASE2.INT D68D 16K [Stockbase 4 of 37] STKBASE3.INT 635A 16K [Stockbase 5 of 37] STKGRAP2.INT E3D1 8K [Stockbase 6 of 37] STKGRAP3.INT FE34 8K [Stockbase 7 of 37] STKGRAPH.INT 0508 8K [Stockbase 8 of 37] STKPRIC2.INT 33FF 11K [Stockbase 9 of 37] STKPRIC3.INT 8DCC 11K [Stockbase 10 of 37] STKPRICE.INT 72C4 11K [Stockbase 11 of 37] JULDATE%.BAS E9D4 2K [Stockbase 12 of 37] LINREG .BAS 2B31 3K [Stockbase 13 of 37] P&ORTPRFM.BAS D0FE 4K [Stockbase 14 of 37] QKSORT$ .BAS 3EE7 2K [Stockbase 15 of 37] QKSORT% .BAS DED7 2K [Stockbase 16 of 37] SCRNIN .BAS A86A 3K [Stockbase 17 of 37] SCRNIN2 .BAS 27FA 3K [Stockbase 18 of 37] SCRNIN3 .BAS ADBC 3K [Stockbase 19 of 37] STKFPRNT.BAS CE8C 3K [Stockbase 20 of 37] STKGRAPH.BAS 93CA 2K [Stockbase 21 of 37] STKHIST .BAS 4C83 4K [Stockbase 22 of 37] STKPLOT .BAS B237 4K [Stockbase 23 of 37] STKPRICE.BAS 563C 4K [Stockbase 24 of 37] STKUPDTE.BAS 7928 4K [Stockbase 25 of 37] DAYHST .DAT EFE2 2K [Stockbase 26 of 37] STKFIL01.DAT D0FA 1K [Stockbase 27 of 37] STKPRICE.DAT 187F 1K [Stockbase 28 of 37] CSTKBASE.LTR 943B 3K [Stockbase 29 of 37] S 93CA 2K [Stockbase 21 of 37] STKHIST .BAS 4C83 4K [Stockbase 22åååå'ååååå