Screen Builder instructions
        Stocks are selected from a specified database by applying a
         series of rules. Each rule is a filter that excludes stocks that
         don't pass - a stock must pass all rules to be selected. 
        Rules are generally entered as algebriac/programming expressions
         of data fields, functions, and numbers (and ocasionally quoted strings),
         with the comparison operators (= != > < >= <=),
         arithmetic operators (+ - * / **), and parentheses.
         The boolean operators "&" (AND) and "|"
         (OR) can be used to satisfy multiple conditions in a single expression.
         The field (column) names are represented by alphanumeric codes, as
         explained in this field guide. 
        Technical functions are independent of any database, and are based
         solely on stock data (price, etc.). Functions take one or more
         parameters, usually beginning with a lookback period expressed in days.
         Available functions are:
         
 rs(days):
         traditional relative strength
         
 ema(days):
         exponential moving average
         
 rsi(days):
         relative strength index
          Functions may also have an additional parameter that specifies a
         number of days to lag the technical measurement used. 
        Sort rules are entered using the keywords "top" (i.e.
         descending) and "bottom" (i.e. ascending), followed by
         a number. Tie-breakers can be included as a comma-separated list of
         expressions before the "top" or "bottom".
         You may select a percentage of the current stock list (rounding down),
         instead of a fixed number of stocks, by appending a "%" to
         the number. 
        Some screens are built with fields that don't exist during the entire
         backtest period. To extend the backtest further in these cases, you can
         assign replacement values to missing fields. Use the special form
         "(fld1 | fld2)" to use the field fld2 when
         fld1 is unavailable. Similarly, you can use a constant when
         a field is unavailable, e.g. "(fld1 | 0)". Many screens also
         use total-return fields not available from earlier VL data (such as
         tr4w - Total Return 4-Week), but this is handled
         automatically from the daily price data. 
        All this may sound pretty complicated. It is, but not unreasonably so.
         For example, here's the
         Small_Value
        screen. If you can make sense of that, you should be able to build your
         own screens as well. 
        |