########################## HELP & INFORMATION ######################### v1.0
 
(1) SYSTEM:
      SETUP........: F1..F6      = SETUP LEVELS TO VIEW DIFFERENT CHARTS.
                     F10         = SAVE SETUP CHANGES & REBUILD THE CHART.
                     MOUSE-LEFT  = ENTER.
                     MOUSE-RIGHT = ESCAPE.
      PROFIT STATS.: SHOWS STATISTICS OF CURRENT CHART PROFIT DATA.
      HELP INFO....: HERE!  YOU CAN VIEW, EDIT, AND SAVE (Ctrl-S) THE HELP FILE.
      EXIT TO DOS..: GOES TO DOS, TYPE "EXIT" TO RETURN TO ABACKTEST.
      QUIT.........: DONE.
 
(2) ITEM TO CHART:
      ADD CHARTABLES.....: SELECT CHARTABLE TYPE, NAME, & LOCATION ON LIST.
      DELETE CHARTABLES..: SELECT CHARTABLE NAME TO DELETE FROM LIST.
 
(3) EDIT CHARTABLES:
      CHARTABLES..: SELECT CHARTABLE TO VIEW, EDIT AND/OR COMPILE.
      RAWDATA.....: CREATE NEW DATA FILE.....: NAME A NEW RAW DATA FILE.
                    VIEW BUILT MARKET FILE...: VIEW DATA BUILT BY CHARTABLES.
                    EDIT EXISTING DATA FILE..: SELECT & CHANGE DATA VALUES.
                    ADD DATA TO END OF FILE..: ADD DATA VALUES.
 
(4) CHART:
      PAGE-UP     = MOVES SCREEN 1/2 PAGE TO THE RIGHT >> END.
      PAGE-DOWN   = MOVES SCREEN 1/2 PAGE TO THE LEFT << START.
      UP-ARROW    = MOVES CROSS HAIRS UP ONE PIXEL.
      DOWN-ARROW  = MOVES CROSS HAIRS DOWN ONE PIXEL.
      LEFT-ARROW  = MOVES CROSS HAIRS LEFT ONE PIXEL.
      RIGHT-ARROW = MOVES CROSS HAIRS RIGHT ONE PIXEL.
      CTRL LEFT-ARROW  = MOVES CROSS HAIRS LEFT 30 PIXELS.
      CRTL RIGHT-ARROW = MOVES CROSS HAIRS RIGHT 30 PIXELS.
      =           = MOVES SCREEN TO END, >> RIGHT MOST PAGE.
      -           = MOVES SCREEN TO START, << LEFT MOST PAGE.
      1..9        = MOVES SCREEN (#) OF 1/2 PAGES TO THE RIGHT.
      F4          = SHOWS NEXT INDICATOR DOWN ONE.
      F5          = SHOWS NEXT INDICATOR UP ONE.
      C           = CLEANS & RESETS CHART SCREEN TO NORMAL.
      MOUSE-RIGHT = MOVES SCREEN 1/2 PAGE TO THE RIGHT >> END.
      MOUSE-LEFT  = MOVES SCREEN 1/2 PAGE TO THE LEFT << START.
      MOUSE-BOTH  = ZOOMS -- PRESS BUTTONS AT HIGH & RELEASE BUTTONS AT LOW.
      MOUSE-BOTH  = INVERT ZOOMS -- PRESS BUTTONS AT LOW & RELEASE AT HIGH.
 
This program is for back-testing systems using stock market or futures market
data.  If you have the data, it will chart back 100 years any system you
develop.  It will accept 5, 15, 30, and 60 minute data as well as CL daily data.
The UNIT APROCEDU takes care of all the file and time manipulations so you can
concentrate on your system.  This program works on CGA, EGA, & VGA, but Hercules
has problems with the mouse.  The following gives important information about
the program:
 
(1)...Setup- You can change chart levels at any time without the chartables
       being re-built from scratch by pressing F1..F6 and then escape.
       If you press F10 to save then all the chartables in that level
       will be re-built from scratch because it assumes you have made a
       change to the system that will effect all the chartables.  I mention
       this because it takes a lot of time to re-build a chart.
      Profit- There is always only a 50 percent probability that your system
       is a winner or looser.  The '50' won't change.
 
(2)...Add chartables- You MUST have MARKET and PROFIT chartables selected
       to do a chart. If you add, delete or change a chartables position in the
       list then all chartables after that will be re-built from scratch because
       it assumes that any chartables beyond that chartable you changed may
       accesses data from that chartable.  It is best to add chartables to the
       end of the list when ever possible so all the chartables don't get
       re-built.  If you have a chartable that accesses other chartables then
       the chartables being accessed must be in the list before that chartable
       doing the accessing.
 
(3)...Chartables- If you select a chartable to edit then when you exit the
       word processor the chartable will be re-built and all chartables in
       the list after that chartable will be re-built also.
       All chartables must start with "Howtochart(...)" and end with "Done".
       The 'programname' MUST be the same as the name of the chartable
       program saved.  The 'programname' MUST be in the format XXXXXX-P.tic
       where ti=time interval (05,15..60 or CL) and c=chartable type (M,I or P)
       and XXXXXX=any name you want to describe your chartable.
      Rawdata- I have not included a selection to delete data, you may only
       modify data or add data to the end.
 
(4)...Chart- Icolor=indicator color at arrow, Pcolor=profit color at arrow.
       The Thick horizontal line between the Market chart and the Profit chart
       shows how much and what part of the data is being viewed.  One Chart
       screen can display over three years of daily (CL) data.  If a chartable
       is not built or is programed wrong then the program will produce an
       error and halt (you will have to re-run the program).  The following
       are some of the pascal system errors that a chartable may produce:
 
          100 - Disk reak error.... ie.. problem reading your program.
          002,003,
          103 - File not open...... ie.. file not in list.
          200 - Division by zero... ie.. (5/0)  s/b (5/(0+5e-5)).
          201,205,
          207 - Range check error.. ie.. longint>65535 or word>255.
          204 - Invalid pointer.... ie.. array[1..10] is array[(#>10)].
 
       First go back to Edit Chartables to make sure the chartable 'programname'
       is correct and matches the name of your chartable program. Then check
       the chartable program its self.  If you want to re-build all chartables
       in the list then either Edit your Market chartable or save the Setup with
       the F10 key.  The following is an explination of the CHART screen:
 
                    CHART SCREEN
╔═════════════════════════════════════════════════════╗
║ -(1)-     -(2)-      -(3)-     -(4)-         -(5)-  ║
║ -(6)-                       -(7)-                   ║
║                          |                          ║
║                         (Y)                         ║
║                          |     MARKET DATA          ║
║                          |          &               ║
║                          |    INDICATOR DATA        ║
║                          |        SCREEN            ║
║                          |                          ║
║                          |                          ║
║ -(8)-  -(9)-  -(10)-  -(11)-  -(12)-  -(13)-        ║
╠     -(14)-          ═════╪══════-(15)-══════════════╣
║ -(16)-              -(17)-           -(18)-         ║
╟---------(X)--------------Ω--------------------------╢
║                          |        PROFIT SCREEN     ║
║                          |                          ║
╚═════════════════════════════════════════════════════╝
   (X) = Pointer X Cross Hair.
   (Y) = Pointer Y Cross Hair.
   (1) = Selected INDICATOR data name & number (0-6 selectable with F4 & F5).
   (2) = Selected Indicator data VALUE at Y Cross Hair.
   (3) = Selected Indicator data COLOR at Y Cross Hair.
   (4) = PROFIT COLOR at Y Cross Hair.
   (5) = Cross Hair X & Y location.
   (6) = MARKET data name.
   (7) = MARKET or PROFIT data PRICE at Cross Hair X & Y location.
   (8) = MARKET data PRICE CLOSE at Y Cross Hair.
   (9) = MARKET data PRICE HIGH at Y Cross Hair.
  (10) = MARKET data PRICE LOW at Y Cross Hair.
  (11) = MARKET data PRICE VOLUME at Y Cross Hair.
  (12) = MARKET data DATE (YEAR/MONTH/DAY) at Y Cross Hair.
  (13) = MARKET data TIME (24 HOUR TIME) at Y Cross Hair.
  (14) = Amount of total data presently being viewed on screen (press 1..9).
  (15) = Amount of total data NOT presently being viewed on screen.
  (16) = TOTAL PROFIT from start of data to end of present screen.
  (17) = SCREEN PROFIT from start of present screen to end of present screen.
  (18) = PROFIT data PRICE at Y Cross Hair.
 
----------------------------------------------------------------------------
 -------- APROCEDURE CHARTABLE PASCAL UNIT COMMANDS AND VARIABLES --------
----------------------------------------------------------------------------
The good news - APROCEDU should give you the ability to view and manipulate
                up to 100 years of stock and futures market data almost any
                way you want.
The bad news  - APROCEDU is not user friendly.  You must know how to
                program in PASCAL and you must also supply your own TURBO
                PASCAL 5.0 COMPILER if you want to modify any of the CHARTABLES.
 
When writing your chartable program remember to wait atleast one time unit
after your indicator says to buy or sell before your profit program does the
buy or sell.  Also remember that you must always end the buy or sell transaction
with a final sell or buy (at the end or any direction change of a trade). For
example one complete transaction will have you buy 1 contract to enter a trade
and then sell 1 contract to exit the trade or you may sell 2 contracts to change
direction of the trade.
 
The following are procedures, functions, variables, and constants you
have access to from UNIT APROCEDU.TPU.  I have included the source code
{APROCEDU.PAS} for those of you that want to add to or modify the UNIT for
your own use.  I am always interested in seeing improvements or modifications
to the chartables or the UNIT.
 
TYPE
    mktdata = RECORD {MARKET, & RAW DATA FIELDS}
               time   :STRING[12];{DATE & TIME 199108020600 DONT WRITE TO TIME}
               last   :REAL;
               high   :REAL;
               low    :REAL;
               vol    :REAL;
             END;
 
    inddata = RECORD {PROFIT & INDICATOR DATA FIELD}
               data  : REAL;  {IE.. HIGH, LOW, LAST}
               color : BYTE;  {LINE COLOR}
              END;
 
VAR
     marketdata    :        mktdata; {ACCESS TO MARKET & RAW STOCK DATA}
                                     {time,last,high,low,vol}
     indicatordata :        inddata; {ACCESS TO INDICATOR & PROFIT DATA}
                                     {data,color}
 
CONST
           {charttypes} {FOR PROCEDURE HOWTOCHART}
      candlestick   =1; {MARKET TYPE}
      highlowclose  =2; {MARKET TYPE}
      line          =3; {INDICATOR & PROFIT TYPE}
          {chartadjust} {FOR PROCEDURE HOWTOCHART}
      dontdraw      =0; {USE IF DATA IS CLUTTERING SCREEN}
      autoadjust    =1; {USE IF DATA IS INDEPENDENT OF THE MARKET}
      followmarket  =2; {USE IF DATA FOLLOWS THE MARKET, IE.. MOVING AVERAGES}
      hundredpercent=3; {USE IF DATA VALUES ARE 0..100, IE.. STOCKASTICS}
      lock          =4; {USE IF NO ADJUSTMENT NEEDED AFTER FIRST AUTOADJUST}
      realtimeprofit=5; {USE FOR $link datafeed piggyback for real time}
      nochartdata =255; {USE IF NOT CHARTING,[PROFIT ONLY-LOOP OPTIMIZING]}
           {dayofweeknow} {FOR PROCEDURE DAYOFWEEKNOW}
      sunday        =1;
      monday        =2;
      tuesday       =3;
      wednessday    =4;
      thursday      =5;
      friday        =6;
      saturday      =7;
           {linecolors} {FOR INDICATORDATA.COLOR}
      blue          =1;
      green         =2;
      cyan          =3;
      red           =4;
      magenta       =5;
      brown         =6;
      lightgray     =7;
      lightblue     =9;
      lightgreen   =10;
      lightcyan    =11;
      lightred     =12;
      lightmagenta =13;
      yellow       =14;
      white        =15;
         {FOR ALL}
PROCEDURE Howtochart(charttype:BYTE;chartadjust:BYTE;programname:STRING);
PROCEDURE Writechartdatafile; {INDICATORDATA OR MARKETDATA TYPE}
         {FOR PROFIT & INDICATOR}
PROCEDURE Readmarketfile; {MARKETDATA TYPE}
         {FOR PROFIT & INDICATOR}
PROCEDURE Openindicatorfile(inumber:BYTE;iname:STRING); {inumber = 1..18}
PROCEDURE Readindicatorfile(inumber:BYTE); {INDICATORDATA TYPE}
         {FOR MARKET & INDICATOR}
PROCEDURE Openrawstockfile(rnumber:BYTE;rname:STRING);  {rnumber = 1..6}
PROCEDURE Readrawstockfile(rnumber:BYTE); {MARKETDATA TYPE}
         {FOR ALL}
PROCEDURE Nexttime; {MOVES DATAPOINTERS TO DATA FOR TIMENOW}
FUNCTION  Timenow:STRING; {13:45 = '1345'}
FUNCTION  Daynow:STRING; {06/12/91 = '19910612'}
FUNCTION  Dayofweeknow:BYTE; {1..7 = SUNDAY..SATURDAY}
FUNCTION  Alldone:BOOLEAN; {TEST FOR END OF PROGRAM -TRUE=FINISHED}
PROCEDURE Done; {CLOSES FILES AND HALTS PROGRAM, ALWAYS AT END OF PROGRAM}
          {ONLY FOR PROFIT - ENDLESS LOOP OPTIMIZING OR REAL-TIME}
PROCEDURE Closeall; {SAME AS DONE EXCEPT WONT HALT THE PROGRAM}
FUNCTION  Indicatortime:BOOLEAN; {TRUE= START>TIMENOW<END INDICATOR TIME}
----------------------------------------------------------------------------
----------------------------------------------------------------------------
                             ABACTEST.EXE
 
        Version 1.0, 06/12/1991, (c) Copyright Dean Adams 1991
            WARNING! USE THIS PROGRAM AT YOUR OWN RISK!
 
    ABACTEST.EXE and related support programs are freeware.  It means
    that it bears my copyright notice, but you are encouraged to copy
    it to your friends and anybody who wants it, provided you obey the
    following four rules:
        1) You may not sell the program.
        2) You may not take any money for copying the program.
        3) You may not use the program commercially without my approval.
        4) You may not remove my copyright notices from the program.
    If you have suggestions or questions about the program, contact the
    following address:
 
                           Dean Adams
                           22228 Tioga Place
                           WestHills, CA  91304
END..