                                                                            
  
       
       
       Parity
       
       Technical Analysis System
       
       
       
       Version 1.5
       
       
       
       User's Guide
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       Copyright c 1991, 1992, 1993 Paul Rickert.  All Rights Reserved.
       
       The software described in this document is provided under the terms
       of a license Agreement.  Please read it carefully.  The software may
       be used or copied only upon acceptance and in accordance with the
       terms of this agreement.  Unauthorized use, duplication,
       distribution, or disassembly is strictly prohibited by federal law.
       
       Parity, Parity Plus, Price Painter, Mark It and The Display Matrix
       are trademarks of ParTech Software Systems.
       
       MetaStock, The Technician, and The Downloader are trademarks of EQUIS
       International.
       CompuTrac is a trademark of Compu Trac Software Inc.
       OptionExpert is a registered trademark of AIQ Systems Inc.
       TeleChart 2000 is a trademark of Worden Brothers, Inc.
       
       
       
       ParTech Software Systems
       Two Bryant Street, Suite 200
       San Francisco, CA  94105
       Tel:   (415) 546-9316
       Fax:  (415) 546-9319
       
       
       Printed in the United States of America

Table Of Contents
       
       Part 1      Introduction                                3
            What Is Parity?                                    4
            Parity and Shareware                               4
            About Parity Plus                                  5
            System Requirements                                5
            Customer Support                                   6
            Installing Parity                                  6
            Price Data                                         7
       
       Part 2      Basic Concepts                              8
            Charts                                             8
            Groups                                             8
            Studies                                            9
            Batches                                           10
            Clusters                                          10
            The Display Matrix                               11
            Profit Testing                                    12
            Scanning and Filtering Securities in a Group      12
       
       Part 3      The Tool Bar                               13
            The Tool Bar                                      13
                 Moveable Versus Fixed Tool Bar               13
                 Action Tools                                 14
                 Display Tools                                15
                 Menu Shortcut Tools                          16
                 Window Management Tools                      16
       
       Part 4      Menu Commands                              16
            File Menu                                         16
            Edit Menu                                         17
            Groups Menu                                       17
                 Load a Security                              17
                 Create or Modify Group                       19
                 Select a Group                               20
                 Reorder a Group                              21
                 Save All Groups                              22
                 Delete Groups                                22
                 Display Group or Security                    22
                 Import Other Formats                         22
            Studies Menu                                      25
                 Study Commands                               25
                 Create/Modify Current Study                  25
                 Formula Editor                               26
                 Pane Layout Editor                           28
                 Color Editor                                 30
                 Options Editor                               30
                 Action Editor                                31
                 Select a Study                               32
                 Save All Studies                             32
                 Delete Study                                 33
                 Import Study From Disk                       33
                 Export Study To Disk                         33
                 Display Current Study                        33
                 Batch Studies                                33
                 Select a Batch                               34
                 Reorder Batch                                34
                 Save All Batches                             34
                 Delete Batch                                 34
            Clusters Menu                                     35
                 Make a Cluster                               35
                 Select a Cluster                             35
                 Save All Clusters                            35
                 Delete Cluster                               36
                 Display Current Cluster                      36
            Pointer Menu                                      36
            Options Menu                                      37
                 Default Study                                37
                 Chart Preferences                            38
                 Directory and File Preferences               38
                 Tool Bar Options                             39
            Window Menu                                       39
            Help Menu                                         40
       
       Part 5      Indicators & Chart Procedures              40
            Technical Indicators                              41
                 List of Predefined Technical Indicators      41
                 Bibliography of Technical Analysis Texts     43
            Definition and Interpretation of Technical Indicators  43
            MetaStock Function Compatibility                  45
            Procedures vs. Functions                          46
            Chart Procedures                                  46
            Point and Figure Charts                           48
                 The Point and Figure Procedures              49
            Adding Lines to a Chart                           51
       
       Part 6      Formulas, Operators & Functions            52
            User Defined Custom Formulas                      52
            Arrays versus Scalars                             54
            Predefined Variables                              56
            Operators, Parenthesis and Mathematical Precedence58
            Arithmetic Operators                              58
            Comparison Operators                              58
            Logical Operators                                 59
            Trigonometric Functions                           59
            Exponential Functions                             60
            Rounding Functions                                60
            Array Related Functions                           61
            Statistical Functions                             61
            Date Functions                                    62
            Pattern Recognition Functions                     63
            ForLoop Function                                  64
       
       Part 7      File Formats Supported                     66
            The MetaStock/CompuTrac Format                    67
            ChartPro File Format                              67
            Comma Separated ASCII Files                       68
            TeleChart 2000 Files                              69
       
       Part 9      Odds and Ends                              69
            Printing Charts                                   69
            The Data Microscope                               71
            Windows 3.0 System Resources                      71
            System Requirements and Execution Speed           72
            Problems and Solutions                            73
                 The Hour Glass Cursor                        73
                 Incomplete Charts and System Resources       73
       
       Appendix    74
            Data Vendors                                      74
            Other Resources                                   77
       
Part 1         Introduction

       Welcome to the Parity Technical Analysis System.  This User's Guide
       is a comprehensive guide to all of the features and procedures
       offered by the Parity software.  Most of the text of this manual is
       also available through Parity's on-line Help files.  You can access
       Parity's help at any time by pressing F1 or by clicking on the Help
       button on most of Parity's forms and dialog boxes.
       
       We strongly recommend that you read the Basic Concepts and The Tool
       Bar sections of the manual and follow the brief tutorial described in
       the "Getting a Head Start" section of the READ_1ST.TXT file included
       in your Parity Installation Disk.  This should give you enough of an
       overview to permit you to quickly become productive using Parity.
       
       The Menu Command sections are a reference to all the commands that
       are available from Parity's Menu Bar.  You will benefit from a
       careful reading of the Create/Modify Current Study section and the
       detailed description of each of the Study Editors which follows.
       
       More advanced users should skim through the Indicators and Chart
       Procedures section to get a sense of the full range of tools Parity
       gives you for creating charts incorporating a wide variety of
       technical indicators and chart types.  The Technical Indicators
       section also includes a bibliography for the best technical analysis
       books we have found.  We strongly recommend John Murphy's "Technical
       Analysis of the Futures Market" for a beginning text, and Perry
       Kaufman's "The New Commodity Trading Systems and Methods" for a
       comprehensive overview of technical analysis.  These books are
       excellent for the analysis of stocks as well as commodities.
       
       Part 6, Formulas, Operators and Functions, is designed as a reference
       guide to the various functions and operators which are available to
       you when you want to chart your own formulas and indicators.  This
       section assumes a fair amount of knowledge about standard math and
       computer notations and conventions.  You will probably want to ignore
       this part of the manual until you are ready to start creating
       formulas which express your own ideas about the best ways to analyze
       price data.
       
       Part 7, File Formats Supported, discusses the four data file formats
       that Parity supports directly and provides some tips about the merits
       of each.
       
       Part 9, Odds and Ends, includes some general comments about printing
       charts with Parity and some of the program's idiosyncrasies.
       
       As you use Parity please remember that when you make a mistake in a
       formula you are trying to chart, Parity will seem to "freeze up" and
       the mouse cursor will be locked into an hour glass shape.  Just hit
       the up arrow key and you can proceed normally.  Occasionally an error
       may occur when you have a form or dialog box open.  Normally you can
       recover by pressing the up arrow key and closing the  dialog box by
       double clicking on the control menu box in the upper left hand corner
       of the dialog box window.  This may indicate a bug in the program and
       we would appreciate it if you would report it to us.
       

What Is Parity?
       
       Parity is a Stock Charting and Technical Analysis Program designed to
       take full advantage of the Windows Graphical User Interface.  The
       program permits the user to design sophisticated charts of stock
       price data using a wide range of technical indicators and tools.
       
       Parity's charting capabilities permit you to graph a security's
       price, volume and up to nine indicators in a single chart using any
       combination of stacked or overlapping panes, each of which can
       include one or more indicators.
       
       Parity incorporates traditional Open, High, Low, Close charts, Line
       and Bar charts, Japanese Candlestick charts, Point and Figure charts,
       Equivolume charts, Horizontal Bar charts, and a Price at Volume chart
       which is similar to The Crocker Chartc.
       
       The program includes over 50 of the most popular predefined
       indicators plus a wide range of math and statistical functions.
       These indicators and functions can be combined in user defined
       formulas.
       
       The most innovative aspect of Parity is its unique use of Groups of
       Stocks, Batches of Studies, and Clusters of Charts in order to
       simplify the analysis of a large number of securities at one time.
       
       In order to manage the profusion of sophisticated charts you can
       design with Parity, virtually all of its settings can be saved to
       disk and recalled for another Technical Analysis Session.
       In addition, Parity provides a graphical Display Matrix that permits
       the user to easily jump from stock to stock and study to study.
       
       Parity Plus, the enhanced retail version of Parity, includes
       sophisticated profit testing and optimization tools that let you test
       your trading strategies against all the securities in a group.  You
       can summarize the results of a profit test for an entire group or
       examine summary and transaction details or drill down to daily
       details for every security in the group.  Parity Plus even lets you
       chart the cumulative profit and profit by position against price.
       
       With Parity Plus's scanning and filtering features you can generate a
       custom report showing the values of any indicators or user defined
       formulas you want for all the stocks in a group or screen for only
       those securities that meet your conditions.
       

Parity and Shareware
       
       Parity is distributed as Shareware.  Parity is not free or public
       domain software.  Shareware permits you to try Parity before you buy
       the software.  However if you continue to use Parity you must
       Register the software by paying the current licensing fee.
       
       Shareware provides a good channel for a software vendor to distribute
       its products without incurring the high marketing costs involved in
       normal commercial distribution of software.  These cost savings are
       passed onto the user through the lower cost of Parity compared to
       other "commercial" technical analysis programs.  Our goal is to make
       Parity the finest technical analysis program you can buy anywhere.
       
       In addition to the ability to "try before you buy", Shareware also
       permits us to make more frequent updates to Parity than would be
       possible with retail software.  The most recent version of Parity
       will always be available on the INVFORUM of CompuServe or through our
       BBS at (415) 751-1763.  We will also send you the most current
       version of Parity if you send us your credit card number or a check
       for $5 to cover the cost of shipping and handling.
       
       Feel free to "share" the evaluation version of Parity as long as you
       follow the guidelines in the LICENSE.TXT file included with the
       program.  However, you may not share the registered version of Parity
       or Parity Plus.
       

About Parity Plus
       
       Parity Plus is the Enhanced Retail Version (ERV) of Parity.  Parity
       Plus is only available directly from ParTech Software Systems or our
       designated distributors.  In addition to all of the great features of
       the shareware version, Parity Plus includes advanced features such as
       Profit Testing, Optimization, Stock Filtering and Scanning, Cycle
       Analysis, Data and File Maintenance, and Data Conversion.
       
       In this documentation we use Parity Plus and Parity interchangeably.
       Parity Plus is a unique and separate program with different features
       and a totally different distribution structure and license agreement
       from the shareware program Parity.  Our use of the name Parity in
       this documentation or the help files, to refer to the program Parity
       Plus, in no way changes the seperate license agreement for Parity and
       Parity Plus or our copyright rights etc.
       
       The current price for Parity Plus 1.5 is $179 plus shipping and
       taxes.  Registered users of Parity will be able to upgrade to Parity
       Plus at any time by paying the difference between the current price
       of Parity Plus and their registration fee for Parity.
       

System Requirements
       
       To run Parity you need the following hardware and software:
       
              An IBM Personal Computer or true compatible.  We recommend
               your PC have an Intel 80386 or faster processor.
              At least 4 megabytes of memory configured as extended memory
               (XMS).  We recommend 8 megabytes of memory.
              At least 2 MB of free hard disk space.
              A VGA or higher video board.  We recommend running Parity at
               1024x768 screen resolution.
              IBM DOS or Microsoft MS-DOS Version 3.0 or higher.
              Microsoft Windows 3.0 or later.  Microsoft Windows 3.1 is
               strongly recommended.
              A Microsoft compatible mouse.
              Intel math co-processors are optional but recommended.
       If you experience problems installing or running Parity we recommend
       that you refer to the READ_1ST.TXT file for a complete discussion of
       all the known hardware problems we have encountered.

Customer Support
       
       Registered users of Parity and Parity Plus are entitled to 90 days of
       free technical support by phone or E-Mail.  Before you contact us we
       recommend that you first consult the User Guide or On-line Help and
       then sit back and think about the problem for a moment.  Those two
       steps would solve close to 90% of all the customer support questions
       we receive.
       
       If you still need our help we strongly recommend that you send us E-
       Mail describing your problem as completely as possible.  You can send
       us E-Mail through the following services which we check frequently:
       
               The Internet:       76655.2570@compuserve.com
               CompuServe:         76655,2570
               GEnie:              RICKERT
               Prodigy:            GKHK06A
       
       We have also started a dedicated Electronic BBS for Parity users
       where you can exchange files, tips, and ideas as well as get
       technical support.  Our BBS number is (415) 751-1763.
       
       If you don't have access to one of the On-line services listed above
       or feel you need to talk with someone in person you can phone us at
       (415) 546-9316 from 9:00 AM to 5:00 PM, Pacific Time, Monday through
       Friday.  Please note that we will not return technical support calls
       from unregistered users.
       
       Faxes and regular mail receive the lowest priority when it comes to
       technical support and we suggest you avoid them unless you feel that
       your problem needs to be illustrated on paper.

Installing Parity
       
       The complete Parity program consists of several types of files.
       Which are detailed in the PACKING.LST file.
       
       All of the files listed are required for the initial installation of
       Parity.  However for any subsequent installation of an updated
       version of Parity  on the same machine be very careful not to
       overwrite the *.DAT files you have created.
       
  Initial Installation
       
       Parity is distributed on a single 5 1/4" or 3 1/2" high density
       diskette.  If this is your initial installation of Parity, please
       follow the directions below.  Otherwise see the Subsequent
       Installations section.
       
        1  Start Windows and insert the diskette in drive A or B.
        2  From the File Menu of the Program Manager select Run.  Type in
           the floppy diskette drive and INSTALL.EXE, i.e. A:INSTALL.EXE,
           and hit ENTER.
        3  Parity will create the installation form shown below.  If this
           is a first time installation you should let Parity install the
           sample data files and the sample configuration files.  If this
           is not a first time install uncheck these options to avoid
           overwriting any files you have created with a previous version
           of Parity.  When you are happy with the options you have chosen
           click on Continue and Parity will automatically install itself.
       
       4  After Parity has been installed we urge you to read the
          READ_1ST.TXT file and the README.TXT files which were copied to
          your Parity directory.  You can use the Notepad or Write
          accessories that came with Windows 3.x to read these files.
       
       Parity's installation routine will create a RLZRUN10 directory under
       your Windows directory and a C:\PARITY directory by default.  It will
       not modify your WIN.INI, AUTOEXEC.BAT or CONFIG.SYS files in any way.
       
  Subsequent Installations
       
       If you are installing an upgraded version of Parity follow the
       appropriate installation procedure as outlined above.  However it is
       very important that in step 3 you uncheck the Sample Data Files and
       Sample Configuration Files options before you proceed with the
       installation.  If you don't do this you may overwrite the *.DAT files
       which contain the definitions of the Studies, Groups, Batches and
       Clusters etc. that you have created.  We suggest you make backup
       copies of these *.DAT files regularly.  If you are upgrading from the
       shareware version of Parity you should manually copy the PROFTEST.DAT
       and the SCANS.DAT files to your Parity directory.
       
       Always check the READ_1ST.TXT and README.TXT files for more up-to-
       date information.

Price Data
       
       Parity is compatible with 5 or 7 field MetaStock/CompuTrac data
       files, ChartPro/MegaTech data files, Comma Separated ASCII files, and
       TeleChart 2000 files.  Daily, weekly and monthly data in these
       formats are widely available from various on-line and data disk
       services.
       
       Parity also permits you to import price data from Excel 2.1 and 3.0
       files, Lotus 123 WKS files, Comma Separated Values text files and Tab
       Separated Values text files.  Data from these file formats cannot be
       included in the definition of a Group but can be charted in the same
       fashion that Load a Security permits you to chart a single stock.
       See Import Other Formats for more information.
       
       Parity Plus includes a complete set of utilities for file and data
       maintenance and data conversion.  Parity does not include any
       utilities for downloading price data files.  A number of commercial
       and shareware programs provide these functions.  An excellent program
       for updating MetaStock or ChartPro data files from ASCII text files
       of price data and for downloading prices from CompuServe or GEnie is
       the Personal Ticker Tape (PTT).  PTT is shareware and the most recent
       version is always available by calling the FlexSoft BBS at (510) 829-
       2293.  See the Appendix for more information on different data
       vendors.
       
       
Part 2         Basic Concepts

       
       The Basic Concepts section of the User Guide explains some of the
       more innovative terms and concepts which give Parity its power.  Like
       most technical analysis programs, Parity permits you to chart a
       single stock with a single indicator.  However, the real usefulness
       of Parity comes from its unique ability to chart "Groups" of stocks
       using predefined "Studies" which include multiple indicators and very
       flexible chart formats.  These features are summarized below.

Charts
       
       A price chart created by Parity has many different components, most
       of which are defined by the user in a Study.
       
       Every chart includes one or more panes.  A Pane is an area of the
       chart where you can plot price or indicator data.  A pane can include
       up to 11 different data arrays including stock prices and trading
       volume.  Parity permits you to define up to 11 individual panes.
       
       Panes are "transparent".  They can be stacked or overlaid and their
       size can be set relative to other panes and the size of the total
       chart.  Any number of panes can be overlaid and each overlaying pane
       maintains its own scale.  A pane's scale can be displayed on the left
       axis, the right axis or not displayed at all.
       
       Stacked panes can be separated in order to show the end values of the
       scales more clearly.  By default a pane will be separated by 5% of
       the total chart size.
       
       Each pane has its own vertical and horizontal grid that can be
       displayed or hidden.
       
       Individual indicators within a pane can have a label defined by the
       user that displays in the same color as the indicator.
       
       The user can set a title for the chart that automatically includes
       the Security Name and the Study Name used to create the chart.  This
       title is displayed in the chart window's Title Bar and can also be
       added to the top of the chart itself.
       
       The user can also control the number of days between tick marks on
       the X axis.
       
       You can use the tools in the Tool Bar and the Pointer Menu to draw
       various types of lines in a chart, zoom in on the data, and add text
       anywhere in the chart.

Groups
       
       While Parity can load price data for a single security at a time, a
       powerful feature of the program is its ability to define a Group of
       securities that can be displayed in any sequence using the Display
       Tools.
       
       A Group is a list of security price data files, in any supported
       format, located in any directory, on any disk.  You might prefer to
       think of a Group as a portfolio of stocks or a list of ticker
       symbols.
       
       Parity permits you to mix data files in different directories, in
       different formats, and of different sizes within a single Group.
       Parity stores all of the information necessary to locate and import a
       data file in the Group definition.  Since a single Group can only
       contain 64KB of characters the maximum number of securities in a
       group depends on the size of the data file's path.  Even with a long
       path a Group will hold about 900 securites and if all your files were
       in the root directory you could create a group with as many as 1800
       securities.
       
       The User can define an unlimited number of Groups, each of which has
       a unique name with up to 16 characters.
       
       Group definitions can be edited, reordered and deleted at any time.
       All defined Groups can be saved to disk for reuse in subsequent
       sessions.  Group definitions are stored in the GROUPS.DAT file in the
       Parity directory on your disk.
       
       Visually, the securities in a Group define the vertical axis of the
       Display Matrix.

Studies
       
       A Study defines how Parity will chart an individual security,
       regardless of which security is chosen.
       
       Parity permits the user to define the following aspects of a chart.
       
          How the price data is displayed, i.e., HLC bar chart or Japanese
          candlestick chart.
          Where and whether volume is displayed.
          What indicators and formulas are plotted on the chart and where.
          How individual panes are stacked and overlapped and what their
          relative sizes are.
          Whether to set a pane's scale to Maximize Y Axis, or Optimize
          Scale Labels.
          Which side of the Y axis scale labels are displayed on.
          What colors to use for the chart.
          What labels to use for each data array plotted.
          The number of days between ticks on the X axis.
          How to label the chart with the Security Name and/or the Study
          Name.
          Whether to include the chart title at the top of the chart as well
          as in the title bar of the chart window.
          What "actions" to perform depending on the specific price data
          charted and condition set with the study.
       
       A Study is defined using the Create/Modify Current Study selection in
       the Studies Menu.  Each Study can have up to a 16 character name and
       all Studies can be saved to disk for subsequent sessions.

Batches
       
       A Batch is analogous to a Group of stocks.  However, instead of
       defining which stocks will be displayed, a batch defines a list of
       studies that will be displayed.
       
       The concept of a "Batch of Studies" is a novel idea.  Unlike other
       stock charting programs, Parity permits you to define an unlimited
       number of studies.  One study might just show a Candlestick chart of
       a stock with some moving averages.  Another study might plot all of
       the components of Welles Wilder's Directional Movement Index.  A
       third study might only show volume related indicators, while a fourth
       study might include oscillators like MACD, Chaikin's Oscillator or
       Stochastics.
       
       Parity permits you to define a Batch of any or all of these studies.
       When you select a Batch, Parity displays each of these studies in
       sequence on a single security or each stock in a Group.
       
       Selecting a Group of stocks and a Batch of studies creates a two-
       dimensional Display Matrix, where the stocks form the vertical axis
       and the Studies make up the horizontal axis.  It may help to think of
       the Display Matrix as a graphical spreadsheet with individual stocks
       as the rows and studies as the columns.  Each cell of the
       "spreadsheet" is potentially a chart.
       
       Depending on the Display Tool you select, you can move through the
       Display Matrix vertically - looking at the same study on dozens of
       different stocks, or horizontally - looking at multiple studies on a
       single stock.  By selecting a different display tool you can
       instantaneously change direction.

Clusters
       
       A Cluster defines the screen configuration for displaying multiple
       Studies at one time.  Like a Batch, a Cluster is a list of individual
       Studies.  However, a Cluster displays all of the Studies at once in
       your predefined screen configuration.
       
       You can use a Cluster with a Group of stocks, or when you load
       individual securities.  Use the forward and reverse display tools to
       display the Cluster for each security in the Group.
       
       To define a Cluster, first arrange charts of each of the Studies you
       want to include in the Cluster on the screen.  Make sure that each
       chart is positioned and sized the way you want it reproduced when you
       display the Cluster.  Then select the Make a Cluster menu item and
       enter a name for the Cluster.  Note that Parity automatically
       excludes any "UNNAMED" or "DEFAULT" studies from a Cluster.
       
       You can save the definition of all of your Clusters to disk for reuse
       in subsequent sessions.  Parity creates a CLUSTERS.DAT file in its
       directory that is automatically loaded the next time you start the
       program.
       
       Since all the charts in a Cluster are erased when you move up or down
       in a Group, the Fast Forward and Fast Reverse tools are meaningless
       and are disabled.

The Display Matrix
       
       Parity offers the user the possibility of creating dozens of types of
       charts on hundreds of individual securities through the use of its
       Group and Batch features.  In order to manage this potential
       complexity we created an intuitive and easy to use tool we call the
       Display Matrix.
       
  The Display Matrix Concept
       
       Conceptually, the Display Matrix is a two dimensional array of all
       the charts you could create from the individual stocks in a group
       combined with the individual studies in a batch.
       
       It is easiest to think of this two dimensional array (the "matrix")
       as being similar to a spreadsheet.  Each cell of the spreadsheet
       corresponds to a chart.
       
       The rows of the spreadsheet are the price data for each security in
       the group.  The columns of the spreadsheet are the studies that are
       used to plot that price data.  The intersection of each row and
       column, i.e., the cell, corresponds to a unique chart created by
       combining the price data for the security in that row, with the
       definition of the study in that column.
       
       Unlike a spreadsheet, most of the charts/cells in the Display Matrix
       aren't displayed.  Even more importantly, only one chart at a time is
       "current" in the sense that you can retrieve numeric data from it.
       
  What Do We Mean by "Current"?
       
       At any given time Parity can only have one of each type of "thing" in
       memory.  By "thing" we mean the data from one stock, the settings
       from one study, and the definition of one group and one batch.  So,
       for example, when we talk about the current group we mean that one
       group whose list of securities is currently available to define the
       vertical axis of the Display Matrix.
       
       The only time that having just one of each type of thing in memory
       limits us is when we want to use the Data Microscope on a chart to
       see the numbers behind the scene.  Then we are limited to the
       "current" chart, i.e., the one for which Parity still has the price
       data and study settings stored in memory.
       
  The Display Matrix Tool
       
       Parity's Display Tools visually correspond to the conceptual display
       matrix.  When you move from one stock to another, you are moving up
       and down the vertical group axis of the spreadsheet.  When you move
       from one study to another you move left and right along the
       horizontal axis of the spreadsheet.  When you select a Display Tool,
       you tell Parity how to interpret the Forward and Reverse tools, when
       it creates new charts.
       With the Display Matrix Tool you can position yourself anywhere
       within the Display Matrix.  Your current location is shown by the
       intersection of the current study and the current security.  By
       clicking on any cell in the matrix you can immediately reposition the
       current study and current security.  You can select from the drop
       down list boxes to do the same thing.  The Display Matrix Tool
       doesn't affect the display state you selected by clicking on one of
       the display tools, it simply repositions you within the matrix.

Profit Testing
       
       Parity Plus includes sophisticated profit testing features which
       permit you to define a technical trading strategy and test that
       strategy against your historical data.  Parity Plus lets you run a
       profit test on a single security or on all the securities in a group.
       Profit test parameters let you specify a wide range of trading prices
       and share purchase methods to closely simulate your actual trading
       strategies.  You can examine the results of your profit test at
       several different levels of detail including tables which show all
       the trades for a security, a summary of trades for the security, or a
       summary for all the securities in a group.  You can even show a table
       of the daily details for all the Formulas, Conditions, and Rules for
       the profit test.
       
       Parity's ability to create a chart showing stock price, position
       status, cumulative profits, and profits per position each security
       you test is another powerful feature.  If you need to analyze your
       strategy in more detail you can incorporate the results of your
       profit tests in a study using the ChartProfitTest() chart procedure.
       
       Perhaps the most common problem technicians encounter is what value
       to use for their favorite technical indicators.  For example, are 40
       day moving averages more predictive than 50 day moving averages or is
       the best value some place in between?  To help answer these
       questions, Parity Plus includes a powerful optimization tool which
       lets you specify a range, and step value, for up to five variables
       you might want to test.  Using optimization you might set the value
       of the OptVar1 variable to range from 30 to 50 in steps of 2 units.
       When you run an optimized profit test, Parity substitutes the
       appropriate value for the variable for each run through a group.
       When testing is completed Parity Plus shows you a table with the
       results of each iteration through the range you are optimizing for
       and lets you sort the results for total return.  Using this approach
       you can quickly and automatically determine the optimum values to use
       in your indicators.
       
       Parity Plus lets you name and save an unlimited number of profit
       tests in exactly the same way you use groups, studies, or batches.
       You can select a new profit test at any time and run that profit test
       against the current group, or the current security.

Scanning and Filtering Securities in a Group
       
       Every investor faces the challenge of staying on top of hundreds of
       pieces of new information each day and still having time to find and
       focus on the best securities for right now.  Parity Plus' filtering
       and scanning tools let you rapidly sift through dozens or even
       hundreds of stocks to find the ones that meet the criteria you have
       defined.
       
       You define a filter or a scan just like you would a profit test.
       First you specify the formulas and technical indicators you are
       interested in.  Then you determine what, if any conditions, the
       securities in the group have to meet to be included in your results.
       You can name and save an unlimited number of scans and run them
       against any group you have defined.
       
       When you run a scan on a group Parity generates a report which shows
       the ending values for all the indicators and formulas you specified
       and sorted in the order you choose.  If you specified a set of
       conditions the securities had to meet in order to be included in the
       scan then only those securities that met your criteria will be shown.
       You can print the results of a scan or save them to a file for
       further analysis.
       
       After you have run a scan you can create a new group which only
       includes the securities that met your filter or screening criteria.
       Then you can chart this new group with any study, batch or cluster
       you have defined to closely examine each of these securities as a
       possible investment.
       
       Using Parity Plus's scanning and filtering tools it is possible to
       quickly and efficiently analyze hundreds of securities each day and
       only spend time on the few that meet your investment standards.
       
       
Part 3         The Tool Bar

       

The Tool Bar
       
       The Tool Bar incorporates most of the tools that are used to display
       and manipulate charts after you have selected whatever Stocks,
       Groups, Studies, Batches or Clusters you want displayed.  Several
       less frequently used tools can be accessed through the Pointer Menu.
       

Moveable Versus Fixed Tool Bar
       
       By default, the Tool Bar is in a fixed position on the right side of
       the screen.  The default setting leaves a space for the vertical
       scrollbar which will appear if you drag a chart partially off the
       screen.  The Tool Bar can be set to be moveable with the Moveable
       Tool Bar command on the Options Menu.  You can also select the Flush
       Right or Flush Left settings to choose a fixed tool bar that is
       aligned all the way to the right or left of the screen.
       
       You can also use the Moveable Tool Bar and Fixed Tool Bar commands to
       recreate the Tool Bar if it gets mispositioned.  This can happen when
       you have a fixed tool bar and have moved charts off the screen and
       then do a Window Cascade or Window Tile command.
       
       Normally, though, the Tool Bar is simply hidden under a chart.  You
       can bring the Tool Bar forward by clicking in a chart or selecting
       TBar in the Window Menu.  To hide the Tool Bar behind a chart, click
       in the chart's title bar.
       

Action Tools
       
       Click on the tool and then click on the chart you want to act on.
       These tools are "sticky" and stay active until you select another
       action tool .  The Pointer Menu includes a selection of some less
       frequently used action tools (see page 38).
       
            Tool            Description
                            
            Print Tool      Prints the chart you click on.  Since the Print
                            Tool gives you much greater control over the
                            printing of a chart you should always use it in
                            preference to the File Print command.  After you
                            select the Print Tool, and adjust the printer
                            setup, simply click on the charts you want to
                            print.  See Printing Charts (page 73).
                            
            Trash Can Tool  Closes the chart you click on or all of the open
                            charts.
                            
            Data Microscope Displays price and indicator data for the most
                            recently created chart and can print the data or
                            export it to an Excel, Lotus 123, or text file.
                            See the Data Microscope section for more details
                            (page 73).
                            
            Pointer Tool    Resets the other action tools and goes to a
                            neutral pointer mode.
                            
            Text Tool       Used to add text on a chart.  The text you type
                            is centered directly above the point you click
                            on in the chart.
                            
            1:1 Magnifying Glass Restores chart to fully expanded state.
                            
            + Magnifying Glass   Zooms in on a chart to focus more closely
                            on a date range.  Each use expands the chart to
                            roughly 1/3 its previous data range.  By default
                            Parity will not rescale the vertical Y axis of
                            the chart for the new data range.  However you
                            can use the Chart Preferences command (see page
                            40) to select automatic rescaling of the Y axis
                            on zooming.  Unfortunately, automatic rescaling
                            does involve some tradeoffs which are discussed
                            in more detail in the Chart Preferences section.
                            
            - Magnifying Glass   Opposite of + Magnifying Glass
                            
            Vertical Line Tool   Draws a vertical line the entire height of
                            the chart wherever you click.
                            
            Horizontal Line Tool Draws a horizontal line the entire length
                            of the chart wherever you click.
                            
            Limited Line Tool    Draws a line between any two points you
                            click on.
                            
            Extended Line Tool   Draws a line defined by any two points and
                            extending to the chart boundaries.
                            

Display Tools
       
       Used to select the Display State and Direction used to move through
       the Display Matrix.  After you select a new study or batch you must
       click on one of the Display Tools to chart it when the "Always
       Display Charts" option in the Chart Preferences dialog is off.
       
             Tool              Description
                               
             Display Matrix Tool    Shows a graphical depiction of the
                               Display Matrix and the Current Chart's
                               position in it.  Click on the grid of the
                               Display Matrix or select from the drop down
                               list boxes to reposition yourself within the
                               Display Matrix.  See The Display Matrix
                               section.
                               
             Forward & Reverse Tools     Used to move through the Display
                               Matrix in the direction indicated by the
                               Display State tools.  If the next chart in
                               the direction already exists these tools will
                               bring it to the front.  Otherwise the next
                               chart is created from scratch.
                               
             Fast Forward & Reverse Used to create multiple charts at a
                               time.  Clicking on one of these tools causes
                               Parity to create the maximum number of charts
                               in the current direction.  The number of
                               charts was defined when you selected a group.
                               If you specified "Print Each Chart as
                               Displayed" when you selected the group the
                               Fast Forward Tool can be used to print all
                               the charts in a group.
                               
             Display Group Tool     This sets the display state to vertical
                               movement between securities in a group.  It
                               causes the current graph in the Display
                               Matrix to be created if it isn't already
                               displayed.
                               
             Display Batch Tool     This sets the display state to
                               horizontal  movement between studies in a
                               batch.  It causes the current graph in the
                               Display Matrix to be created if it isn't
                               already displayed.
                               
             Display Group on Batch This sets the display state to move
                               through the Display Matrix showing all the
                               studies in a batch for a security in a group
                               before moving up or down to the next security
                               in the group.
                               
             Display Batch on Group This sets the display state to move
                               through the Display Matrix showing all the
                               securities in a group before moving left or
                               right to the next study in a batch.
                               

Menu Shortcut Tools
       The Menu Shortcut Tools provide the same functionality as the menu
       commands for loading a security, selecting a group, editing a study,
       and selecting a batch.  These commands also have function key
       shortcuts.  See the Menu Commands section of this manual for more
       detail on these commands.  By default Parity creates a new chart
       after you use these tools.  To disable the automatic charting use the
       Chart Preferences command on the Options menu to set your display
       preferences.
       
             Load a Security
                               
             Select a Group
                               
             Create/Modify Current Study
                               
             Select a Batch
                               

Window Management Tools
       The Window Management Tools provide the same functionality as the
       Window Menu Cascade and Tile commands.
       
            Tool            Description
                            
            Tile Windows    Works exactly like the Window Menu Tile
                            selection; it tiles all the displayed charts.
                            
            Cascade Windows Works exactly like the Window Menu Cascade
                            selection; it cascades all the displayed charts.
                            
       
       
Part 4         Menu Commands

       
       This section of the User's Guide reviews all of the Menu Commands
       that are available in Parity.  Most of the Tool Bar tools do not have
       any equivalent functionality from the Menu or the Keyboard.

File Menu
       
       The File Menu has relatively limited functionality in Parity since no
       files are "opened" in the traditional Windows sense.  Instead use the
       appropriate commands in the Groups, Studies, and Clusters menus to
       select the items you want to chart.
       
       Command           Description
       Close             Will close the currently selected chart.  Generally
                         it will be easier to close a chart by double
                         clicking on the Control-Menu box or using the trash
                         can tool.
                         
       Save As           Can only be used to save the contents of the Print
                         Log to a file.  You must save studies, groups,
                         batches, and clusters using their respective Save
                         All commands.
                         
       Print             Will print the currently selected chart using
                         default settings.  Generally you should use the
                         Printer Tool instead.  See Printing Charts.
                         
       Printer Setup     Standard Windows 3.x Printer Setup dialog.
                         
       Exit              Exits Parity.  If you have any unsaved groups,
                         batches, studies, or clusters Parity will ask if
                         you want to save them.
                         

Edit Menu
       
       The Edit Menu provides the standard Edit functionality common to most
       Windows 3.x applications and they will not be discussed here.  Most
       of these selections will be disabled except when you enter text in a
       dialog box or use the print log.
       
       Command           Description
       Copy Window       The Copy Window menu item will copy the currently
                         selected chart to the Clipboard.  You can paste the
                         chart into most word processors or into a
                         paintbrush program.  If you hold down the shift key
                         while you issue this command the title bar of the
                         window will also be copied to the clipboard.
                         
       

Groups Menu
       
       The Groups Menu provides all of the commands to load one security, or
       to create, select and modify a Group of securities.
       

Load a Security
       
       The Load a Security command permits you to select and load a single
       security for charting using the current study.  Loading a security
       overwrites the current group if one had been selected.
       
       This command consists of two dialog boxes:
       
  Load a Single Security
       
       This dialog permits you to select a security by symbol or name for
       loading.  Parity will display all the files in the directory you have
       chosen which match the file format criteria.  If the file format
       permits it, the file will be displayed with additional information
       such as company name and data period.  To select a security for
       loading, highlight the security and click OK or double click on the
       security.
       
       Change directories by double clicking on the directory you wish to
       change to in the directories list box.
       
       Parity supports four different data file formats, 5 or 7 field
       MetaStock/CompuTrac files, 7 field ChartPro/MegaTech files, Comma
       Separated Values ASCII files, and TeleChart 2000 files.  You can
       select which file format to use with the "File Format" drop down list
       box.  The Available Securities list box will be automatically updated
       to show the securities with that format in the directory you
       selected.  To save your file preferences from session to session, use
       the Directory and File Preferences command on the Options Menu.  For
       more information on these formats, see the File Formats Supported
       section.
       
       To quickly move to a particular security, just select any security
       with a single click of the mouse and then type the first letter of
       the file or security name.  If no file starts with that letter
       nothing will happen, otherwise you will move to the first file
       starting with that letter.  This is standard Windows 3.x
       functionality and you can use this method with any list box.
       
  Range of Data to Load
       
       This dialog permits you to select which data records in a file will
       be loaded.  You can also set the chart size to be maximized within
       the "working" screen area.  If you manually maximize a chart by
       clicking on its maximize icon it will "snap" back to its default size
       whenever another form, chart or window is opened over it.
       
       You can specify the number of blank periods that you want added to
       the right of the chart by entering a positive number in the "Blanks
       Added to the Right of Chart" box.  This is useful if you want to draw
       extended trendlines into the future.
       
       The range of records to load can be specified in several ways.
       
       Range of Records  Description
       Absolute Record Number Specify the number of the record in the file.
                         The First Record is the oldest record to be loaded
                         and has to be an integer greater than or equal to
                         1.  The Last Record is the most recent record to be
                         loaded and must be an integer greater than the
                         first record and less than or equal to the total
                         number of records.  By default, Parity will load
                         all of the records in the data file.  There is no
                         limit on the number of records you can load.
                         
       Relative Record Position    Permits you to select a range of records
                         to load relative to the most recent record in the
                         file (the Last Record).  Indicate relative record
                         positions by using negative numbers that count back
                         X records from the last record.  If you enter a
                         relative record position for the first record,
                         e.g., -100, Parity will set the Last Record to 0.
                         In this example a total of 101 records will be
                         loaded starting with the most recent record and
                         counting back 100 records.  Hitting enter after
                         inputting a relative record position in the First
                         Record field will execute the dialog box.
                         
       Absolute Date Range    Enter the dates you want to load data for.
                         Dates must be formatted as MM/DD/YY or YYMMDD.
                         When you enter a date for the first record, Parity
                         will automatically set the last record to the last
                         date in the file.  You may not mix dates and record
                         numbers or relative record positions.
                         
       Compression       Parity gives you two options you can use to
                         "compress" your data files into weekly or monthly
                         formats.  If you select the "True Weekly" option,
                         Parity will use the highest and lowest values, the
                         total volume, and Friday's closing price to create
                         its weekly data.  The "True Monthly" option works
                         in the same way.  The first and last data points
                         may be partial weeks if a full weeks data doesn't
                         exist.
                         

Create or Modify Group
       
       The Create or Modify Group command defines a new group or modifies
       the contents of an existing group.  A group is a list of securities
       in any of the supported data formats, located anywhere on your disks.
       The actual number of securities a group can contain depends primarily
       on the length of the path of the data files, and for MetaStock files
       the lengths of the symbol and name of each security.  The total size
       of a group is 64KB of characters.  On average each entry for a data
       file in the root directory will be 35-40 characters so the largest
       possible group is 1600 to 1800 securities.  However, if your data
       files have a very long path, for example,
       C:\PARITY\DATAFILE\STOCKS\CONSUMER then the maximum size of your
       groups will be only 900-1000 securities.  You can define any number
       of groups.
       
       Dialog Form Items Description
       Groups            This box lists all of the defined groups currently
                         in memory.  Double clicking on a group will add all
                         of the securities in that group to the Securities
                         in Group list.  To modify an existing group double
                         click on its name to add its stocks to the
                         Securities in Group list.  Make any modifications
                         you want and save it under the same name.
                         
       Securities in Group    This box lists all of the securities you have
                         selected to be in the group.  Add securities by
                         double clicking on an available security or an
                         entire group.  To delete securities from the group,
                         double click on the security in the group.
                         
       Available Securities   Lists all the securities of the specified data
                         type that are available in the selected directory.
                         Double click on any available security to add it to
                         the group.  Type the first letter of a security to
                         search the list for it.
                         
       Add All Securities     Clicking on this button will cause all the
                         securities in the available securities list box to
                         be added to the group.
                         
       Directories       Lists all the directories on your disk.  To move
                         around the directory tree simply double click on
                         the directories or drives that are listed.  The
                         Available Securities list will be updated for the
                         directory you select.
                         
       New Group         Enter the name of the group you are creating or
                         modifying in this text box.  The name can contain
                         16 significant characters including A-Z, a-z, 0-9,
                         %, _, $, !, and %.  Names cannot begin with a
                         number and are not case sensitive.
                         
       Double Click Action    Selects the effect of double clicking in the
                         list boxes.  By default double clicking will add or
                         remove securities from the Securities in Group
                         list.  Selecting Show Details will cause double
                         clicking on a security to list any available
                         details on the data file.  ChartPro data formats
                         contain very little information on the underlying
                         security.
                         
       File Format       Selects the data file format Parity looks for in
                         the selected directory.  Only files from one data
                         format at a time can be displayed in the Available
                         Securities list.  Note that you can mix files of
                         any format in a group.
                         
       Sort Available Securities   By default Parity sorts the Available
                         Securities list by symbols.  You can also sort
                         certain file formats by name.  This option is
                         disabled for ChartPro and ASCII files.
                         
       Sort New Group    When you click on the Sort New Group button the
                         Securities in the Group will be sorted by their
                         Name or Symbol depending on which radio button is
                         selected.
                         
       Create Group Button    Clicking Create Group will save the list of
                         securities in the group to the group name you
                         entered in the New Group text box.  If you didn't
                         enter a name Parity will prompt you for one.  To
                         make the group you created the current group you
                         must use the Select a Group command.
                         
       Cancel Button     Will exit the dialog without creating or modifying
                         a group.
                         

Select a Group
       
       Use the Select a Group command to select the group of securities
       which you want to be able to display.
       
  Select a Group Dialog Box
       
       The Select a Group command lists all the groups and allows you to
       select the group you want to become the current group by double
       clicking on the group's name.  After you select a group, a second
       dialog box will appear prompting you to enter a data range and some
       other parameters controlling the display of charts for the securities
       in the group
       
  Options for Displaying Groups
       
       This dialog box sets up certain options that will be identical for
       all of the securities in the current group.  These options control
       the size and number of the charts that will be shown and the range of
       data Parity will display from each security in the group.
       
       Dialog Form Items Description
       # of Graphs Displayed  The number of charts Parity can display at one
                         time is constrained by Windows' available System
                         Resources.  Windows 3.1 gives Parity significantly
                         more System Resources than Windows 3.0.  You will
                         receive a warning if you specify more than 12
                         graphs to be displayed at once.  To display only a
                         single graph at a time, click on the Close Graph
                         After Displayed check box.
                         
       Chart Size        Permits you to set the chart size in pixels.
                         Parity sets the default chart size to equal the
                         size of a chart after a Window Cascade command.  To
                         maximize the size of each chart as it is displayed
                         click on the Maximize Graph Size check box.
                         
       Print Each Chart  This prints each chart when it is displayed.  This
                         option can be used with the Fast Forward and Fast
                         Reverse Tools to print all the charts in a Group.
                         See Printing Charts.
                         
       Add Blanks to Chart    Specify the number of periods of "white" space
                         you want added to the right of the chart.  Useful
                         for drawing extended trendlines into the future.
                         
       Data Range Options     Since Parity permits you to group securities
                         with different numbers of records and starting and
                         ending dates you must use Relative Record Positions
                         to specify the data range to be printed.  A future
                         release of Parity will include the option to use
                         Absolute Date Ranges.  See Load a Security for
                         details about data ranges.
                         

Reorder a Group
       
       When you reorder a group you change the display sequence of the
       securities within the group.  You can also change the definition of
       the group by excluding securities from the Reordered Group list.
       
       Dialog Form Items Description
       List of All Groups     Select the group you want to reorder by double
                         clicking on the group's name in this list box.
                         
       Original Group    Lists all the securities in the group you selected
                         for reordering which have not been added to the
                         Reordered Group list.  Add a security to the
                         Reordered Group list by double clicking on the
                         security name.
                         
       Reordered Group   Lists the display order for all the securities that
                         have been selected for reordering.  Double Clicking
                         on a security in the Reordered Group list will add
                         it back to the Original Group List.
                         
       Double Click Action    Permits you to select if double clicking on a
                         security will move it from the Original Group to
                         the Reordered Group or back, or cause any available
                         details about the securities data file to be shown
                         in the upper left corner of the dialog box.
                         

Save All Groups
       
       The Save All Groups command will save the definition of ALL the
       groups in memory to the GROUPS.DAT file in your Parity directory.
       This is the only way to make any changes, deletions, or newly created
       groups permanent.  It is not possible to save just the changes of a
       single group.

Delete Groups
       
       The Delete Groups command permits you to remove the definition of a
       Group from memory.  Groups will not be permanently deleted unless you
       Save All Groups.

Display Group or Security
       
       The Display command in the Groups menu will display a chart of the
       current security using the current study and set the display mode to
       Display Group.  This command is included for your convenience only
       and we recommend controlling the Display Matrix using the Display
       Tools found on the Tool Bar.

Import Other Formats
       
       Parity permits you to import data from Excel 2.1 and 3.0 files, Lotus
       123 WKS files, Comma Separated Value text files and Tab Separated
       Value text files.  Excel 4.0 and Lotus WRK, WK1, and WK3 files are
       not supported.
       
       You can import price data using the 5 field date, high, low, close,
       volume format or the 7 field date, open, high, low, close, volume,
       open interest formats.  You can also include other data arrays in the
       file which will be imported as named variables which you can use in
       your formulas.
       
       Each "column" in the file you import is treated as a variable.  The
       first "row" of the column must contain the name of the variable.
       Each subsequent row contains the elements of the variable's data
       array.  A variable can contain up to 8100 elements.
       
       The Import Other File Formats dialog box is straight forward.  Simply
       select the file you want to import, check the correct file format
       radio button and click on the Import button.
       
       In order to be correctly imported the file must be formatted very
       specifically.  Please read the following sections carefully.  Parity
       performs very limited error checking when it imports data so you may
       need to experiment with the layout of your file before you are able
       to import data correctly.
       
  Importing Price Data
       
       Although Parity permits you to use the Import Other Formats command
       to import price data you cannot use this data in a group or with the
       profit testing or scanning functions.  Importing price data is more
       like the Load a Security command but without the ability to select a
       data range.  Generally, we recommend that you use the Data Conversion
       command to convert files with price data to one of the formats Parity
       supports directly.
       
       To successfully import price data you must observe the following
       conventions exactly.  Each variable name must appear in the first row
       of the file and must be exactly as shown.  Subsequent rows must
       include data formatted as described below.
       
       Variable Name     Description
       Date              Mandatory.  Subsequent rows must contain date,
                         rather than text or numeric values for Excel and
                         Lotus files.  Text files must include dates
                         formatted as MM/DD/YY.  Any other formatting will
                         cause an error.  Note you must use Date not Dates.
                         
       High              Mandatory.  High price values.  Excel and Lotus
                         must format the high prices as numeric, rather than
                         text values.  Text files must not contain non-
                         numeric characters such as "," or "$".
                         
       Low               Same as High.
                         
       Close             Same as High.
                         
       Volume            Same as High.
                         
       Open              Optional.  Same formatting as High.
                         
       OpenInterest      Optional.  Same formatting as High.  It is safest
                         if you fill openinterest with zeros if you include
                         open data.  However, this is not mandatory.  Note,
                         there is no space between open and interest in the
                         OpenInterest variable name.
                         
       Name              Mandatory.  You must include a text value for name.
                         The use of more than 16 characters will be
                         unpredictable.  Only the first row after Name will
                         be recognized.
                         
       Symbol            Mandatory.  You must include a text value for
                         symbol.  The use of more than 8 characters may be
                         unpredictable.  Only the first row after Symbol
                         will be recognized.
                         
       NumFields         Mandatory.  NumFields must include a numeric value
                         of either 5 or 7 depending on whether the data
                         includes Date, High, Low, Close, Volume or Date,
                         Open High, Low, Close, Volume, OpenInterest.  Note
                         NumFields is one word with no spacing.  Only the
                         first row after NumFields will be recognized.
                         
       The columns can occur in any order and the variable names are not
       case sensitive.  If you are using comma delimited or tab delimited
       text files we strongly recommend that you include Name, Symbol, and
       NumFields at the end of the first and second lines.  Otherwise you
       will need to maintain the correct comma or tab separation in each and
       every row.  Also each line in the file must end with a carriage
       return or carriage return and line feed.  If you are using a word
       processor like Word for Windows that means you must save the file as
       text with line breaks.
       
       You must have the "File Includes Price Data" check box checked to
       correctly import price data.  Once price data is imported you can
       create charts using any study or batch.  If you Load a Security, or
       Select a Group, the price data you imported will be overwritten.  You
       must use Parity's Predefined Variables to access price data you
       import.  The Date, High, Low, Close, Volume, Open, OpenInterest,
       Name, Symbol, and NumFields variable names will not be accessible to
       you.
       
       An Example of a Comma Separated File
       
          Row 1   date,high,low,close,volume,name,symbol,numfields
          Row 2   3/1/90,33.5,33,33.25,12500,Good Stock,GSTK,5
          Row 3   3/2/90,34,33,33.75,15000
       
       Common Problems Importing Price Data
       
       The Import Other Formats command is bug free.  If it doesn't work for
       you there is a problem with your file format.  Since we can't tell
       anything about your file format over the phone we are unable to
       provide any meaningful technical support for the Import Other Formats
       command unless you send us the file you are trying to import.  In our
       experience the most common problems importing data are:
       
          1.The date field is not formatted correctly.  This occurs most
             frequently when importing from a spreadsheet.  The date field
             looks like a date value but is really text.  Check the
             formatting of the date column.
          
          2.The Lotus 123 WKS file isn't really in the WKS format but
             simply has a WKS extension.  Parity can only import from true
             WKS format files, not from WK1, WK3 or WRK files.  Check the
             format of your file.
          
          3.Parity does not support the Excel 4.0 file format.  Excel
             files must be saved as 3.0 or 2.1 formats.  Check the format
             of your file.
          
          4.Each line in a comma or tab delimited text files must end with
             a hard carriage return.  Make sure your word processor is
             saving the file in plain text format with line breaks.
       
       Since Parity performs no error handling when you try to import data
       if an error occurs the program doesn't fail gracefully and it will
       often appear to freeze the computer.  Normally you can recover simply
       by pressing the up arrow key and closing the dialog box by double
       clicking on the control menu box in the upper left hand corner of the
       dialog box window.
       
  Importing Other Data
       
       Parity does not limit you to importing only price data.  You can
       import an array of any numeric data.  The name of the data array
       variable will be the same as the name in the first row of the data's
       column.  You can use this variable in exactly the same way as
       Parity's Predefined Variables.  Non-price data can be imported in the
       same file as price data.  These imported variables persist throughout
       your session.
       
       Parity performs no checking to prevent you from accidentally
       overwriting an internal variable.  You may also experience problems
       with certain formulas when an imported variable doesn't have the
       "array range" the formula expects.  This is definitely an advanced
       option which will require experimentation.  One possibility you might
       explore is importing data from a package like The Technician, and
       including it in your analysis.
       
       See the Predefined Variables section for more suggestions on how to
       handle imported data.

Studies Menu
       

Study Commands
       
       A study controls every aspect of how a chart is displayed except for
       which security is being charted.  The Studies Menu provides you with
       all of the tools necessary to create sophisticated charts.  Multiple
       studies can be "batched" or "clustered" together to automate
       repetitive display tasks.
       
       A batch is a predefined list of one or more studies that is displayed
       sequentially on a single security or group.  Use batches to automate
       and simplify your charting.  A batch can hold an unlimited number of
       studies and you can define an unlimited number of batches.

Create/Modify Current Study
       
       The Create/Modify Study command opens the Formula Editor, which is
       the first of several dialog boxes that control how a chart is
       displayed.  These dialog boxes always display the settings for the
       currently selected study, or the Default Study if no study has been
       selected.
       
       The changes you make to the study you are modifying will be temporary
       if you select O.K. from the Formula Editor which will then create an
       "UNNAMED" study.  The "UNNAMED" study is overwritten if you move
       through the Display Matrix or select a new current study and your
       changes will be lost.  You can save your changes under a new or
       existing study name by clicking on the Save As button.  These changes
       will be stored for the current session and can be made permanent with
       the Save All Studies command.
       
  The Study Editors
       
       Parity uses five "editors" to set every aspect of a chart's creation.
       
       Editor            Description
       Formula Editor    The Formula Editor lets you create sophisticated
                         technical indicators using the predefined indicator
                         list and your own formulas.  All of the subsequent
                         Study Editors return you to the Formula Editor
                         which controls how your changes will be saved.
                         
       Pane Layout Editor     Controls how the indicators you defined with
                         the Formula Editor will be displayed in the chart.
                         You can specify which pane to plot the indicator
                         in, where the pane should be displayed, what the
                         pane size should be, and whether the pane should be
                         displayed with a scale or a grid.
                         
       Color Editor      Controls what colors to use for plotting the
                         indicators as well as the colors used for the
                         background, scales, labels and grid of the chart.
                         
       Options Editor    Controls how you label the panes and what to use
                         for the chart title.  Also lets you select the
                         number of days between ticks on the X axis and
                         whether the Y axis scale of each pane is optimized
                         for labels or data.  You can also use the options
                         editor to separate stacked panes with white space.
                         
       Actions Editor    Sets up to 6 "actions" which can be performed on
                         each chart depending on whether the conditions you
                         establish are true or false.  The available actions
                         include Price Painter, Mark It, and Audible Alarms.
                         

Formula Editor
       
       The Formula Editor permits you to create up to nine formulas that can
       be displayed on a chart and/or used in another formula.  Each formula
       can contain any of the indicators, predefined variables, arithmetic
       operators, or chart procedures available in Parity.
       
       The result of each formula is assigned to an array variable named F1
       to F9 as shown to the left of the Formula to Plot box.  The F1 to F9
       variables can be used in exactly the same fashion as the predefined
       variables, O, H, L, C, V, and OI which hold the data for the current
       security.  The values for the first security in a group are stored in
       the predefined variables FO, FH, FL, FC, FV, and FOI.  You can use
       these predefined variables to create spreads and relative strength
       calculations.
       
       Since the formulas are processed sequentially, the result of a
       formula, e.g. F3, can only be used in subsequent formula definitions,
       e.g., F4 - F9.
       
       Some indicators such as BolBands(), and Stoch() are actually
       procedures rather than functions.  You cannot reference the result of
       these procedures by F1-F9 or by including them within another formula
       calculation.
       
       A formula box can also contain a chart procedure.  Chart procedures
       perform special processing in order to create displays like Point and
       Figure Charts, EquiVolume Charts, Crockerc type charts, and
       horizontal bar charts of the number of days at a price, or the total
       volume at a price.  The ChartFirstSecurity() procedure lets you
       include a chart of the first security in a group on the same chart as
       the current security.  You can even include the results of a profit
       test in your chart using the ChartProfitTest() function.  To see the
       selection of Chart Procedures available click on the Chart Procedure
       radio button.
       
  To Define a Formula
       
       1  Click in the Formula Box.
       2  Type in your formula or edit an existing formula.  Or
       3  Double click on a predefined indicator in the indicator list box.
          If the Formula Box you clicked on in 1) was empty the indicator
          will be copied to the Formula Box.
          If the Formula Box already contained a formula definition the
          indicator you selected will be saved to the clipboard and you can
          position the cursor in any Formula Box and paste the indicator you
          selected using SHIFT-INS or the Edit Paste Menu Command.
          If you click on the Functions radio button a list of Parity's
          operators and functions will be displayed.  When you double click
          on one of these functions it is saved to the clipboard.  You can
          paste the function into any Formula Box using SHIFT-INS.  You will
          need to edit the function manually.
  To Define a Chart Procedure
       
       1  Click on the Chart Procedure radio button.  The list box will now
          display all the chart procedures available to you.
       2  Double Click on the Chart Procedure you want to include in your
          chart.  Complete the dialog box if necessary, and the Chart
          Procedure will be copied to the Formula Box or saved to the
          clipboard.
       The ChartProfitTest() procedure is not available from the chart
       procedure list box.  You must type ChartProfitTest(), and its
       parameters, into the Formula Box manually.
       
  To Define the Line Style
       
       You can select the line style that will be used to plot the result of
       a formula by clicking on the drop down list box to the right of the
       Formula Box.  An example of each of the available line styles will be
       shown.  The Bars style will plot the formula as a histogram or bar
       chart.
       
  Using Japanese Candlestick Charts
       
       By default, Parity will plot the price data as an Open, High, Low,
       Close bar chart.  To plot this data as a Japanese Candlestick chart
       just check the Candlestick check box.  If you are using a high
       resolution printer you may find that candlestick charts print the
       candles too thinly.  You can use the Chart Preferences command in the
       Options menu to increase the thickness of the candlesticks.
       
  Using Point and Figure, EquiVolume, Crockerc, and Horizontal Bar Charts
       
       Parity provides nine powerful Chart Procedures which permit you to
       include special types of graphs in the panes of your chart.  Click on
       the Chart Procedures radio button to see the selection of charts
       available to you.  Simply double click on the chart procedure you
       want to include and complete the dialog box which will pop up.  The
       chart procedure will be copied to the empty formula box.
       
  Button Commands
       
       Button Name       Description
       O.K. Button       Saves the settings of all the Study Editors as an
                         "UNNAMED" Study.  These settings will be lost when
                         another study is loaded.
                         
       Save As Button    Permits you to save the settings of all the Study
                         Editors as a "Named" Study.  These settings can be
                         made permanent by selecting the Save All Studies
                         menu command.
                         
       Cancel Button     Exits Formula Editor without making any changes in
                         the current study.
                         
       Reset All Button  Will reset all of the Study Editors' settings to
                         the Default Study settings.  Useful if you want to
                         create a new study from scratch when a named study
                         is loaded.
                         
       Panes Button      Brings up the Pane Layout Editor dialog which
                         controls the layout and appearance of all the panes
                         in a chart.
                         
       Colors Button     Brings up the Color Editor dialog which controls
                         the layout and appearance of all the colors in a
                         chart.
                         
       Options Button    Brings up the Options Editor dialog which controls
                         pane labels, chart titles and pane scaling.
                         
       Actions Button    Brings up the Actions Editor dialog which controls
                         the Price Painter, Mark It, and Audible Alarm
                         actions.
                         

Pane Layout Editor
       
       The Pane Layout Editor controls how each data array will be plotted
       in a chart.  As many as 11 different data arrays can be plotted in a
       single chart.  These data arrays include price and volume as well as
       the array variables F1 to F9 that contain the results of the formulas
       defined in the Formula Editor.
       
       By default, Parity plots each data array you define in its own pane,
       and each pane is displayed in the chart stacked from top to bottom in
       ascending order.
       
       By changing the Pane to Plot In and Pane to Overlay settings you can
       plot multiple data arrays in a single pane and stack multiple panes
       on top of each other.  The Pane to Overlay settings also control the
       order in which each pane appears.  Each pane maintains its own scale
       that can be displayed on the left or right side of the pane or not at
       all by adjusting the Scale settings.  The Relative Size settings
       control the size of each pane in the chart.  The Grid Settings
       control how each pane displays its horizontal and vertical grids.


       Dialog Form Item  Description
       Pane To Plot In   In order to display a data array you must specify a
                         pane to plot the data array in.  A pane can contain
                         any number of data arrays but each pane only
                         maintains a single Y axis scale.  This scale is
                         automatically adjusted for the largest and smallest
                         values plotted in the pane and the Maximize Y Axis
                         settings in the Options Editor controls how the
                         scale is fitted to the data.  The Pane to Plot In
                         setting must contain an integer from 0 to 11.
                         Setting the Pane to Plot In or the Pane to Overlay
                         to 0 will cause the data array to not be displayed.
                         The figure above shows ADX(14) and ADXR(14) plotted
                         in the same pane.
                         
       Pane to Overlay   The Pane to Overlay setting controls where the pane
                         is displayed in a chart.  By default each data
                         array is plotted in its own pane that overlays
                         itself.  Panes are plotted in the chart from top to
                         bottom in ascending order of the Pane to Overlay
                         value.
                         
                         If you change the Pane to Overlay to a different
                         pane then the contents of the pane will be overlaid
                         onto the other pane.  The size of the panes will be
                         controlled by the first pane that is created.
                         Since each pane maintains its own scale, you would
                         overlay panes, rather than plot in the same pane,
                         when two or more data arrays have very different
                         ranges.  A good example would be overlaying panes
                         containing PVI() and NVI() data arrays as shown in
                         the figure above.
                         
                         You can also change the order in which panes are
                         displayed on a chart by changing the Pane To
                         Overlay settings.  Valid settings for Pane To
                         Overlay are 0 to 11.  Using 0 will cause the data
                         array not to be plotted at all.
                         
       Relative Size     Since Parity permits you to dynamically resize your
                         charts, all pane size settings are relative to the
                         total size of the chart.  To calculate the display
                         size of a pane, Parity totals the relative sizes of
                         all the panes in the stack (overlaid panes are not
                         counted) and allocates a percentage of the chart's
                         display area to the pane based on the pane's
                         relative size divided by the total relative sizes
                         of all the panes in the stack.  Relative sizes can
                         be any number greater than zero.
                         
       Scale Settings    Each Pane maintains its own Y-axis scale.  This
                         scale can be displayed to the left or right of the
                         pane or not at all.  Parity will display all the
                         scales of overlaid panes.  Unless you have the Pane
                         Separation setting selected in the Options Editor
                         the highest and lowest labels of stacked panes with
                         scales set to the same side will overlap.  To
                         change the Scale Setting insert the cursor to the
                         far left of the scale box and type L, R, or N.  It
                         is not necessary to type the whole word or delete
                         the setting already there.
                         
       Grid Settings     The frequency of the horizontal and vertical grids
                         in a pane are automatically controlled by Parity
                         based on the size of the chart and the pane.
                         However you can control whether either, both or
                         none of the grids are displayed in the pane.  To
                         change the Grid setting insert the cursor to the
                         far left of the grid box and type H, V, B, or N.
                         It is not necessary to type the whole word or
                         delete the setting already there.
                         

Color Editor
       
       The Color Editor permits you to control the colors used to plot each
       data array, as well as specifying what colors to use for the chart
       background, scales and labels.
       
       To change a color simply click on the button for the item you wish to
       change.  The color selection dialog box will appear.  Select one of
       38 predefined colors by double clicking on the color name, or create
       your own color using the RGB slider bars.
       
       The lines Parity plots are only one pixel wide.  Consequently if your
       display adapter or Windows settings are set to 16 colors and you
       select a dithered color the data plots will be unsatisfactory.  Also
       with a one pixel width, similarly colored lines will look almost
       identical.
       
       As a final caution, you should note that not all printer drivers will
       print all the colors you can display and some printer drivers may
       print any color except white as a solid black line.  Given the
       diversity of drivers for Windows we can only suggest that you
       experiment with the best settings for your particular mix of
       equipment.  You can use the Set All To Black button to automatically
       set all the colors in the chart to black.
       
       Preview Chart
       
       If you have price data loaded, you can preview the chart as it is
       currently defined by clicking on the Preview Chart Button.  This will
       create a small copy of the chart your study is defining in the Color
       Editor form.  A complicated study may take a few seconds to display
       as Parity calculates the value of each formula.

Options Editor
       
       The Options Editor controls the display of pane labels, chart titles,
       pane scales and pane separations.  Each of its settings is explained
       below.
       
       
       Dialog Form Item  Description
       Pane Labels       Each pane can have a label within the pane that
                         will appear in the upper left corner of the pane.
                         By default pane labels are displayed using the text
                         of the formula used to create the data arrays in
                         the pane.  You can edit the text of a pane label
                         and/or completely disable its display using the
                         Pane Labels text box and check box respectively.
                         Labels will be displayed in the same color used to
                         plot the data array.
                         
                         Parity attempts to display all the Pane Labels for
                         all the data arrays plotted in a particular pane
                         area.  In other words, labels for all the data
                         arrays plotted IN a pane or OVERLAID on a pane will
                         be printed.  However, the logic for arranging these
                         labels is complicated and can easily become
                         confused when you overlay panes that contain
                         multiple data arrays.  Also the pane may not be
                         large enough to contain all the labels.
                         
                         Once a Pane Label has been manually edited,
                         subsequent changes in the underlying formula will
                         not affect the label.
                         
                         We recommend that when you overlay panes you use
                         the pane label to indicate whether a data array is
                         plotted to the left or right scale.
                         
       Maximize Y Axis?  The Y axis scale can be adjusted to maximize the
                         fit to the data plotted in the pane by checking
                         this box.  This maximizes the amplitude of the data
                         plotted in the pane.  If the box is unchecked
                         Parity will display the Y axis scale with "rounded"
                         values, i.e. 10 to 50, or 100 to 200.  This will
                         result in "prettier" labels but can flatten the
                         data out quite a lot.  We prefer maximizing the fit
                         to data but the choice is yours.
                         
       Separate Panes?   By default, Parity abuts stacked panes top to
                         bottom with no separation.  If you check Separate
                         Panes? Parity will add 4% of the area of the chart
                         as white space to the top of the pane.  Depending
                         on the size of the chart this will usually permit
                         the top and bottom scale labels of two adjacent
                         panes to be displayed without overlapping.  However
                         less space will be available to display the data.
                         The total white space in the chart is added
                         together and used to adjust the relative size of
                         all of the panes.
                         
       Chart Title Includes:  The title bar of a chart can include either
                         the underlying security name, or the study name, or
                         both.  In order to use a chart in a cluster the
                         chart title must include the study name.
                         
       X Axis Tick Days  This controls the minimum number of days displayed
                         between tick marks on the X Axis.  If the chart is
                         too small to display all the ticks the number of
                         tick days will be multiplied by a factor of 2 or 5
                         until the largest possible number of ticks can be
                         displayed.  In addition this setting may affect the
                         frequency of the Vertical Grid.
                         
       Chart Title at Top of Page  If you check this box the Chart Title
                         will be included at the top of the chart as well as
                         in the title bar of the chart's window.  This can
                         be useful when you are preparing printed charts.
                         
       

Action Editor
       
       The Action Editor lets you set up to six actions which Parity may
       take when it creates a chart from the study you are defining.
       Whether the action is performed will depend on whether its associated
       condition is true.  These actions include the Price Painter which
       colors the HLC bars of a price chart when the action condition is
       true, Mark It which adds a marker above or below the price chart when
       the action condition is true, and Audible Alarms which plays a beep
       or a Windows WAV file when the action condition is true within the
       number of days set by the user.  You can have multiple actions and
       action conditions within the same study.
       
       When you click on the Actions button on the Formula Editor the Action
       Editor form will appear.
       
       The top half of the Action Editor shows the formulas that you defined
       using the Formula Editor.  The bottom half of the action editor lists
       the actions and action conditions that you are setting.  Normally you
       will create one or more logical Action Conditions which Parity will
       evaluate as true or false expressions.  A very simple Action
       Condition might be C > MOV(C, 40, E) which would return an array of
       1's and 0's depending on whether the closing price was greater than
       its 40 day exponential moving average.  After you set the action
       condition you would select the action you want performed if the
       action condition is true.  After you select an action condition the
       Style and Option Editor for that action will be overlaid on the top
       half of the Action Editor as shown below:
       
       The actual options you can set will vary for each of the actions you
       choose and should be self explanatory.  You can also access the Style
       and Option Editor by clicking on the Setup Options button by the
       action you want to edit.
       
       The following chart illustrates the result of the Action settings
       shown above.
       

Select a Study
       
       Use the Select a Study command to select the study used to display
       the price data from any of the studies you have previously defined.
       You can also convert a profit test or a scan to a study by changing
       the setting of the "Select The Study From:" drop down list box.
       
       Select the study you want to use by double clicking on its name in
       the list box or hit the Enter key after the study you want to select
       is highlighted.  Note that when you select a new study to become the
       current study it will replace the study, batch, or cluster you had
       previously selected and reset the X or study axis of the Display
       Matrix.
       
       You can also use the Select a Study command to display or print the
       study definition by changing the setting of the "Use The Selected
       Study For:" drop down list box.

Save All Studies
       
       The Save All Studies command saves the definition of ALL the studies
       in memory to the STUDIES.DAT file in your Parity directory.  This is
       the only way to make any changes, deletions,  or newly created
       studies permanent.  It is not possible to save changes to a single
       study.

Delete Study
       
       The Delete Study command removes the definition of a study from
       memory.  Studies will not be permanently deleted unless you Save All
       Studies.
       

Import Study From Disk
       
       The Import Study From Disk command lets you load a named study from
       your floppy or hard disk.  When you import a study you can accept its
       previously defined name or give it a new name.  Note that the
       imported study won't be permanantly saved to your STUDIES.DAT file
       unless you also issue the Save All Studies command.

Export Study To Disk
       
       The Export Study To Disk command saves all the settings for the named
       study that you select to a disk file.  Only one study can be saved in
       each file and by default Parity will suggest using the first 8
       characters of the study name for the file name.  Exported studies can
       be imported by any Parity or Parity Plus user who has version 1.5 or
       higher.  In order to export a study it must have been named using the
       Save command on the Study Editor.  The "Default" and "Unamed" studies
       cannot be exported.  Exported studies are not deleted from your
       STUDIES.DAT file.

Display Current Study
       
       The Display Current Study command displays a chart of the current
       security using the current study and sets the display mode to Display
       Group.  This command is included for your convenience only and we
       recommend controlling the Display Matrix using the Display Tools
       found on the Tool Bar.

Batch Studies
       
       The Batch Studies command lets you define a new Batch of studies
       using the Create Batch form.  A Batch can contain an unlimited number
       of studies.
       
       To add studies to the batch, double click on the study name in the
       All Defined Studies list.  If you change your mind and want to remove
       a study from the batch just double click on the study name in the
       Studies to be Batched list.
       
       Type the name you want to assign to the batch in the Name of New
       Batch box.  The name can contain 16 significant characters including
       A-Z, a-z, 0-9, %, _, $, !, and %.  Names cannot begin with a number
       and are not case sensitive.
       
       Clicking O.K. will save the batch to memory and Cancel will exit.  To
       make your changes permanent you must issue a Save All Batches
       command.

Select a Batch
       
       Use the Select a Batch command to select the batch used to display
       the price data from any of the batches you have previously defined.
       
       Note that when you select a new batch to become the current batch it
       will replace the study, batch, or cluster you had previously selected
       and reset the X or study axis of the Display Matrix.
       
       To display the first study in the batch using the current security
       use the Display Current Study command or click on one of the display
       options on the Tool Bar.

Reorder Batch
       
       When you reorder a batch you change the display sequence of the
       studies within the batch.  You can also change the definition of the
       batch by excluding studies from the Reordered Batch list.
       
       Dialog Form Item  Description
       List of All Batches    Select the batch you want to reorder by double
                         clicking on the batch's name in this list box.
                         
       Original Batch    Lists all the studies in the batch you selected for
                         reordering which have not been added to the
                         Reordered Batch list.  Add a study to the Reordered
                         Batch list by double clicking on the study name.
                         
       Reordered Batch   Lists the display order for all the studies that
                         have been selected for reordering.  Double Clicking
                         on a study in the Reordered Batch list will add it
                         back to the Original Batch List.
                         
       O.K. Button       Resets the studies list and display sequence of the
                         Batch to be identical to the Reordered Batch list.
                         
       Cancel            Exits the Reorder Batch form without making any
                         changes.
                         

Save All Batches
       
       The Save All Batches command saves the definition of ALL the batches
       in memory to the BATCHES.DAT file in your Parity directory.  This is
       the only way to make any changes, deletions,  or newly created
       batches permanent.  It is not possible to save changes to a single
       batch.

Delete Batch
       
       The Delete Batches command removes the definition of a Batch from
       memory.  Batches will not be permanently deleted unless you Save All
       Batches.
       
       To add a batch to the list of batches to be deleted double click on
       the batch name in the All Defined Batches list.  To remove a batch
       from the list of batches to be deleted double click on the batch name
       in the Batches to be Deleted list.  Click on Delete to make these
       changes or Cancel to exit without deleting any batches.

Clusters Menu
       
       A Cluster is similar to a batch.  However, instead of displaying its
       studies sequentially, a cluster displays all the studies it contains
       at the same time and in a predefined screen configuration.
       
       Note that the configuration of a cluster is display specific.
       Displaying a cluster created for a higher resolution display, i.e.
       Super VGA resolutions of 800 x 600 or 1024 x 768, on a 640 x 480 VGA
       display, will have unpredictable effects.
       

Make a Cluster
       
       To make a cluster you must display screen charts of all the studies
       you want included in the cluster.  Size and arrange these charts on
       your screen exactly as you want them to appear when you display the
       cluster.  Any charts which exist, whether or not they are visible,
       will be added to the cluster as long as they based on "named"
       studies.  This includes charts that are minimized.  Only charts with
       titles including the study name can be clustered.  Charts without a
       named study in the title, or with a "DEFAULT" or "UNNAMED" study
       title are excluded from the cluster.
       
       The Make a Cluster command is completely automatic.  All you need to
       do is name the cluster.  The name can contain 16 significant
       characters including A-Z, a-z, 0-9, %, _, $, !, and %.  Names cannot
       begin with a number and are not case sensitive.  Clusters, batches,
       groups and studies can all have the same name.
       
       Note that the configuration of a cluster is display specific.
       Displaying a cluster created for a higher resolution display i.e.
       Super VGA resolutions of 800 x 600 or 1024 x 768, on a 640 x 480 VGA
       display will have unpredictable effects.
       

Select a Cluster
       
       Use the Select a Cluster command to select the cluster you want to
       display.
       
       Note that when you select a new cluster to become the current cluster
       it will overwrite the cluster, batch, or study you had previously
       selected and reset the X or studies axis of the Display Matrix.
       
       To display the cluster using the current security click on one of the
       display options on the Tool Bar.

Save All Clusters
       
       The Save All Clusters command saves the definition of ALL the
       clusters in memory to the CLUSTERS.DAT file in your Parity directory.
       This is the only way to make any changes, deletions,  or newly
       created clusters permanent.  It is not possible to save changes to a
       single cluster.

Delete Cluster
       
       The Delete Cluster command removes the definition of a Cluster from
       memory.  Clusters will not be permanently deleted unless you Save All
       Clusters.
       

Display Current Cluster
       
       The Display Current Cluster command displays the charts that comprise
       the current cluster on the current security.  If no security or
       cluster has been loaded you will receive an error message.  This
       command is included for your convenience only and we recommend
       controlling the Display Matrix using the Display Tools found on the
       Tool Bar.

Pointer Menu
       
       The Pointer Menu includes less frequently used Action Tools than are
       accessible by clicking on an icon on the Tool Bar.
       
       Choose the action you want to perform from the Pointer Menu
       selections.  Then click on the chart you want to act on.  These tools
       are "sticky" and stay active until you select another action tool or
       click on the Pointer Tool on the Tool Bar.
       
       Command           Description
       Erase Vertical Lines   Erases any vertical lines that have been drawn
                         on the chart you click on, including lines drawn
                         with ChartVertLine().
                         
       Erase Horizontal Lines Erases any horizontal lines that have been
                         drawn on the chart you click on, except lines drawn
                         with ChartHorizLine() which cannot be erased.
                         
       Erase Drawn Lines Erases any lines drawn with the limited line tool,
                         the extended line tool, or the Fibonacci tools.
                         
       Erase Cycle Lines Erases any lines drawn with the cycle line tool.
                         
       Erase All Lines   Erases all the lines drawn on the chart except
                         lines drawn with ChartHorizLine().  The chart will
                         flicker as each set of lines is erased.
                         
       Erase All Text    Erases any text you have added to the chart using
                         the text tool.
                         
       Percent Retracement Tool    Click on any three points in a chart.
                         Parity will calculate the percent retracement for
                         any third point relative to the distance between
                         the first two points and show price levels for
                         frequently cited percentage retracements.
                         
                                      
                                      
       Draw Fibonacci Lines   Click on any two points in a chart, usually
                         two extreme price points.  Parity will draw
                         horizontal lines at the two points plus lines at
                         38.2%, 50.0% and 61.8% of the vertical difference
                         between the two points.  Note that the calculations
                         are performed based on the actual points you click
                         on, not the data values they are proximate to.
                         
       Draw Fibonacci Fans    Click on any two points in a chart, usually
                         two extreme price Points.  Parity will draw 3
                         diagonal trend lines extending from the first
                         point, through the points that are 38.2%, 50.0% and
                         61.8% of the vertical difference between the two
                         points and vertical to the second point.  These
                         trend lines are automatically extended to the far
                         right of the chart.  Note that the calculations are
                         performed based on the actual points you click on,
                         not the data values they are proximate to.
                         
       Fibonacci Time Zones   After you click on a point in a chart Parity
                         will draw vertical lines indicating the important
                         fibonacci time periods from that date.  The
                         Fibonacci series used is 0, 1, 1, 2, 3, 5, 8, 13
                         ....
                         
       Draw Channel Lines     Click on any two points in a chart, usually
                         two points which you believe define a trend.
                         Parity will draw an extended trend line between the
                         two points.  Then click on any third point and
                         Parity will draw an extended trendline at the third
                         point which is parallel to the first two points.
                         

Options Menu
       
       The Options Menu includes several commands used to customize Parity's
       operation.  It also includes commands for maintaining and converting
       your data files.  These features are discussed in more detail in Part
       8, Data Maintenance and Conversion.
       

Default Study
       
       The Default Study command permits you to save the settings of the
       current study as the "DEFAULT" study.  The "DEFAULT" study settings
       are loaded when you first start Parity, and whenever you click on the
       Reset All button in the Formula Editor.
       
       To make a "DEFAULT" study use the Create/Modify Current Study editors
       to define all of the settings for the current study as you want them
       to in the "DEFAULT" study and click OK.  Then choose Default Study
       from the Options Menu and click on Make Default Study.  All the
       settings, including formulas and chart procedures, of the current
       study will be saved to the DEFSTUDY.DAT file.  To return to Parity's
       standard "DEFAULT" settings delete the DEFSTUDY.DAT file from your
       disk.
       

Chart Preferences
       
       The Chart Preferences command lets you save the settings which affect
       the colors and sizes used to display various Chart Procedures and
       Action Tools.
       
       When you click on the "Display and Data Preferences" button, Parity
       creates a second dialog box that is used to create the default
       settings for the chart size and the relative data range which are
       used when you Load a Security or Select a Group
                                      
       The Display Preferences dialog also determines whether a new chart is
       always created after you load a security, edit a study, or select
       groups, studies, and batches.
       
       Use the Tool Bar Options setting to change the default setting for
       the Tool Bar's alignment from session to session.
       
       The Display Preferences dialog permits you to change the default
       setting for rescaling the Y axis on a chart when you use the Zoom In
       or Zoom Out  tools.  If you choose to have Parity automatically
       rescale the Y axis when zooming it is important to note that any
       lines or text you draw on the chart will not be correctly rescaled.
       Also if you scroll through a zoomed chart using the horizontal scroll
       bar Parity won't automatically rescale the Y axis for the new data
       which will be shown.  To rescale again just click on the Zoom In and
       Zoom Out tools.
       
       You can enable your preference settings for the current Parity
       session only, or you can save them to the CHRTPREF.DAT file which
       Parity uses to set the default settings you specified.  To return to
       Parity's standard chart settings delete the CHRTPREF.DAT file from
       your disk.
       

Directory and File Preferences
       
       Permits you to set a Startup Directory used for the Load a Stock and
       Create Group commands.  You can also save a preference for MetaStock
       or ChartPro file formats.  Your settings will be saved to the
       FILEPREF.DAT file which is automatically loaded when Parity starts.
       To return to Parity's standard settings delete the FILEPREF.DAT file
       from your disk
       
       Windows maintains a "current" directory for each disk.  If you change
       from the "Startup Directory" to a different directory using Parity,
       or any other Windows application, that will be the directory which
       will be displayed when you use Load a Stock or Create Group.  Parity
       can only set your initial startup directory.
       

Tool Bar Options
       
       The Tool Bar Options command is used to change the alignment of the
       Tool Bar in the display area.  Each of the options is discussed
       below.  In order to change the Tool Bar default setting from session
       to session use the Chart Preferences command.
       
  Fixed Tool Bar 21 Pixels From Right
       
       Will recreate the Tool Bar as a fixed window 21 pixels from the right
       of the Parity display area.  This option offsets the Tool Bar from
       the right of the screen to allow room for the verticial scroll bar
       which appears if you drag a chart off the screen.  The fixed Tool Bar
       is not affected by the Window Cascade and Tile commands unless you
       have moved a chart off the "desktop" and used the scroll bars which
       will appear to move around on the virtual desktop.  Then Window
       Cascade or Tile may adversely affect the Tool Bar and you may need to
       recreate it using the Tool Bar Options command.
       
  Moveable Tool Bar
       
       Will recreate the Tool Bar as a moveable window of fixed size.  The
       moveable Tool Bar will be affected by the Window Cascade and Tile
       commands.
       
  Flush Right Tool Bar
       
       Will recreate the Tool Bar so that it is aligned flush with the right
       side of the display.  The Tool Bar will be obscured by the vertical
       scroll bar which will appear if you drag a chart out of the display
       area.
       
  Flush Left Tool Bar
       
       Will recreate the Tool Bar so that it is aligned flush with the left
       side of the display.  The Tool Bar will obscured the upper left side
       of the first few cascaded charts.
       

Window Menu
       
       The Window Menu provides the standard functionality of the Windows
       3.x windowing commands.
       
       Command           Description
       Cascade           Arranges chart windows in an overlapping pattern so
                         that the title bar of each window remains visible.
                         
       Tile              Arranges chart windows side by side so that all
                         windows are visible.
                         
       Arrange Icons     Arranges all chart icons in rows at the bottom of
                         the Parity window.
                         
       Show Print Log    Opens a very simple and limited text editor.  You
                         can make notes and comments in the print log and
                         use the File Print command to print them or the
                         File Save As command to save them to a file.
                         
       Show Scheduler    This command has no function in this release of
                         Parity.
                         

Help Menu
       
       The Help Menu provides access to Parity's extensive on-line help
       files.  You can also access help by pressing F1 at any time or
       clicking on the Help button in most of the dialog boxes.  The help
       files include virtually the entire text of the User's Guide.
       
       
Part 5         Indicators & Chart Procedures

       The technical analysis of stocks and commodities generally falls into
       three general types of activity; chart reading, indicator analysis,
       and wave or cycle analysis.  Vociferous proponents of each method
       exist, but most technicians make use of tools from each of these
       three general types of analysis in some measure.  Parity provides the
       user with a wide variety of chart types and predefined technical
       indicators which can be used to predict potential price trends.
       
  Chart Reading
       
       Chart reading typically involves the visual recognition of historical
       price and volume trends and patterns which are believed to be useful
       for forecasting the future direction of a security.  Most chartists
       draw trendlines and resistance and support lines on a chart which
       identify key price patterns.  Parity provides a full complement of
       drawing tools which are accessible from the Tool Bar or the Pointer
       Menu.  Just by "pointing and clicking" the user can quickly add
       trendlines, text, channel lines and Fibonacci lines to any chart.
       Also, Parity's Chart Procedures allow you to create many different
       chart types.
       
  Indicator Analysis
       
       Over the years technicians have developed a number of widely
       recognized "indicators" which can be useful for predicting when a
       security has peaked or bottomed or is continuing in its current
       trend.  An indicator is simply a predefined formula which takes
       historical price and volume data and calculates a new indicator value
       which may have predictive significance.  Indicator analysis usually
       looks for indicator values above or below a certain point,
       divergences from an indicator chart and the price chart, or a peak or
       trough in the indicator itself.  Parity offers most of the commonly
       used indicators as predefined functions which can be easily charted
       or included in your own formulas.
       
  Cycle and Wave Analysis
       
       Many technicians believe that stocks and commodities follow certain
       naturally occurring wave patterns and price cycles.  The most
       comprehensive (and difficult) theory of this type is the Elliot Wave
       Theory.  Parity Plus provides the Draw Cycle Lines tool to permit you
       to explore different cyclical intervals on any of the charts you
       create.  Parity also provides a full set of trigonometric functions
       that can be used to plot any sort of cycle as a user defined formula
       in your charts.

Technical Indicators
       
       Parity includes over 50 of the most popular indicators for the
       technical analysis of stocks and commodities.  The majority of these
       indicators act as functions that return an array which can be used as
       the input to another indicator or within a user defined formula.
       This makes it easy for you to do "studies on studies" or to develop
       your own proprietary charting tools.
       
       A complete list of the indicators available in Parity is shown below.
       The following section provides a more detailed discussion of each of
       the indicators, however, a full description of the derivation and
       interpretation of these indicators is well beyond the scope of this
       documentation.  Please see the Bibliography which follows for a list
       of books which discuss these indicators in detail.  Also see the
       section on Pattern Recognition Functions (page 66) for a set of
       functions which you can use in a profit test or chart to detect
       certain features like peaks and valleys.
       
  Notes on Syntax
       
       The naming and syntax for indicators generally follows the
       conventions established by MetaStock and TAS.  Some indicators expect
       parameters of a specific type as shown below:
       
          d  Any data array including predefined variables or the result of
             another indicator.
          p  The number of periods to use to calculate the indicator.
          t   The type of moving average to use.  Must be "S" for simple, "E"
             for exponential, "W" for weighted.
          r   Express the result of the indicator in points or percentages.
             Must be "$" for points or "%" for percentages.
       Note that Parity is not case sensitive.  D is the same as d, AD() is
       the same as aD().
       

List of Predefined Technical Indicators
       
       Indicator Function          Description
          AD()                Accumulation/Distribution
          ADX(p)              Average Directional Movement Index
          ADXR(p)             Average Directional Movement Rating
          ASwing(limitmove)   Accumulation Swing Index
          BolBands(p, deviations)  Bollinger Bands.  The deviations parameter
                              is the number of standard deviations used to
                              calculate the top and bottom bands.  BolBands()
                              is a procedure.
          CCI(p)              Commodity Channel Index
          CO()                Chaikin Oscillator
          DPO(p)              Detrended Price Oscillator
          DX(p)               Directional Movement Index
          EquiVol(p)          EquiVolume Indicator
          LinRegSlope(d, p, t)     Linear Regression Slope Indicator
          MACD()              MACD Indicator.  The 9 day exponential moving
                              average of the MACD is plotted in the same
                              color used by the Text Tool.
          MASS(p)             Mass Index
          MDI(p)              Minus Directional Indicator
          MFI(p)              Money Flow Index
          MO(p)               Momentum Indicator
          MOV(d, p, t)        Moving Average
          MovLinReg(d, p)     Moving Linear Regression
          NVI()               Negative Volume Index
          OBV()               On Balance Volume
          OSCP(p1, p2, t, r)  Price Oscillator
          OSCV(p1, p2, t, r)  Volume Oscillator
          PctDLine( ... )     %D Line Function
          PctKLine( ... )     %K Line Function
          PDO(d, p)           Price Deviation Oscillator
          PriceChannel(p)     Price Channel Bands
          PDI(p)              Plus Directional Indicator
          PVI()               Positive Volume Index
          PVT()               Price Volume Trend
          ROC(d, p, r)        Rate of Change
          RSI(p)              Relative Strength Index
          RSIX(d, p)          Relative Strength Index with specified data
                              array.
          RWIHighs(p1, p2)    Random Walk Index of Highs
          RWILows(p1, p2)     Random Walk Index of Lows
          SAR(IAF, MAF)       Parabolic Stop and Reverse System.  IAF is the
                              initial acceleration factor.  MAF is the
                              maximum acceleration.
          SMI(p1, p2, p3)     Stochastic Momentum Index
          STD(d) or STD(d, p) Standard Deviation.  STD(d) calculates the
                              standard deviation of each element of d from
                              all the values in d and returns a single
                              scalar number.  STD(d, p) calculates the
                              standard deviation of each element of d from
                              the values of the preceding p periods and
                              returns an array.
          Stoch(%Kperiods, %Kslowing, %Dperiods, %Dmethod)
          Stoch(%Kperiods, %Kslowing)   Stochastic Oscillator.  Stoch()
                              takes two forms.  You must specify the number
                              of %K periods and the %K slowing periods.
                              Optionally you can also specify the number of
                              %D periods and the %D moving average method,
                              i.e. "E", "S", "W".  By default %Dperiods is 3
                              and %Dmethod is "E".  The %D line is plotted
                              in the same color as the Text Tool.  Stoch()
                              is a procedure.
          Swing(limitmove)    Wilder's Swing Index
          TR()                True Range
          TRIX(p)             TRIX Indicator
          TSF(d, p)           Time Series Forecast
          ULT(p1, p2, p3)     Larry Williams' Ultimate Oscillator
          VAR(d) or VAR(d, p) Variance.  VAR(d) calculates the variance of
                              each element of d from all the values in d and
                              returns a single scalar number.  VAR(d, p)
                              calculates the variance of each element of d
                              from the values of the preceding p periods and
                              returns an array.
          VHF(d, p)           Vertical Horizontal Filter
          VOL(pm, pr)         Chaikin's Volatility Indicator, pm is the
                              number of moving average periods, pr is the
                              number of rate of change periods.
          VOLW(p)             Wilder's Volatility
          WC()                Weighted Close
          WILLA()             Williams' A/D
          WILLR(p)            Williams %R
          ZIG(d, change, r)   Zig Zag Indicator.  Filters out changes that
                              are less than change points or change percent.
                              If r is "%" then change must be less than 1.0.

Bibliography of Technical Analysis Texts
       
       The New Commodity Trading Systems and Methods.  Perry J. Kaufman.
       Technical Analysis of the Futures Markets.  John J. Murphy.
       The Encyclopedia of Technical Market Indicators.  Robert W. Colby &
       Thomas A. Meyers.
       The Technical Traders Guide to Computer Analysis of the Futures
       Markets.  Charles LeBeau & David W. Lucas.
       Technical Analysis of Stock Trends.  Robert D. Edwards & John Magee.
       Technical Analysis Explained.  Martin Pring.
       New Concepts in Technical Trading Systems.  J. Welles Wilder.
       

Definition and Interpretation of Technical Indicators
       
       Over the course of the past 20 years or so technical analysts have
       devoted an increasing amount of their time to the derivation and
       interpretation of technical indicators that they believe are useful
       for understanding historical price patterns and predicting future
       price trends.  Prior to the 1970's this sort of analysis was nearly
       impossible given the difficulty of manually computing most of these
       indicators and the scarcity of adequate computer power.  Although
       chart pattern interpretation and trendline analysis continues to be
       important, most technicians have a "toolbox" of indicators that they
       rely on to identify price trends and overbought and oversold
       conditions.
       
       Parity includes predefined functions for many of the most popular and
       widely used indicators.  Each of the predefined indicators is
       discussed below.  Wherever possible we have provided the actual
       custom formula equivalents for the indicators to help you to
       understand the derivation of the indicator as well as providing you
       with examples you can use to develop your own custom formulas.  We
       also discuss some of the more common interpretations of many of the
       indicators.  See the section on Pattern Recognition Functions (page
       66) for a set of functions which you can use in a profit test or
       chart to detect certain features like peaks and valleys.
       
       Neither the inclusion of an indicator nor the discussion of its
       interpretation should be construed as representing an endorsement of
       its use.  To the best of our knowledge no one indicator or even a
       combination of indicators is guaranteed to result in profitable
       trading for every combination of securities and markets.
       
  Indicator Parameters and Syntax
       
       The naming and syntax for the indicator functions generally follows
       the conventions established by MetaStock and TAS.  Some indicators
       expect parameters of a specific type as shown below:
       
          d  Any data array including predefined variables or the result of
             another indicator.  The variable names for the price data are
             O, H, L, C, V, and OI for the open, high, low, close, volume
             and open interest data array values.
          p  The number of periods to use to calculate the indicator.  The
             period parameters for indicators requiring more than one period
             are designated by p1, p2, and p3.  A period is the same as one
             bar on a price chart or a single element of a data array.  The
             actual time period, i.e. days or weeks, will depend on the
             periodicity of the data you have loaded.
          t   The type of moving average to use.  Must be "S" for simple, "E"
             for exponential, "W" for weighted.
          r   Express the result of the indicator in points or percentages.
             Must be "$" for points or "%" for percentages.
       Some indicators require a parameter of a different type, i.e.
       BolBands(p, deviations), which are explained in the discussion of the
       indicator.  The parameter names or variables "stand in" for the
       specific values you enter, i.e. MOV(C, 40, "E") is a specific case of
       the indicator function defined more generally as MOV(d, p, t).
       
       The predefined indicators can be selected from the list boxes on the
       Study, Profit Test, and Scan Editors by double clicking on the
       indicator's function name or description.  You can also manually
       enter an indicator by typing it into the formula box on the Editors.
       Parity doesn't perform error testing on manually entered formulas.
       
       Many of the indicator descriptions include a reference to one of the
       books in the Bibliography.  Generally we recommend Murphy's book for
       beginners, Kaufman for a more advanced and mathematical discussion,
       and Colby & Meyers for its detailed discussion and profit testing of
       dozens of indicators.
       

MetaStock Function Compatibility
       
       Parity supports virtually all of the indicators and functions
       provided with MetaStock 3.5, and adds many new indicators and
       functions of its own.  The following details the differences between
       MetaStock and Parity.
       
  MetaStock Functions Not Supported In Parity 1.5.
       
       Options           None of MetaStock's options related functions are
                         supported in Parity 1.5.  These include the option
                         functions delta(), gamma(), life(), option(),
                         theta(), and vega().
                         
       Indicators        We have had trouble finding the correct formulas
                         for the following indicators:  corr(), di(), fft(),
                         and hpi().  These indicators will be added as we
                         figure out how to calculate them.
                         
  MetaStock Functions which will never be supported.
       
       Function          Description
       fml()             This has no equivalent in Parity since the result
                         of a formula can be referred to directly using F1
                         to F9.
                         
       if()              if is a reserved word.  Equivalent functionality is
                         provided by: IF test THEN d1 ELSE d2.
                         
       mod(d, v)         mod is a reserved word.  Equivalent functionality
                         is provided by: d mod v.
                         
       ref(d, p)         Equivalent functionality is provided by d[-p] or
                         d[+p].
                         
       sqr(d)            sqr is a reserved word.  Equivalent functionality
                         is provided by: SQRT(d).
                         
       sub(a, b)         sub is a reserved word.  Equivalent functionality
                         is provided by: a - b.
                         
       sum(d, p)         sum is a reserved word.  Equivalent functionality
                         is provided by: StatMovTot(d, p)
                         
                         
  Trivial MetaStock Functions which are supported.
       
       For your convenience we do support the following MetaStock functions.
       The actual underlying Parity equivalent is shown for your
       edification.  We cannot guarantee that these functions will be
       supported in future releases of Parity.
  
       Function          Description
       ADD(a, b)         a + b
                         
       DIV(a, b)         a / b
                         
       FRAC(a)           a mod 1
                         
       HHV(d, p)         StatMovMax(d, p)
                         
       INT(d)            d \ 1
                         
       LLV(d, p)         StatMovMin(d, p)
                         
       MID(d, p)         (StatMovMin(d, p) + StatMovMax(d, p))/2
                         
       MP()              (H + L) / 2
                         
       MUL(a, b)         a * b
                         
       NEG(d)            -d
                         
       PER(d)            (d - d[StartValid(d)])/ d[StartValid(d)]
                         
       PREC(d, p)        ((d * 10^p) \ 1) / 10 ^ p
                         
       PWR(a, b)         a ^ b
                         

Procedures vs. Functions
       
       Parity includes several indicators which are defined as Procedures
       rather than Functions.  These indicators, which include BolBands()
       and Stoch() do not return an array of data values.  However,
       BolBands() and Stoch() do create named Global Variables which can be
       used in subsequent calculations.
       
       Parity also includes a special class of Chart Procedures which are
       used to create special chart types in a pane of a study.  Chart
       procedures are used in a study just like indicators but they do not
       return an array of data values.
       
       Indicator procedures and chart procedures cannot be used within any
       other function and the result of the procedure cannot be referred to
       using the F1 to F9 array variables.
       
       The following predefined indicators are Procedures rather than
       Functions.
       
            BolBands(p, deviations).  Calculates the Bollinger Bands for the
            closing price using p periods and deviations standard
            deviations.  The result of the calculation are stored in the
            global variables topband, centerband, and bottomband which may
            be referenced in subsequent calculations.
       
            Stoch(%Kperiods, %Kslowing, %Dperiods, %Dmethod)  Calculates the
            Stochastic Oscillator for the price data.  The results of the
            calculation are stored in the global variables %KLine and %DLine
            which may be referenced in subsequent calculations.

Chart Procedures
       
       Parity includes the ability to display multiple types of price charts
       within the same Study/Chart.  Parity accomplishes this with its Chart
       Procedure functionality.  Chart Procedures are used in a Study almost
       exactly like Parity's predefined indicators.  However, instead of
       returning a data array which is plotted in a pane of the chart, chart
       procedures create an entirely different chart type in the specified
       pane.
       
       Like indicators, chart procedures can be added to a study by double
       clicking in the Formula Editor's list box when the Chart Procedure
       radio button is on.  Or you can manually type a chart procedure into
       a formula box.  Note that the color and width used for many of the
       Chart Procedures can be set with the Chart Preferences command on the
       Options Menu.
       
  Types of Chart Procedures
       
       ChartFirstSecurity(typechart)
       Creates a bar, line, or candlestick chart of the first security in
       the Group.  Use "B", "L", or "J" for the typechart parameter.  See
       Predefined Variables.
       
       ChartHorizLine(data), ChartVertLine(data, c1, c2)
       Draws vertical and horizontal lines on a chart based on the values of
       data.  No results are returned.  See Adding Lines to a Chart.
       
       ChartProfitTest()
       Permits you to calculates the result of the profit test you define
       with the buywhen, sellwhen, longstop, and shortstop parametersand
       embed the results in any Study.  The ChartProfitTest() procedure is
       an advanced feature of Parity Plus and is not available in the
       shareware version of the program.
       
       DaysAtPrice(array, band)
       Plots a horizontal bar chart of the number of days array was within
       the price range defined by band.  DaysAtPrice() is usually used with
       price data such as C, but you can use it with any array variable such
       as F1-F9.  The band parameter sets the "granularity" of the price
       ranges which are used to total the occurrences of array.  For example
       a band of 1 will treat a closing price of 33, 33.5 and 33.75 as
       occurring in the same band while .25 would treat them as falling into
       separate bands.  The horizontal bar is plotted at the midrange of the
       band.  Each increment along the X axis equals 1 day where array's
       price was within the band.  By default Parity will plot DaysAtPrice
       in the Price Pane.
       
       DBarPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
       Causes a modified point and figure chart which incorporates the
       duration or time period of a column to be displayed in its pane.  No
       results are returned.
       
       EquiVolumeChart()
       Creates the Equivolume chart popularized by Richard Arms.  The width
       of each box on the chart is proportional to the volume traded, while
       the top and bottom of the box corresponds to the High and Low prices
       for that day.  A future version of Parity will include Equivolume
       Candlestick charts.  If you plot more than 1500 days of data with
       EquiVolumeChart() you will hit Parity's limit of 8189 data array
       elements and receive an error message.
       
       VolumeAtPrice(array, band)
       Plots a horizontal bar chart of the total volume when array was
       within the price range defined by band, proportional to the total
       volume traded during the period of the chart.  Unlike DaysAtPrice(),
       the length of the horizontal lines is relative, not absolute.
       Roughly speaking, a line twice as long had twice as much volume at
       that price.  See DaysAtPrice() for more detail.
       
       XOPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
       Causes a traditional point and figure chart to be displayed in its
       pane.  No results are returned.
       
       XVolumeYPrice()
       This procedure plots a line chart where the X axis is volume and the
       Y axis is the closing price.  The first day is indicated by an "S" on
       the chart, and the last day by an "E".  The direction of the lines is
       indicated by their color.  By default, the lines cycle through Red,
       Green, and Blue.  So the line for the first data point is Red, the
       second is Green, the third is Blue, the fourth is Red etc.  The
       overall effect is to create something akin to The Crocker Chartc.
       The analysis of Crocker Chartsc is beyond the scope of this
       documentation.

Point and Figure Charts
       
       Point and Figure charts are used to plot price movement rather than
       price action over time like bar or candlestick charts.
       
       You create point and figure charts by typing one of Parity's two
       types of point and figure chart procedures in the formula box of the
       Formula Editor.  Point and figure charts can be plotted in a unique
       pane, which can be stacked or overlaid on another pane, or plotted in
       a pane with other indicators.
       
  Constructing Point and Figure Charts
       
       Traditional point and figure charts display price movement as a
       series of columns of X's and O's.  An X column indicates rising
       prices and the O column indicates falling prices.  By default Parity
       also colors the X columns blue and the O columns red to facilitate
       their interpretation.
       
       The two most important parameters in the construction of a point and
       figure chart are the box size and the reversal criterion.  The box
       size determines the minimum price movement necessary to add an X or O
       to a column.  The reversal criterion is usually expressed as x number
       of boxes and is used to determine if a new column of X's or O's
       should be started.  The procedure to create a chart in an
       English/BASIC dialect is:
       
          Get the high and low prices for today
          SELECT CASE current column
               CASE current column is X's
                    IF today's high is at least 1 box > than previous high
          THEN
                         Plot new X's.
                         Do not fill box if scale price is > today's high
                    ELSE IF today's low is x boxes below the X column high
          THEN
                         Move right one column
                         Enter O's beginning 1 box below the X column high
                         Do not fill box if scale price is < today's low
                    END IF
               CASE current column is O's
                    Do the reverse of the X case.
          END SELECT
       
       Traditional point and figure charts disregard time.  This makes it
       difficult to relate point and figure charts to standard price volume
       charts.  To alleviate this problem Parity incorporates a point and
       figure chart type, DBarPointFigure(), which changes the width of the
       X and O columns to reflect the passage of time.
       

The Point and Figure Procedures
       Parity has two chart procedures which can be used to create point and
       figure charts.
       
  XOPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
       
       Plots a traditional point and figure chart of X and O columns.  If
       you have a color display, X's will be displayed in blue and O's in
       red.  The procedure is entered as a formula in a Study.  How point
       and figure charts are displayed can be controlled in the same fashion
       as any other item plotted in a study.
       
  DBarPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
       
       Plots a modified point and figure chart which incorporates time by
       varying the width of a column to match the entry and exit dates.  X
       columns are displayed as blue rectangles, O columns are displayed as
       red rectangles.
       
  Parameters
       
       Parity permits you to experiment with a number of varieties of the
       point and figure method by changing the parameters used with
       XOPointFigure() and DBarPointFigure.
       
          Parameter           Description
          boxsize             The box size of the chart can be expressed in
                              points or percentages, i.e. 1.0 could indicate
                              one point, or .05 could indicate 5% depending
                              on the setting of $or%
          reversals           Determines the number of boxes need to reverse
                              direction and start a new column.  Must be a
                              positive number.  Note that a boxsize of 1 and
                              reversals of 3 and boxsize of .5 and reversals
                              of 6 will create identical charts.
          $or%                Determines whether the value of boxsize is
                              used as an absolute dollar amount or a
                              percentage of the closing price.  $or% must be
                              either "$" or "%" including the quotes.
          reverseWhen         An important question for point and figure
                              charts is when to test for a reversal if the
                              high and low prices of a volatile trading day
                              could be used to continue a column or reverse
                              to a new column.
                              Setting reverseWhen to "A" causes Parity to
                              test for a reversal even after a column has
                              been continued.
                              Setting reverseWhen to "N" causes Parity to
                              only test for a reversal if the column has not
                              been continued.  This is the case shown in the
                              chart construction example above.
                              Setting reverseWhen to "B" causes Parity to
                              test for a reversal before it tests if the
                              column has been continued.
          constantBox         Parity can automatically vary the box size as
                              a function of closing price when $or% is set
                              to "%".  constantBox must be either "Y" for a
                              constant box size or "N" for a variable box
                              size based on boxsize * today's close.  If
                              $or% is set to "$" constantBox is ignored.
  Limitations
       
       An XOPointFigure() chart can contain a maximum of 8189 X and O
       elements.  This is a limitation for all data arrays in Parity.  An X
       or O element is created for every box movement.  If you use a very
       small box size relative to the volatility and price of the security
       it is possible to hit the 8189 element limit.  An example would be
       using a 0.5 box size on something like the Dow Jones Industrial
       Average.  This will cause a range error when you create the chart.
       To recover control of Parity just hit the up arrow key.  Then close
       the error message box by double clicking on the control menu icon in
       the upper left corner of the error message box.
       
  Point & Figure Charts of Indicators and Non-Price Data
       
       Parity 1.5 permits you to use the DBarPointFigure() and
       XOPointFigure() procedures to create point and figure charts of
       indicators and non-price data.  Simply add a sixth parameter which is
       the numeric array you want charted in point & figure form.  For
       example you could create a point & figure chart of the relative
       strength of the current security compared to the first security in
       the group with a starting value of 100 (assuming the C and FC arrays
       have the same range and number of elements) using the following
       formula:
       
          XOPointFigure(.5, 3, "$", "N", "Y", (C/FC) * ((100 * FC[1])/C[1]))
       
       Note that this feature is not fully tested or debugged.  We do not
       recommend using percentage based box sizes except with data you are
       certain contains only positive numbers not too close to zero.  Also
       make sure that your box size is appropriate to your data.

Adding Lines to a Chart
       
       Parity includes two procedures which can be used to automatically
       plot vertical or horizontal lines on a chart.  ChartVertLine() is
       particularly useful for indicating buy/sell criteria while
       ChartHorizLine() is useful to graphically illustrate threshold values
       for the formulas and indicators you plot.
       
       To use these procedures simply type them into a formula box in the
       Formula Editor.
       
       ChartVertLine(array, type, color1, color2)
       
       Causes vertical lines to be plotted the full height of the chart.
       ChartVertLine requires 1, 2 or 4 parameters as explained below.
       Generally, you will want to set the Pane To Plot In to the value of a
       pane which contains data.  This doesn't affect how ChartVertLine()
       works but otherwise you will have an empty pane in your chart.
       
       ChartVertLine(array) -- One Parameter Case.
       
          array               Holds a data array which can be a predefined
                              variable, F1 to F9, the result of an
                              indicator, or an expression combining any of
                              these.  ChartVertLine(array) tests for array
                              <> array[-1] and plots a vertical line
                              whenever it is True.  In other words
                              ChartVertLine will plot a vertical line
                              whenever today's array value is not equal to
                              yesterdays array value.  For example:
                              ChartVertLine(C > MOV(C, 50, "S")
                              Will plot a vertical line when the closing
                              price crosses above or below the 50 day simple
                              moving average.
       ChartVertLine(array, type) -- Two Parameter Case
       
          array               Holds a data array as above.  Or array can
                              contain an array of dates.  The type parameter
                              determines how array will be evaluated.
                              If you want array to be a list of dates you
                              must express the dates as follows:
                              ChartVertLine({"07/01/91", "09/15/91",
                              "10/20/91"}, "dates")
                              This will plot a vertical line at each date
                              contained in array if that date exists in the
                              chart.  If the date doesn't exist no line will
                              be plotted.  Dates must be enclosed in quotes
                              and can be expressed as "MM/DD/YY", "YYMMDD",
                              or "DD-MMM-YY" type formats.  To plot a singe
                              date use ChartVertLine({"07/01/91"}, "dates")
                              or ChartVertLine("07/01/91","dates")
          type                Must be set to either "dates" to plot an array
                              of dates, or "values" to plot a data array as
                              in the one parameter case.
       ChartVertLine(array, type, color1, color2) -- Four Parameter Case
       
          array               As above
          type                As above
          color1              The name of a color, enclosed in quotes.
                              Valid names are shown in the select color list
                              in the Color Editor.  Examples include "Blue",
                              "Black", "Red", "Green", "Yellow", "Cyan",
                              "Magenta".  The first vertical line will be
                              drawn in color1, the second in color2, the
                              third in color1, etc.
          color2              As above.
       ChartHorizLine(data)
       
       Plots horizontal lines at the Y axis values held in data, in the Pane
       To Plot In assigned in the Pane Layout Editor.  The color of the line
       is set using the Color Editor.
       
       By plotting ChartHorizLine in the same pane as a formula, indicator,
       or price chart it is possible to set one or more visual "thresholds"
       which you can use to judge whether the formula or indicator is
       signaling a buy or sell condition.
       
       ChartHorizLine(data) takes a single parameter, data, which can be
       either a scalar or array value.  For example to plot 4 horizontal
       lines in a pane use:
       
            ChartHorizLine({100, 50, 0, -50, -100})
       
       To plot a single horizontal line you can use either:
       
            ChartHorizLine({0})
       Or
            ChartHorizLine(0)
       
       The values in data can appear in any order.
       
       
Part 6      Formulas, Operators & Functions

       
       Parity provides a full complement of powerful mathematical functions
       and operators which can be used to create very complex user defined
       formulas.  Parity supports a very standard mathematical and
       programming syntax which is derived from the BASIC computer language.
       However, the unfortunate reality is that user defined formulas do
       require some understanding of math and algebra.  We have included
       examples of how custom formulas can be used in the Indicators section
       of the manual and throughout the text to help you familiarize
       yourself with these concepts.
       

User Defined Custom Formulas
       
       Parity permits you to create extremely sophisticated formulas using
       the Formula Editor, the Profit Test Editor, and the Scan Editor.
       
       With Parity you can create formulas using:
       
          Arithmetic Operators     +, -, *, /, ^, Mod, \
          Comparison Operators     =, <>, <, >, <=, >=
          Logical Operators   AND, OR, NOT, XOR, EQV, IMP
          Trigonometric Functions  Cos(), Sin(), Tan(), ACos(), ASin(),
                              ATn(), ATan2()
          Exponential Functions    Exp(), Exp10(), Log(), Log10(), Sqr(),
                              Sqrt()
          Rounding Functions  Round(), Ceil(), Floor(), Abs(), Sgn(), Bool()
          Array Related Functions  Sum(), Product(), RunTot(), Min(), Max(),
                              IF test THEN data1 ELSE data2
          Statistical Functions    StatNorm(), StatPercent(), StatRegress(),
                              StatMovTot(), StatMovMin(), StatMovMax(),
                              RND()
          Date Functions      DayOfWeek(), DayOfMonth(), DayOfYear(),
                              MonthNumber(), YearNumber(), StrToDate().
          Pattern Recognition Bottom3Bars(), Top3Bars(), Bottom5Bars(),
                              Top5Bars(), Bottom7Bars(), Top7Bars(),
                              CrossAbove(), CrossBelow()
          Technical Indicators     Predefined technical indicators for stock
                              and commodity charting, i.e. AD(), ADXR(),
                              MOV(), TRIX(), TSF() etc.
          ForLoop Function    The powerful ForLoop() function lets you embed
                              a FOR loop program in an algebraic formula if
                              it requires a self-referential calculation.
          Other Formulas      F1 to F9 when previously defined
       
  Limitations of User Defined Formulas in Parity
       
       Version 1.5 of Parity includes several important limitations on the
       formulas you create:
       
       1  A formula cannot contain more than 512 characters.
       2  You cannot assign the result of a formula to a variable.  By
          default, formulas created using the Formula Editor will assign the
          result of a formula to its corresponding F1 to F9 variable, which
          can be used in subsequent calculations.  You cannot use = as an
          assignment operator within a formula.  The following will cause an
          error when you chart a study.
            x = H - L
          The exception to this rule is when you are using the ForLoop
          function which does permit you to create intermediate variables.
       3  Parity calculates the result of a formula "all at once".  This can
          create a problem where you might want to use "yesterdays" value of
          the formula in the formula.  For example, a 9 day exponential
          moving average of the closing price is defined as:
            current period close * 0.2 + previous period's average * (1 -
               0.2)
          However, Version 1.5 of Parity does provide the very powerful
          ForLoop() function which lets you embed a calculation which would
          normally require a FOR loop in any of Parity's algebraic
          expressions.  For example the exponential moving average
          calculation shown above could be performed with the following
          statement:
            ForLoop( "RV[x-1] * .8 + C[x] * .2", 2; "RV[1] = C[1]" )
          Also, Parity does permit you to perform running and moving totals
          with the RunTot() and StatMovTot() functions.  These functions are
          useful for calculating indicators like the predefined Volume
          Accumulation/Distribution indicator, AD(), that is defined as:
            ((Close - Low) - (High - Close) / (High - Low) ) * Volume + "the
               value of yesterdays calculation"
          and which can be calculated using the following custom formula:
            RunTot(((C - L) - (H - C) / (H - L)) * V)
          Note that it is easy to reference the previous value of an array
          once it has been calculated using the [-x] array notation, you
          simply can't do it while its being calculated.  This is equivalent
          to MetaStock's ref(data array, period) function but is much more
          powerful and direct.
       4  Parity does not perform any error checking on user defined
          formulas before it executes them.  If you attempt to plot a
          formula with an error in it, Parity will issue a cryptic error
          message and appear to hang.  To resume the program simply hit the
          up arrow key and close the error message.
       
  Examples of Valid Formulas
       
            AD()
            MOV(C, 20, "S")
            Stoch(5, 3, 3, "E")
            (H - L) / C
            ROC( RSI(14) , 10, "%" )
            (MOV(C,10, "E") > MOV(C, 40, "E") AND RSI(14) <= 70) * 2 - 1
            TSF(C, 21)[-1] <= TSF(C, 21) AND TSF(C, 21) >= TSF (C, 21)[+1]
            C > 30
  Examples of Invalid Formulas
       
            x = H - L
            Stoch(5, 3, 3, "E") / C
            Any formula that results in division by 0.

Arrays versus Scalars
       
       A good understanding of arrays is essential to creating your own
       formulas.  When you chart an indicator in Parity it appears as a
       continuous line.  In fact the line simply connects the multiple
       discrete data values which make up the array which is defined by that
       indicator.  Likewise, Parity loads a security's price data into
       separate arrays for the high, low and closing prices which are then
       available to you via the predefined array variables, H, L, C.
       
       An example of an array with five values would be:
       
          DA = {2, 4, 6, 8, 10}
       
       The squiggly brackets indicate that the numbers form an array, which
       can be thought of as a set of numbers which can be referred to as a
       single entity or variable, in this case the variable DA.  Each
       element of an array can be referenced by its "index", i.e. its
       position in the array.  In the example above the number 6 has an
       index of 3 and could be specified as DA[3] (see below for more
       information on referencing arrays).  Many math texts also refer to
       arrays as vectors.
       
       An array doesn't have to contain multiple values, it could include
       only a single number, for example the array {5} contains just one
       value.  However, the array {5} is a different type of data than the
       "scalar" number 5.  In other words, scalars contain a single value,
       such as 2.7 or 5.  Arrays generally contain multiple values, each
       element of which is addressed by an index.
       
       Most of Parity's operators and functions work equally well on arrays
       and scalars and the two can be mixed together in computations.  For
       example, you can multiply an array variable with 5 values by the
       scalar number 2 as shown below:
       
          {4, 8, 12, 16, 20} = {2, 4, 6, 8, 10} * 2 = DA * 2
       
       An array can contain a maximum of 8189 elements.
       
  Referencing Arrays
       
       There are several ways to refer to arrays and to their elements as
       shown below.
       
          V       The whole array        Where V is {2, 4, 6,
                                         8, 10}
          V[x]    Element x of array V   V[4] would be {8}
          V[x:y]  Elements x to y of V   V[2:4] would be {4,
                                         6, 8}
          V[-x]   V with elements        V[-1] would be {?,
                  shifted ahead by x     2, 4, 6, 8, 10}
                  units.  The valid
                  range is also
                  adjusted to match the
                  shifted elements
          V[+x]   V with elements        V[+1] would be {4,
                  shifted back x units.  6, 8, 10}
                  Elements shifted
                  before x are
                  discarded.
       
       The size of an array is the total number of elements it contains.  In
       the example above V's size is 5 elements.  Arrays also have valid
       ranges and they do not have to be defined starting with index 1.  In
       our example the valid range of V[-1] is [2:6].  Index [1] of this
       array is undefined.
       
  Array Calculations
       
       All of Parity's operators and most of its predefined functions and
       indicators work on arrays.  The careful use of array shifting can
       permit you to create very powerful formulas using Parity.  For
       example to calculate the percent change of today's closing price
       versus two days ago you could use the formula:
       
          ( (C - C[-2]) / C[-2] ) * 100
       
       Or, to calculate the difference between a 14 day simple moving
       average and the closing price:
       
          C - MOV(C, 14, "S")
       
       Generally Parity is able to automatically compensate for the changes
       in size and valid range that occur in array calculations.  However it
       is conceivable that you might create a formula which tries to perform
       an operation on two arrays that don't have overlapping valid ranges
       and have different sizes.  In that case Parity will give you an error
       message when you try to execute the formula.

Predefined Variables
       
       Whenever Parity loads price data for a security it creates a number
       of predefined array variables that can be used in your formulas.
       These variables include:
       
          DATES          Array of Date Values for the security
          H              Array of High Prices
          L              Array of Low Prices
          C              Array of Closing Prices
          V              Array of Trading Volume
       
       If the data file which is loaded includes open and open interest data
       Parity will also create these additional variables:
       
          O              Array of Opening Prices
          OI             Array of Open Interest
       
       Each element of these predefined variables contains data from the
       corresponding record in the data range that was loaded.  The first
       element is always the oldest record and the last element is the most
       recent record loaded.
       
  Predefined Variables for the First Security in a Group
       
       Parity also stores the price data for the first security in a group
       in a special set of predefined variables.  This lets you create
       formulas that perform spread or relative strength calculations.
       These special variables include:
       
          FDATES         Array of Date Values of First Security in a Group
          FH             Array of High Prices of First Security in a Group
          FL             Array of Low Prices of First Security in a Group
          FC             Array of Closing Prices of First Security in a
                         Group
          FV             Array of Trading Volume of First Security in a
                         Group
          FO             Array of Opening Prices of First Security in a
                         Group
          FOI            Array of Open Interest of First Security in a Group
       
       If the date range of the first security in a group is different from
       subsequent securities in a group, the use of these special variables
       will be misleading at best.
       
       The ChartFirstSecurity(type of chart) chart procedure can be used to
       plot a line, bar, or candlestick chart of the first security in any
       pane of a chart.
       
       If you Load a Security before you select a current group these Fx
       variables will be identical to the predefined variables for that
       security.  However, if the Fx variables are already defined they will
       not be overwritten, except when you select a new group.  This
       prevents "Undefined Variable" errors and gives you maximum
       flexibility in designing your studies.
       
       The Fx variables are extremely useful for charting spreads and
       relative strength comparisons.  Typically the first security in a
       group would be an index like the S&P 500 or the leading company in an
       industry.  You could then use a formula like
       
             C - FC
       
       to plot a spread or
       
            (C-C[1])/(FC - FC[1])
       
        to plot relative strength.
       
  Importing User Defined Variables
       
       Parity gives you the unique ability to import user defined variables
       using the Import Other Formats command.  These user defined variables
       will persist for the duration of your session with Parity and can be
       used just like predefined variables.  Note that Parity provides no
       error or range checking for user defined variables.  There is a
       special syntax which can make user defined variables more useful to
       you.  Let's say you imported a variable called NYSEADVANCE which has
       800 data elements.  The data you are charting includes 101 data
       elements.  Assuming the date of the last element of NYSEADVANCE is
       the same as the last day of your price data you could use the
       following command to include NYSEADVANCE in a formula correctly:
       
          NYSEADVANCE[EndValid(NYSEADVANCE) - 100 : EndValid(NYSEADVANCE)]
       
       To actually chart NYSEADVANCE you might also need to adjust its valid
       range by appending
       
          [ + (EndValid(NYSEADVANCE) - 100) ]
       
       To the formula above.  Obviously user defined variables are a
       powerful AND complex feature.  You will need to experiment to become
       familiar with this capability.  Please see the sections on Arrays
       versus Scalars (page 56) , and Array Related Functions (page 63) for
       more information on the use of the [ ] array operator and the
       StartValid and EndValid functions.

Operators, Parenthesis and Mathematical Precedence
       
       Formulas in Parity follow the normal conventions for the use of
       parenthesis and precedence to control the order in which mathematical
       operations are performed.  Parity also supports the normal
       mathematical operators available in most BASIC dialects including (in
       order of precedence):
       
          (  )           Parentheses
          [  ]           Array Brackets
          ^              Exponentiation
          - (unary minus)     Unary Minus
          * /            Multiplication and Division
          \              Truncated Division
          Mod            Modulus
          + -            Addition and Subtraction
          = <> > < >= <= Comparison
          Not            Logical Negation
          And            Logical And
          Or             Logical Or
          Xor            Logical Exclusive Or
          Eqv            Logical Equivalence
          Imp            Logical Implication
       
       With some rather complicated exceptions these operators can be used
       equally well with Scalar or Array values.  The Logical Operators
       consider a 0 value to be False and any non zero value to be True.
       Using a Logical Operator on an array will return an array of ones and
       zeros.

Arithmetic Operators
       
       Parity permits you to use all of the standard arithmetic operators in
       your formulas as shown below.
       
          A + B               Add B to A.
          A - B               Subtract B from A.
          A * B               Multiply A and B.
          A / B               Divide A by B.
          A ^ B               Compute AB.  2 ^ 4 is 2*2*2*2.
          A Mod B             Return the integer remainder of A / B.  17 Mod
                              3 is 2.
          A \ B               Truncated Division.  Divide A by B and discard
                              digits to the right of the decimal place.  17
                              \ 3 is 5.
          - A                 Negate A.  This is a unary operator.

Comparison Operators
       
       The Comparison Operators compare two values which can be either an
       array or a scalar.  The comparison operators return 1 if the
       comparison is true or 0 if it is false.  Using a comparison operator
       with an array will return an array of 1's and 0's for each element in
       the array.
       
          A < B               If A is less than B the result is 1, and 0
                              otherwise.
          A <= B              If A is less than or equal to B the result is
                              1, and 0 otherwise.
          A <> B              If A is not equal to B the result is 1, and 0
                              otherwise.
          A = B               If A is equal to B the result is 1, and 0
                              otherwise.
          A > B               If A is greater than B the result is 1, and 0
                              otherwise.
          A >= B              If A is greater than or equal to B the result
                              is 1, and 0 otherwise.

Logical Operators
       
       Logical Operators work on true and false values.  Parity considers
       any non-zero value to be true and 0 to be false.  Logical Operators
       can be combined with comparison operators and other values to form a
       logical statement.  Using Logical Operators with arrays will return
       an array of 1's and 0's.
       
          A AND B             If A and B are both non-zero the result is 1.
                              Otherwise, the result is 0.
          A OR B              If A or B is non-zero the result is 1.
                              Otherwise, the result is 0.
          A XOR B             If A is non-zero and B is 0, or A is 0 and B
                              is non-zero, then the result is 1.  Otherwise,
                              the result is 0.
          NOT A               If A is non-zero, the result is 0.  If A is 0,
                              the result is 1
          A EQV B             If A and B are both non-zero, or A and B are
                              both 0, then the result is 1.  Otherwise, the
                              result is 0.
          A IMP B             If A is 0 or B is non-zero, the result is 1.
                              Otherwise, the result is 0.

Trigonometric Functions
       
       Parity supports the standard trigonometric and inverse trigonometric
       functions.  Angle measurements are in radians.
       
       Degree measurements are converted to radians by multiplying by the
       factor pi/180.  The value of Pi can be obtained using ACos(-1).
       
       Trigonometric functions will operate on either scalar or array
       values.
       
          Cos(data)           Computes the cosine of a value given in
                              radians.
          Sin(data)           Computes the sine of a value given in radians.
          Tan(data)           Computes the tangent of a value given in
                              radians.
          ACos(data)          Computes the arccosine of a value given in
                              radians.
          ASin(data)          Computes the arcsine of a value given in
                              radians.
          ATn(data)           Computes the arctangent of a value given in
                              radians.
          ATan2(Xdata, Ydata) Computes the tangent of a line from the origin
                              to a point.

Exponential Functions
       
       Parity includes a set of common exponential functions:
       
          Exp(data)           Computes ex
          Exp10(data)         Computes 10x
          Log(data)           Computes ln(x)
          Log10(data)         Computes log10(x)
          Sqr(data)           Computes x2
          Sqrt(data)          Computes the square root of a value.
       The logarithm of a number for a base other than e or 10 is computed
       with the following formula:
       
          Logbx = Log(x) / Log(b)
       The value of the constant e is calculated with the equation below:
       
          e = Exp(1)

Rounding Functions
       
       Rounding functions are used to adjust scalar or array data in a
       number of ways.
       
          Round(data)         Returns the nearest integer to a value.
                              Round(6.6) is 7.
          Ceil(data)          Returns the smallest integral number >= the
                              value.  Ceil(6.3) is 7
          Floor(data)         Returns the largest integral number <= the
                              value.  Floor(6.9) is 6
          Abs(data)           Returns the absolute value of a number.  ABS(-
                              3.3) is 3.3.
          Sgn(data)           Returns the signum function of a number, i.e.
                              1 for 6 and -1 for -6.
          Bool(data)          Converts a number to a Boolean. Either 1 for a
                              non- zero value or 0.

Array Related Functions
       
       The Array Related Functions may operate on scalar parameters, though
       generally they are only meaningful for array values.  See the Arrays
       versus Scalars section (page 56) for a more general discussion of
       arrays.
       
          StartValid(array)   Returns a scalar which is the index number of
                              the first element of the array.
          EndValid(array)     Returns a scalar which is the index number of
                              the last element of the array.
          RunTot(array)       Creates an array containing a running total of
                              the input array.
          Sum(array)          Returns the sum of all the elements in an
                              array.
          Product(array)      Returns the product of all the elements in an
                              array.
          Min(array)          Returns the smallest value in an array.
          Max(array)          Returns the largest value in an array.
          IF test THEN data1 ELSE data2 Returns data1 if test is true (non-
                              zero) or data2 if test is false (0).  If test
                              is an array this evaluation is done element by
                              element and the corresponding element in data1
                              or data2 is returned.  Arrays and scalars can
                              be mixed.

Statistical Functions
       
       Parity provides you with a number of statistical functions which you
       can use in the formulas you define.
       
          StatNorm(data, min, max) Normalizes an array to a specified range.
                              The smallest element in the array will be
                              mapped to min and the largest will be mapped
                              to max with all intermediate values linearly
                              scaled.
          StatPercent(data)   Computes the sum of all the elements in data
                              and returns an array containing data divided
                              by the sum.  Equivalent to data / Sum(data).
          StatRegress(data)   Computes a best fit least squares regression
                              line for data.  The result is an array filled
                              with values representing the Y values of the
                              regression line.
          Random()            Computes an array of random numbers of the
                              same size as the price arrays.
  Time Series Functions
       
       The following functions perform an operation, such as computing an
       average, involving an element of an array and the preceding N
       elements where N is determined by the parameter lengths.  Since
       lengths can be either a scalar or an array of the same size as data,
       it is possible for undefined values to occur in the middle of an
       array.  For example if element 4 of array lengths is 15.  This would
       mean that the fourth element was a function of the preceding 15
       elements.  In this case the fourth element of the result, and all
       preceding elements, would be undefined.
       
          StatMovAvg(data, lengths)     Determines the moving average of an
                              array.  The ith element in the result will be
                              the average of the ith element and the
                              preceding N-1 elements, where N is the ith
                              element of lengths.  If lengths is a scalar, N
                              is always equal to lengths.
          StatMovMax(data, lengths)     Determines the moving maximum of an
                              array.
          StatMovMin(data, lengths)     Determines the moving minimum of an
                              array.
          StatMovTot(data, lengths)     Determines the moving total of an
                              array.

Date Functions
       
       Parity includes several date functions which can be used with the
       predefined variables DATES and FDATES to indicate which day of the
       week, month or year it is, as well as which month or year.  These
       functions might be used with the Profit Tester to evaluate seasonal
       cycles, for example whether Mondays are typically down days or the
       January effect.  You must always include the DATES or FDATES variable
       in the functions in place of the datevar parameter.
       
          DayOfWeek(datevar)  Returns an array indicating which day of the
                              week each period falls on.  Monday is 1,
                              Tuesday is 2 and so on.
          DayOfMonth(datevar) Returns an array indicating the day within the
                              month each period falls on.  December 17, 1992
                              would be 17.
          DayOfYear(datevar)  Returns an array indicating the day within the
                              year each period falls on.  February 3, 1992
                              would be 34.
          MonthNumber(datevar)     Returns an array indicating the month
                              within the year each period falls on.  June
                              20, 1992 would be 6.
          YearNumber(datevar) Returns an array indicating the number of the
                              year.  July 4, 1992 would be 1992.
          StrToDate(stringvalue)   Converts a scalar string value to a date
                              value.  Acceptable string formats are
                              "YYMMDD", "M/D/Y" or "D-MMM-Y", i.e. "920522"
                              or "5/22/92" or "22-MAY-92".  The string value
                              must be in quotes, i.e. StrToDate("5/22/92").
       The date functions might be used in a profit test, for example, if
       you wanted to test the year end effect you might use formulas like:
       
            F1:  MonthNumber(Dates) = 12
            F2:  DayOfYear(Dates) >= 15 AND NOT F1
            BuyWhen:  F1
            LongStop: F2
       
       This would buy in December and sell the long position after January
       15th.
       
       If you wanted to use a specific date you would have to use the
       StrToDate function.  You could substitute:
       
            F2:  Dates = StrToDate("1/15/92")
       
       for F2 above.  However this would only work for one day in one year,
       whereas the first expression is more general.

Pattern Recognition Functions
       
       The recognition of complex patterns like stock charts is one of the
       most difficult problems in artificial intelligence.  However, Parity
       does include a set of functions that recognize gross features like
       local tops and bottoms.  These functions help construct Profit Tests
       and Scans and can also be used to create binary charts (we suggest
       using the "bars" line type) or with the ChartVertLine() procedure.
       
       The Pattern Recognition Functions use logical operators to compare
       arrays of data.  They return an array of 1's and 0's to indicate when
       the expression is "true" or "false".  For example, when Top7Bars()
       detects a local high it returns a 1 otherwise it returns a 0.  The
       functions do not return a 1 when the feature occurred but when it was
       possible to detect it.  So for Top7Bars() which is looking at a
       "window" of 7 days of data the peak cannot be recognized until 3 days
       after it occurred.
       
       The custom formula for each of the Pattern Recognition Functions is
       shown below.  You can modify these custom formulas in your own profit
       tests to create more or less rigorous conditions for your feature
       detection.
       
       Bottom3Bars(d)
       
            d > d[-1] AND d[-1] <= d[-2]
       
       Top3Bars(d)
       
            d < d[-1] AND d[-1] >= d[-2]
       
       Bottom5Bars(d)
       
            d >= d[-1] AND d[-1] > d[-2] AND d[-2] <= d[-3] AND d[-3] < d[-
       4]
       
       Top5Bars(d)
       
            d <= d[-1] AND d[-1] < d[-2] AND d[-2] >= d[-3] AND d[-3] > d[-
       4]
       
       Bottom7Bars(d)
       
            d >= d[-1] AND d[-1] >= d[-2] AND d[-2] > d[-3] AND d[-3] <= d[-
       4] AND d[-4] <=     d[-5] AND d[-5] < d[-6]
       
       Top7Bars(d)
       
            d <= d[-1] AND d[-1] <= d[-2] AND d[-2] < d[-3] AND d[-3] >= d[-
       4] AND d[-4] >=     d[-5] AND d[-5] > d[-6]
       
       CrossAbove(d1, d2)
       
            d1 > d2 AND d1[-1] <= d2[-1]
       
       CrossBelow(d1, d2)
       
            d1 < d2 AND d1[-1] >= d2[-1]

ForLoop Function
       
       Parity's ForLoop() function is a unique and extremely powerful
       function which lets you "embed" a FOR loop in any algebraic
       expression or formula.  The syntax for the ForLoop function is
       somewhat complicated and its correct use requires some background in
       computer programing.  If you expect to make extensive use of the
       ForLoop function you might want to purchase CA-Realizer 2.0 from
       Computer Associates.  CA-Realizer is an excellent development system
       and BASIC derived language for Windows and OS/2.  Parity uses the CA-
       Realizer syntax for most of its formulas and CA-Realizer provides
       complete documentation on the syntax and types of commands that can
       be used in the ForLoop() function.
       
     Syntax
       
       The syntax for the ForLoop function is complicated and includes a
       number of optional parameters and modifiers which are enclosed in
       brackets. as shown below:
       
       rv = ForLoop(asExpr, rsFromVal [,rsToVal [,rsStepVal]] [; [asInitExpr],
       [rsProc?] ])
       
     Description
       
       The ForLoop function executes a code fragement with the following
       structure:
       
            EXECUTE asInitExpr
            SELECT CASE rsProc?
                 CASE 0
                      FOR x = rsFromVal TO rsToVal STEP rsStepVal
                           EXECUTE "RV[x] = " + asExpr
                      NEXT x
                 CASE 1
                      FOR x = rsFromVal TO rsToVal STEP rsStepVal
                           EXECUTE asExpr
                      NEXT x
            END SELECT
       
       The function returns the value of RV if it exists, otherwise it
       returns C*0.  The EXECUTE command shown above means that the ASCII
       string contained in asExpr or asInitExpr is run or executed as if it
       were part of the program statement.
       
       Parameter         Description
       asExpr            The ASCII string expression which will be executed
                         in the FOR loop.  This statement must be enclosed
                         in quotes, i.e. "RV[x-1]*0.8 + C*0.2".  If the
                         rsProc? modifier is 0 or omitted then ForLoop will
                         assign the result of asExpr to the RV[x] variable
                         as shown for the CASE 0 above.  The rsProc?
                         modifier must match the structure of asExpr or an
                         error will occur.
                         
                         asExpr may contain a multiple line statement.  Each
                         line must be separated by the "|" character which
                         Parity replaces with a carriage return when
                         ForLoop() is run.  For example:
                         
                         "tvar1 = StatRegress(C[x - 8: x]) | tvar2[x] =
                         tvar1[x]"
                         
                         is the central formula for MovLinReg(C, 9,) where
                         tvar2 would contain the result.  Note that most,
                         though not all multiple line statements would
                         require setting rsProc? to 1.  Note that the asExpr
                         shown above would create two new global variables,
                         tvar1 and tvar2 which could be used in subsequent
                         formulas.  We strongly suggest that any
                         intermediate variables be uniquely named to avoid
                         conflicting with Parity's internal variables.
                         
       rsFromVal         This parameter is required and must contain the
                         starting point for the FOR loop.  Typical values
                         will be 1, 2, or StartValid(array).
                         
       rsToVal           This parameter is optional and would contain the
                         ending point for the FOR loop.  In most cases
                         rsToVal would have to take the form of
                         EndValid(array) in order to avoid an error.  If
                         rsToVal isn't provided Parity uses EndValid(C).
                         
       rsStepVal         This parameter is optional and would contain the
                         step increment for the FOR loop.  If you use
                         rsStepVal you must also use rsToVal.  By default,
                         Parity uses a step value of 1.
                         
       
       
       Modifier          Description
       asInitExpr        This ASCII string expression will be executed
                         BEFORE the FOR loop.  This statement must be
                         enclosed in quotes, i.e. "RV[1] = C[1]".
                         asInitExpr is usually used to initialize the first
                         value of the RV variable when asExpr contains
                         something like "RV[x-1] ..." .  asInitExpr is
                         optional.
                         
       rsProc?           The optional rsProc? modifier determines whether
                         the body of the FOR loop contains:
                         
                              EXECUTE "RV[x] = " + asExpr
                         
                         when rsProc? is 0 or
                         
                              EXECUTE asExpr
                         
                         when rsProc? is 1.  If no value for rsProc? is
                         supplied Parity will use 0.
                         
       Note that these optional modifiers must be seperated from the
       parameters with a semicolon.
       
     Examples
       
       The following statements are all equivalent to MOV(C, 9, E).  Note
       that the first element of RV must be intialized with "RV[1]=C[1]".
       
          ForLoop( "RV[x-1] * .8 + C[x] * .2", 2; "RV[1] = C[1]" )
          ForLoop( "RV[x-1] * .8 + C[x] * .2", 2, EndValid(C); "RV[1] =
          C[1]" )
          ForLoop( "RV[x-1] * .8 + C[x] * .2", 2, EndValid(C), 1; "RV[1] =
          C[1]" )
          ForLoop( "RV[x-1] * .8 + C[x] * .2", 2, EndValid(C), 1; "RV[1] =
          C[1]", 0 )
          
          ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2; "RV[1] = C[1]", 1
          )
          ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2, EndValid(C);
          "RV[1] = C[1]", 1 )
          ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2, EndValid(C), 1;
          "RV[1] = C[1]", 1 )
          ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2, EndValid(C), 1;
          "RV[1] = C[1]", 1 )
       
       The following statement is equivalent to LinRegSlope(C, 9, %)
       
          ForLoop("tv1=StatRegress(C[x-8:x])|rv[x]=((tv1[x]-tv1[x-1])/tv1[x-
          1])*100",9;1)
       
       The following statement is equivalent to MovLinReg(C, 9)
       
          ForLoop("tvar1 = StatRegress(C[x - 8: x]) | RV[x] = tvar1[x]",
          9;1)
       
       
Part 7         File Formats Supported

       
       Parity directly supports 5 and 7 field MetaStock (and most CompuTrac)
       data files, 7 field ChartPro/MegaTech data files, a variety of Comma
       Separated Value ASCII file formats, and the TeleChart 2000 file
       format.  You can also import data from Excel spreadsheets (3.0 or 2.1
       formats but not 4.0), Lotus 123 WKS spreadsheets (but not the WRK,
       WK1 or WK3 formats), and a variety of tab and comma delimited formats
       (see Import Other Formats for more details).  Also Parity Plus
       includes a very flexible Data Conversion utility that can convert to
       and from all of the above formats.
       
       Which format you should use to store your data will depend largely on
       how you acquire, maintain, and use your data files.  For example, the
       MetaStock format is widely supported by most dedicated data vendors
       and many software packages however it is bulky and very difficult to
       use with a program that doesn't support it.  The ChartPro format is
       not widely supported but it is concise, quick loading and easy to
       program for.  The Comma Separated format can be maintained with any
       text editor and most spreadsheets can import and export it without
       any trouble.  The TeleChart 2000 format is only supported by the
       Worden Brothers but they are a convenient and inexpensive source of
       historical data for stocks and mutual funds.
       

The MetaStock/CompuTrac Format
       
       The MetaStock/CompuTrac format dates from the late 1970's and is
       widely supported by most data vendors.  Its prevalence and the fact
       that it incorporates information on the name, symbol, period, and
       date range are its primary advantages.  However the
       MetaStock/CompuTrac format also has a number of disadvantages.  The
       files use the antiquated Microsoft Binary Format to store numbers and
       the data must be converted to IEEE floating point format.  This makes
       MetaStock files slower to load.  You can only have 255 MetaStock data
       files in a single directory.  For historical reasons the MetaStock
       format requires a second F*.DOP file.  Although this file is only
       about 65 bytes in actual size most disk drive formats can only
       allocate space to a file in 4096 byte chunks.  Consequently, 255 data
       files take up about 1 MB of extra disk space for no reason.
       
       Parity supports 5 and 7 field MetaStock data files.  The program does
       not support MetaStock composite securities which are ignored.  The
       MetaStock file format is a subset of the original CompuTrac file
       format.  Most standard 5 and 7 field CompuTrac files should work with
       Parity.  The 6 field CompuTrac format is not supported.
       
       A detailed specification of the MetaStock file format is beyond the
       scope of this documentation and the full specification for all the
       variations of the CompuTrac format is even more complicated.  Very
       briefly the format requires a file called MASTER which contains the
       information on the security's name and symbol etc.  The actual price
       data is stored in files named F*.DAT.  These F*.DAT files will be
       numbered from 1 to 255.  The file format only permits a maximum of
       255 data files in a single directory.  The file format also calls for
       a corresponding F*.DOP file for each F*.DAT file.  Parity does not
       require the F*.DOP files but other programs using this file format
       may.
       

ChartPro File Format
       
       The ChartPro format was created by the developer of the ChartPro and
       MegaTech charting programs.  Although this file format isn't widely
       supported by dedicated data vendors, there are a number of shareware
       and quasi commercial programs available which can create and update
       these files from daily quotes downloaded from general information
       services like Prodigy, GEnie, and Dow Jones News/Retrieval.  The most
       popular of these programs appear to be PTT, StockWatch 7.0, Pro$tock,
       and PDL.  The author's of all of these programs offer support on the
       Money Talk BBS of the Prodigy service.
       
       For users that are interested in developing programs to create or
       maintain price data files themselves the ChartPro/MegaTech file
       format is a good choice.  Although the current ChartPro format
       doesn't include as much information about the underlying security as
       the MetaStock format it is much simpler and ChartPro files are
       processed more quickly by Parity.
       
       ChartPro format files consist of daily records that are each 26 bytes
       long.  The first two bytes are an integer value representing the
       date.  The next 24 bytes are 6 four-byte single precision IEEE
       floating point fields for the open, high, low, close, volume and open
       interest in that order.  The first 2 records or 52 bytes are ignored
       by Parity for compatibility with future versions of MegaTech.  The
       date numbering of ChartPro files is somewhat unusual.  ChartPro
       assigns a value of 1 to January 1, 1983.  Add 1 for each subsequent
       day including weekends and leap years.  For periods prior to 1983 use
       negative numbers subtracting 1 for each day of the year.  In order to
       be recognized by Parity, ChartPro format files must end with the .PR?
       extension.  Generally the first 8 letters of the file name are the
       security's symbol.
       

Comma Separated ASCII Files
       
       Parity directly supports a variety of different types of comma
       separated or delimited ASCII text files.  The advantages of this
       format are that is can be imported or exported by almost every
       spreadsheet and database program on the market and it is easily
       maintained using any text editor.  The primary disadvantage of this
       format is that text files are a fairly bulky way of storing numeric
       information.
       
       Parity supports comma delimited files in the following formats:
       
       date,close
       date,close,volume
       date,high,low,close
       date,high,low,close,volume
       date,open,high,low,close,volume
       date,open,high,low,close,volume,open interest
       
       Parity expects dates to be formatted as MM/DD/YY (leading zeros are
       optional) or YYMMDD.  The dates must not be enclosed in quotes.  For
       example 5/21/92 will be correctly imported while "5/21/92" will cause
       an error.  The price data must be in integer or decimal format.  For
       example 35 or 35.5 will work but 35 1/2 will not.
       
       Each line of the text file represents a single date or record and
       each line must end with a carriage return or carriage return and line
       feed.  The fields must be in the format and order shown above, and
       each field is separated by a comma.  Leading spaces are ignored.  The
       file must not contain any headers or extraneous text.
       
       Parity automatically detects the number of fields in the file by
       counting the number of commas in the first line of the file.  If the
       first line of the file is longer than 70 bytes or contains the
       incorrect number of characters Parity will be unable to load the
       file.  Parity will automatically create the appropriate high, low,
       and volume data arrays for files with less than 5 fields.  These
       arrays will be filled with zeros.  Similarly, a 6 field file will
       cause Parity to create an openinterest data array filled with zeros.
       If Parity doesn't recognize the data in a field as a number it will
       set that data element to zero.
       
       Parity permits comma separated ASCII files to have any name or
       extension.  We suggest you use a standard convention when you name
       your files.
       
       Because Parity can only load 8100 data records and ASCII files have
       no set record length, Parity will not load ASCII files that are
       larger than 250 KB.
       
       You can use Parity Plus' Data Conversion command to convert a number
       of other ASCII formats to standard comma delimited ASCII files or any
       of Parity's other supported file types.
       

TeleChart 2000 Files
       
       The TeleChart 2000 file format is a quasi-proprietary format used by
       the Worden Brothers data service.  TeleChart 2000 is the DOS based
       downloading and charting software sold by Worden Brothers, Inc.
       While TeleChart 2000 is a rudimentary charting program it is quite a
       good downloading program for accessing the relatively inexpensive
       historical data base of stocks and mutual funds which the Worden
       Brothers maintain.  Price data is available for $0.005 or less per
       day with a $0.69 minimum per call and 300 days per new security.  The
       data base includes up to 9 years of historical data on stocks and
       includes opening prices for the last couple of years.
       
       TeleChart 2000 normally maintains its data files in 26 directories,
       e.g. C:\TC2000\DATA\A through C:\TC2000\DATA\Z.  Data files are named
       with the symbol of the stock and the NDX extension, e.g. AAPL.NDX.
       Parity requires TeleChart 2000 files to have an NDX extension but
       doesn't care what directory they are located in.
       
       Starting with Version 2.1 of TeleChart 2000, the Worden Brothers
       began including proprietary header information in the second record
       of the data file.  The first record contains the company name.
       Consequently Parity begins loading data from the third record.  This
       proprietary header information may interfere with your ability to use
       Parity Plus to maintain TeleChart 2000 files or convert other data
       formats to the TeleChart 2000 format if you are using version 2.1 or
       later of their software.  We will not provide any technical support
       for the use of the TeleChart 2000 program or data format and we
       suggest you direct any questions or complaints directly to the Worden
       Brothers:
       
          Worden Brothers, Inc.
          4905 Pine Cone Drive, Suites 10-12
          Durham, NC 27707
          (800) 776-4940
       
       
Part 9         Odds and Ends

       
       The odds and ends section includes information on printing, some
       known problems with Parity and optimizing the program for speed.

Printing Charts
       
       There are three ways you can print a chart.
       
       1  Use File Print to print the chart if it is the current window.  A
          window is current when the title bar of the window is blue.  This
          will print the chart as it is displayed.  If the chart's window is
          small then it will print a smaller chart than if the window is
          large.  A chart that has been maximized may not fit within the
          margins of your printer.  File Print provides the least control
          over how the chart is printed.
       
       2  Use the Print Tool .  When you select the Print Tool from the Tool
          Bar a dialog box will pop up which offers you a range of choices
          as to how the charts you click on should be printed.
       
          The Print Tool lets you specify either the number of charts Parity
          will print on a page or the size of a single chart on the page.
          To print a chart just click anywhere within the chart while the
          Print Tool is active.  If you are printing more than one chart per
          page Parity won't eject the page until all the charts are printed
          unless you click on the "Flush" button.
          Parity also gives you the option of including or excluding the
          title bar of the chart window as the header for the print out.
          You would probably choose not to print the title bar as the header
          if you had selected the Chart Titles at Top format from the
          Options Editor.
          By default, Parity will not print the background color of a chart.
          If you are using a color printer and would like to include the
          background color simply check the "Print Background Color" option.
       
       3  Check the "Print Each Chart" option in the Select a Group dialog.
          This prints a chart each time it is created.  The chart will be
          printed using the same settings as the Print Tool.  You can use
          this feature with the Fast Forward tool to print all the stocks in
          a group.
       
       Use File Printer Setup or the Printer Setup button on the Printer
       Tool dialog to select the device to print to and adjust the
       orientation of the page.
       
       Printing Caveats

       Windows prints slowly.  Graphics print very slowly.  Unfortunately
       there is nothing we can do to improve Window's printing speeds.
       However, Windows 3.1 prints much faster than Windows 3.0.
       
       How charts print depends on the printer driver you use.  The Hewlett
       Packard LaserJet drivers do a very poor job of translating colors.
       For example, the LaserJet prints prints certain colors of some High,
       Low Close bars as a dashed rather than a solid line.  For the best
       results, we recommend you only use black in charts you will be
       printing on a LaserJet.  Postscript printers try to show colors with
       shading and the results are usually less than satisfactory.  The
       Epson printer driver is exceptional.  Printing is fast and the
       printed graph is very accurate.
       
       If you have a Laser Printer you may run into problems with inadequate
       memory to print full page charts.  We are unable to print charts full
       page using a LaserJet II with only 512 KB.  With 1.5 MB, the LaserJet
       II prints fine.  The standard 1 MB of memory in the LaserJet III is
       right on the border.  Some charts will print, others won't.  This is
       a limitation of the printer, not Parity.
       
       If you are using a high resolution printer you may find that
       candlestick charts print the candles too thinly.  You can use the
       Chart Preferences command in the Options menu to increase the
       thickness of the candlesticks.
       

The Data Microscope
       
       The Data Microsope tool  lets you examine the price and indicator
       data for any open chart.  After you select the Data Microscope tool,
       click on a chart and the following form will appear:
       
       The Data Microscope displays three days of data centered around the
       date where you clicked on the chart.  Price data and the values for
       many of the indicators that are plotted will be displayed.  Parity
       will draw a dashed cyan line on the chart to indicate the middle day
       displayed.  To show data for a different date move the slide on the
       horizontal scroll bar.
       
       You can also use the Print button on the Data Microscope to send the
       chart data to the printer.
       
       You can select the range of records you want printed as well as the
       type of data.
       
       The Data Microscope also lets you "export" the chart data to a
       variety of file formats including Excel, Lotus, and Tab Separated
       ASCII files.
       

Windows 3.0 System Resources
       
       The following discussion of System Resources refers specifically to
       Windows 3.0.  Windows 3.1 usually doubles or triples the System
       Resources that are available.  We strongly recommend that you upgrade
       to Windows 3.1.
       
       System Resources or Program Resources refers to a 64K byte segment of
       memory where Windows maintains the USER and GDI heaps which include
       information on all the Windows applications that are currently
       running.  Regardless of the amount of memory you have installed,
       Windows still includes this 64K constraint on the total System
       Resources that are available to ALL the Windows applications that are
       running.
       
       Every window, icon, menu, bit map, and chart etc. consumes some
       percentage of these System Resources.  Selecting the Help About
       command from the Program Manager will tell you what percentage of
       System Resources is available at any given time.  Note that running
       the Program Manager or the Norton Desktop Utilities often consume as
       much as 40% of total System Resources.  Deleting unused icons and
       program groups will free up these resources.
       
       Because of the complexity of some of its dialog boxes Parity is also
       a resource hog.  With no charts displayed, but using the
       Create/Modify Studies dialog, Parity consumes 30% of the System
       Resources.  Each chart Parity displays typically requires an
       additional 1.5-2% of these System Resources.
       
       Generally, you encounter a problem with System Resources when a large
       number of charts are displayed and you then open the Create/Modify
       Studies dialog box.  You may also have a problem if you try to have
       multiple Windows applications open at one time.  Unfortunately,
       Windows doesn't provide any particular error message for no more
       resources.  You will simply be unable to open a dialog box or create
       a chart.  The more you try the worse it gets since partially created
       charts and dialog boxes will continue to take up more and more
       memory.  We suggest you save all your studies, groups, batches and
       clusters and restart Parity.
       
       On occasion, System Resources will be so low that Windows, and
       therefore Parity, will start to crash.  If this happens you may need
       to do a CTRL-ALT-F2, which will wipe all of Parity's charts and
       variables from memory.  If you do this you will lose any unsaved
       studies, groups and clusters and you will need to restart Parity.

System Requirements and Execution Speed
       
  Minimum System Requirements
       
       Parity requires Windows 3.x set in VGA or higher display mode,
       running on an 80286/80386/80486 IBM compatible computer with at least
       4 MB of extended memory and 1.5 MB of free disk space.  Parity will
       perform best on a 80486 DX  or a 33 MHz 80386 DX computer equipped
       with a math coprocessor and 8 MB of memory.  Parity takes full
       advantage of high resolution displays and 17 or 20 inch monitors.
       Parity is compatible with OS/2 2.0 when it is run as a Windows
       application.
       
  Maximizing Execution Speed
       
       While every effort has been made to optimize Parity's execution speed
       there are inevitably two factors that make it (and every other
       Windows application) slow compared to their DOS equivalents.  The
       first is the processing overhead required by Windows' multitasking
       operating system.  Secondly, Parity is graphically processor
       intensive.  This also consumes significant CPU cycles.
       
       Finally, Parity performs calculations on large data arrays.  Each
       time you create a chart is equivalent to recalculating a large
       spreadsheet filled with formulas.
       
       What to do?
       
       The first thing is that Parity is not intended to run on 80286 or 16
       MHz 80386 computers.  If that is  your hardware configuration nothing
       we suggest is likely to make Parity perform adequately.  If you do
       have adequate hardware and would like Parity to perform faster here
       are a few suggestions in order of their importance.
       
       1  Upgrade to Windows 3.1 if you are using Windows 3.0.  Windows 3.1
          runs Parity noticeably faster and provides faster printing and
          greater System Resources.
       2  Install a Math Coprocessor.
       3  Make sure you have at least 4 MB of available memory on your
          computer, i.e. memory not devoted to disk caches etc.  Studies
          have shown that 8 MB is the optimal memory configuration for
          Windows 3.x from a speed standpoint.
       4  If screen redraws are a problem buy a new graphics card with an
          accelerator or coprocessor chip optimized for Windows.  These
          cards cost $200 to $500 and have display resolutions up to
          1280x1024 pixels.
       5  Upgrade your motherboard.
       6  The best enhancement we ever made to our computers was to go to
          17" flat screen 1024x768 non-interlaced monitors.  This won't
          enhance the speed of Parity at all but we guarantee you will find
          a whole new pleasure in running any Windows program.
       
       Additional Factors
       
       The XOPointFigure() and DBarPointFigure() procedures and the SAR()
       and ZIG() functions have not been optimized for speed in the 1.5
       Version of Parity.  They will be optimized in a future release.

Problems and Solutions
       
       Although Parity is as bug free as possible, there are a few things
       that may cause problems.  In particular, Parity performs no error
       checking on the formulas in a study before it attempts to chart a
       study.  This causes two problems if you make an error in a formula.
       
  
  The Hour Glass Cursor
       
       If a study has an invalid formula, Parity gives an error message when
       it attempts to chart the study.  In most cases, Parity will not have
       reset the Hour Glass Cursor for the mouse.  When the Hour Glass
       Cursor is set, all commands and mouse clicks are disabled.  To reset
       the cursor hit the up arrow key on your keyboard.
       
  
  Incomplete Charts and System Resources
       
       When Parity encounters an error in a study, it has already begun
       constructing a chart, but is stopped before the chart can be
       displayed.  It is not possible to close this chart and free up the
       System Resources it consumes.  Since each chart only consumes 1.5-2%
       of the System Resources this isn't a problem in and of itself.
       However, if you have created a large number of partial undisplayed
       charts, you may find your self running out of resources.  The only
       solution is to exit Parity (and possibly Windows) and restart.
       Remember to save any studies, groups, clusters and batches you may
       have created or modified.
       
  Incompatability with ATI Graphics Ultra Video Cards
       
       Parity Plus 1.5 may be somewhat incompatable with the drivers
       supplied with the ATI Graphics Ultra video cards.  Use the older ATI
       video drivers or the video drivers supplied with Windows 3.1 instead.
       
  Other Problems
       
       If you attempt to display a cluster created for a higher resolution
       display the effects will be unpredictable.  In many cases the Tool
       Bar will be locked onto a new screen position.  This can also happen
       if you move a chart partially off the "desktop" and then use the
       scroll bars to view it and the perform a Window Cascade or Tile
       command.  In either case you should simply recreate the tool bar
       using the commands on the Options Menu.
       
       Also, note that a maximized chart is restored to its previous size
       when you open a dialog box or display another chart.  If the Tool Bar
       is hidden behind a maximized chart, use the Window Menu to select the
       "TBar" window.
       
       
Appendix

       

Data Vendors
       
       Version 1.5 of Parity does not include any utilities for collecting
       price data or automatically updating data files.  If you are
       upgrading to Parity from another technical analysis program you
       should continue to use whatever data collection and file maintenance
       utilities you are comfortable with.  If your price data is not in the
       MetaStock/CompuTrac, ChartPro/MegaTech, comma delimited ASCII, or
       TeleChart 2000 formats Parity supports please contact us.  If you are
       able to provide sufficient information on the file format you are
       currently using we may choose to include file compatibility with your
       data format in a future version of Parity.
       
       If you do not own any utilities for collecting and updating your
       price data you have several alternatives.  You can manually update
       your data files using the File and Data Maintenance commands.  You
       can manually maintain price data files in Excel, Lotus 123 WKS, comma
       separated value (CSV) or tab separated value text files and use
       Parity's Import Other Formats command to chart the data in these
       files.  However, you will not be able to include these files in a
       Group and using Parity will generally be more cumbersome than if your
       data is in one of the supported formats.  Or you can use the Data
       Conversion command to convert these files to a format Parity
       supports.
       
       A number of third party utilities exist which can create or maintain
       price data files in MetaStock or ChartPro formats.  One of the best
       general purpose tools is the Personal Ticker Tape (PTT).  PTT is a
       shareware program which can convert ASCII text files into MetaStock
       data files.  PTT can download data automatically from CompuServe and
       GEnie and can also update and maintain your data files from data
       downloaded manually from on-line services like CompuServe, GEnie,
       Prodigy, and Dow Jones News/Retrieval.  PTT will also automatically
       update data files from an ASCII file that is in the format expected
       by the MSU utility provided with MetaStock.  The latest version of
       PTT can be downloaded from the FlexSoft BBS at (510) 829-2293.
       ParTech Software Systems will also provide PTT on a diskette for a $5
       shipping and handling fee.  We cannot provide any support for using
       PTT.
       
       Another excellent program for downloading current prices from Prodigy
       is Stock Watch 7.  You can obtain more information on Stock Watch 7
       by reading the various topics on the program on Prodigy's Money Talk
       BB in the Investment Tools section.
       
       Most of the Price Data Vendors listed below also offer software which
       can be used to access their data service and download price data into
       MetaStock data files.  Each vendor's service is different and we
       suggest you contact them directly for information on the capabilities
       and current pricing of there products.
       
       EQUIS International, sells The Downloader program which automatically
       dials a number of different data services and downloads and formats
       the data into MetaStock data files.  You can call EQUIS at 1-800-882-
       3040.
       
  Recomendations
       
       While we are loathe to take responsibility for recommending any
       particular data services or software we have had personal experience
       with the following data vendors and feel that one or more of them
       would meet most investors needs.
       
       Worden Brothers, Inc. is a low cost, easy to use source of historical
       data on U.S. Stocks and Mutual Funds.  Note that Worden Brothers'
       business practices have been the subject of some negative commentary
       on Prodigy.  Worden Brothers is the developer of the TeleChart 2000
       program.
       
       Stock Data Corp. is a very inexpensive source of data for investors
       that want to get price data for all the securities on the NYSE, AMEX,
       and NASDAQ.  Their data is often dirty and the software is arcane but
       the price can't be beat and we have found the company to be fairly
       responsive.
       
       Commodity Systems, Inc. (CSI) is a very reliable source of data on
       the Futures markets and international equities.  Their QuickTrieve
       downloading software badly needs an overhaul to bring it into the
       1990's but it is very functional and permits you to convert their
       data files to the MetaStock format.
       
  General Information Services
       
       CompuServe, Inc.
       P.O. Box 20212
       5000 Arlington Centre Blvd.
       Columbus, OH 43220
       (800) 848-8199
       (614) 457-8650
       
       GEnie
       401 North Washington Street
       Rockville, MD 20850
       (800) 638-9636
       Current quotes only.
       
       Prodigy Service Company
       P.O. Box 791
       White Plains, NY  10601
       (800) 284-5933
       Current quotes only.
       
       Dow Jones News/Retrieval
       P.O. Box 300
       Princeton, NJ  08543
       (609) 452-1511
       
       
  Price Data Vendors
       
       Commodity Systems, Inc. (CSI)
       200 W. Palmetto Park Road
       Boca Raton, FL  33432
       (800) 327-0715
       (407) 392-8663
       Commodity and stock data.  Relatively expensive but comprehensive and
       high quality.  Includes downloading software.
       
       Dial/Data
       95 Rockwell Place
       Brooklyn, NY  11217
       (718) 522-6886
       24 hour flat rate unlimited access pricing plans.
       
       Stock Data Corp.
       905 Bywater Road
       Annapolis, MD  21401
       (410) 280-5533
       Only Stock Data.  Weekly diskette or daily updating for the entire
       stock market.  Supports MetaStock and other formats.
       
       Technical Tools
       334 State Street, Suite 201
       Los Altos, CA  94022
       (800) 231-8005
       (415) 948-6124
       Commodity and stock data.
       
       Tick Data, Inc.
       720 Kipling Street, Suite 115
       Lakewood, CO  80215
       (800) 822-8425
       (303) 232-3701
       Mostly commodity data.  Data Base includes tick data for every trade.
       
       Worden Brothers, Inc.
       4905 Pine Cone Drive, # 10-12
       Durham, NC  27707
       (800) 776-4940
       Relatively inexpensive but only offer data on U.S. Stocks and Mutual
       Funds.
       
       

Other Resources
       
       An excellent source of information on technical analysis is the
       magazine, Technical Analysis of Stocks & Commodities.  TASC can be
       difficult to find on a newsstand but you can get a sample copy by
       calling 1-(800) 832-4642.
       
       The Traders Press offers a comprehensive catalog of books on the
       Stock Market and Technical Analysis.  You can reach them at 1-(800)
       927-8222 or at 1-(803) 298-0222.
       
       The Market Technicians Association BBS is an excellent source of
       advanced technical analysis information and discussion.  Log on at 1-
       (914) 478-7311.  Other sources of free data include the Free
       Financial Network, call 1-(212) 752-8660 to log on, and Bob
       Harriman's BBS, call 1-(305) 749-8271 to log on.Other good on-line
       sources for information and discussion on investing include the
       INVFORUM on CompuServe and the Money Talk BB on Prodigy.
       
       
