Winnav - Mutual Fund Performance Analyzer, Release 4.
(c) Copyright 1996 Randy Nevin. All Rights Reserved.

README date: 09/14/2009


Winnav
------

Winnav is a 32-bit Windows shareware program for mutual fund performance
analysis, which:

 * displays and prints graphs of weekly mutual fund price changes
 * analyzes volatility, reward/risk ratio, Sharpe ratio
 * compares performance of funds over various time periods
 * calculates five types of moving averages, MACD (Moving Average
   Convergence/Divergence), ROC (Rate Of Change), plus buy & sell signals
 * calculates Bollinger bands, Relative Strength Index (RSI)

Winnav comes with data on over 600 US mutual funds and indices, and can
also analyze data that you supply. Data is updated weekly.

Try the program to decide if it is useful to you. If it is, send your:
(1) name
(2) US mail address
(3) Email address
(4) phone number
(5) the location from which you downloaded Winnav
(6) $20 registration fee, checks payable to Randy Nevin

to:
  Randy Nevin
  24135 SE 16th Pl
  Sammamish, WA 98075

Email- randynevin@comcast.net
URL-   http://www.winnav.com (beginners: download README)
FTP-   ftp://upload.comcast.net

Up-to-date data is available to registered users via an encryption key.
Registered users are notified of periodic key changes; include your email
address for fastest notification. Notify Randy Nevin if your US mail address,
email address, or phone number changes. Feel free to share Winnav with others,
show them what it can do, and encourage them to register. If within the first
two months of use you are not satisfied with the software, notify Randy Nevin
for a refund.

A few of the data files can be viewed without the encryption key, but the
majority require it. The program can also analyze data that you supply in plain
text form. The key is a word, like a password. Please do not share the key with
friends or put it on a network or public bulletin board. The registration fee
is low so anyone with a computer can afford it.

NAV stands for Net Asset Value.


System Requirements
-------------------

Winnav requires Windows 95 (or later versins). Video resolutions of 800x600 or
1024x768 with 16 bits of color resolution work best. Winnav will also work
with 8 bits of color resolution, but the colors displayed will not match
those described below. A mouse is strongly recommended, though not required.
An Internet connection is required for weekly data updates.


Windows Functionality
---------------------

A prerequisite to using Winnav is a basic understanding of how your computer
and its operating system work. Read the manuals that come with your machine.
There are plenty of books you can buy at any bookstore that explain how to use
Windows. Help will be given for Winnav problems, but not for Windows problems.


Location
--------

The files can be downloaded from the world wide web at
http://www.winnav.com/. The core files are contained in WINNAV.ZIP, along
with this README file which serves as a user manual. Some are also available
for separate download.

Also in that location is UNZ552XN.EXE, a self-extracting binary which contains
UNZIP.EXE. If you need an unzip utility, you should (1) create C:\UNZIP, (2)
download UNZ552XN.EXE into it, (3) execute it to extract UNZIP.EXE, and (4)
either copy UNZIP.EXE to a directory on your PATH, or put C:\UNZIP on your
PATH. UNZIP is freeware; there is no fee for using it. Note that UNZ552XN.EXE
contains a README file, so you do not want to unpack it in the same directory
as WINNAV.ZIP (C:\WINNAV), or you will overwrite one README file with the
other.

All files, including this README, should be downloaded using binary mode.


Files
-----

The files are:
  WINNAV.ZIP  Programs, data, documentation.
              Contains WINNAV.EXE, README, KEYHELP, MONEYMKT, RISKFREE,
              INDEX, DATA.ZIP
  WINNAV.EXE  The analysis program
  README      Documentation (user manual)
  KEYHELP     Documentation (keystroke help)
  MONEYMKT    Money market rates
  RISKFREE    90-day treasury bill rates
  INDEX       Benchmark index fund assignments
  DATA.ZIP    Data files (fund and index price histories), encrypted.
              Contains many .NAV files, FUNDS, OPT
  FUNDS       List of the funds in DATA.ZIP
  ENCR.ZIP    Encryption/decryption programs.
              Contains A0.EXE, A1.EXE, X0.EXE, X1.EXE
  A0.EXE      Program to unencrypt .NAV files (default)
  A1.EXE      Program to unencrypt .NAV files (key required)
  X0.EXE      Program to encrypt .NAV files (default)
  X1.EXE      Program to encrypt .NAV files (key required)
  UPDATE.DAT  Update data for .NAV files
  OPT         New optimization values, if UPDATE.DAT is present
  PRTFOLIO    List of funds selected for the portfolio.
              Not present on comcast; generated by Winnav as needed
  SETTINGS    Configuration file containing program variables.
              Not present on comcast; generated by Winnav as needed

The following sections contain short descriptions of the files. More detailed
descriptions appear later for some of them.


A0.EXE and A1.EXE
-----------------

These two utilities will unencrypt the .NAV files. They are not contained in
WINNAV.ZIP because you will probably never need them. They are available on
comcast if you do. A0 will unencrypt the default encrypted files, and A1 will
unencrypt the key encrypted files.


X0.EXE and X1.EXE
-----------------

These two utilities will encrypt plain text data files to create .NAV files.
They are not contained in WINNAV.ZIP because you will probably never need them.
They are available on comcast if you do. X0 will create default encrypted
files, and X1 will create key encrypted files.


UPDATE.DAT
----------

UPDATE.DAT contains new data that needs to be applied to the .NAV files.
UPDATE.DAT is encrypted. The UPDATE.DAT file is downloaded and applied via the
Incremental Update option on the Update menu.


MONEYMKT
--------

MONEYMKT contains the money market rates for each year, from 1960 to present.
These are used by Winnav to calculate the rate of return when it is determined
that a fund should not be owned during a period of time.


RISKFREE
--------

RISKFREE contains the 90-day treasury bill rates for each year, from 1960 to
present. These are used by Winnav to calculate the Sharpe ratio for each data
set.


INDEX
-----

INDEX contains the assignments of benchmark index funds for each fund. These
are used by Winnav to determine which index to adjust against for each fund.
If you change the index associated with a fund, Winnav will write a new INDEX.
See the section below on Viewing Benchmark for more detailed information on
benchmark indexes.


OPT
---

The OPT file contains moving average values and other information about each
fund. OPT is generated or updated as needed by Winnav. OPT is encrypted.


PRTFOLIO
--------

This file is generated by Winnav, and contains the file names of the funds
selected for inclusion in the portfolio.


SETTINGS
--------

This file is generated by Winnav, and contains the values of settings which
determine the appearance of Winnav. Winnav uses the file to remember these
settings from one run of the program to the next.


An FTP Session
--------------

FTP stands for File Transfer Protocol, a way to transfer files across the
Internet. (Note: the information in this section will not be relevant if you
use a web browser to download files.) Once logged onto a computer connected to
the Internet, use the following commands (comments are enclosed in angle
brackets <>):

  ftp ftp.comcast.net
    <You'll be asked for a logon ID.>
  anonymous
    <You'll be asked for a password; use your Internet email address.>
  joeblow@internet.com  <Don't type this; fill in yours.>
    <You'll be logged on, and placed in the root directory.>
    <Passwords are not printed on the screen when you type them.>
    <If you do a 'dir' you will not see directory ~randyn, but
     execute the next command anyway. If it fails, try "cd u/r/randyn".>
  cd ~randyn
    <Now you'll be at the right location; set file transfer to binary.>
  binary
    <To see what files are available, type "dir".>
  dir
    <Now download the file.>
  get winnav.zip
    <Winnav.zip is about 1.2M; when it's done, logoff.>
  bye

Some Internet providers put you into a "user friendly" menu system when you
dial into their machine via a modem. Usually there is a menu selection for
starting a command shell, from which you can issue the FTP command. If not,
there may be an FTP service menu selection. If you can't figure out how to FTP,
ask your system administrator. If you don't have an Internet account or for
some reason FTP is not available, it is going to be tough to keep your data
up-to-date. After you use FTP to transfer WINNAV.ZIP from ftp.comcast.net to
your Internet Service Provider, download it to your local PC. If you don't know
how to do that, ask your system administrator; usually your ISP will have a
program you can invoke to transfer a file to your modem's terminal emulator
program.


Installation
------------

Create a directory called WINNAV in the root directory of your hard disk, for
example, C:\WINNAV, and place WINNAV.ZIP in it. Unpack with the command "UNZIP
WINNAV". The UNZIP.EXE program is also available on comcast. This will unpack
the files. Then do "UNZIP DATA", which will create many .NAV files, and files
called OPT and FUNDS. The .NAV files each contain one data set, usually for a
mutual fund, and are named by ticker symbols. For example, FMAGX.NAV contains
data for Fidelity Magellan. Some of the .NAV files contain data for market
indexes, such as SP500.NAV. Winnav will look for data files in the same
directory it is executed from.

The simplest way to run Winnav is to make C:\WINNAV the current directory and
enter "winnav" from a command console (called MS-DOS Prompt). This will cause
WINNAV.EXE to execute, load in all the .NAV files, either calculate moving
average values for each of them or read them from the OPT file, and display the
data for you to evaluate. Other ways of running Winnav are to click on it in
the Windows Explorer, or use the Run... dialog from the Start button.

You can also create a shortcut to Winnav and place it on the desktop; then,
clicking on the desktop Winnav icon will execute it. To do this:
1) In the Windows Explorer, go to the \WINNAV directory of your C: hard disk,
2) Right-click on WINNAV.EXE and select Create Shortcut from the properties
   menu,
3) Left-click and hold the button down on the shortcut, drag it out to the
   desktop, and drop it by releasing the mouse button.


Reading in the Data
-------------------

When you run Winnav, the first thing you'll see is a warning because you do not
have an encryption key. After you dismiss the warning, Winnav will read in the
data files in two passes. The first pass determines the sizes of the data sets,
and the second pass reads them into memory. Between the two passes the memory
for holding the data is allocated. Then Winnav will normalize and optimize the
data sets; this is where Winnav determines the optimal type of moving average
to use and the parameter values. During each of these phases Winnav displays a
progress bar to show how far along it is. Finally, Winnav displays the list of
funds, and allows you to select funds for analysis. Despite the missing
encryption key, one fund from each category will be available for evaluation
purposes. These selected funds are encrypted in such a way that they can be
read even without an encryption key.


Tabs
----

Below the menu are the tabs, and below the tabs is the display area. The tabs
are boxes containing the words Funds, Key Help, and Manual. The tab that is
selected controls what appears in the display area. Initially the Funds tab is
selected, and the display area contains the fund list, and a color-coded
legend. The name of a fund in the fund list, on a fund tab, and also in a fund
graph title will correspond by color to the legend of categories. For example,
"Fidelity Magellan" will appear in red, indicating it is a growth fund.

When you select one or more funds for analysis, a tab will be created for each.
When you select a fund tab, you'll see the fund graph in the display area. The
Key Help tab displays the list of keystrokes available and what they do, and
the Manual tab displays this README file in a scrolling window. If you click
the mouse on the fund legend, the fund list will be scrolled to that category.
If you double-click on a fund in the list, it will be selected and its tab will
also be selected. That is, the fund graph will be displayed immediately.
Selected funds have a red checkmark in the fund list. A single click in the
fund list will select a fund without selecting its tab. A fund can also be
selected by positioning the fund list cursor box over the fund name and
pressing the space bar; this comes in handy if you do not have a mouse. The tab
key will switch the keyboard focus between the tabs and the item in the display
area (the fund list, or a fund graph). The Enter key (carriage return) will
change to the Fund tab if any other tab is currently selected, or to the fund
graph tab if the Fund tab is selected and there is only one fund graph tab
available.

Indexes, which are either funds based on market indexes or the indexes
themselves, are shown in gray. Note that the data for some of the indexes does
not include reinvested dividends. A fund that has not been assigned to a
category will appear in black, at the bottom of the list. Normally funds are
grouped by category, and alphabetically within each category, but the category
sort can be disabled, so they are listed alphabetically without regard to
category. Note that funds placed into your portfolio will be in a category at
the end of the list, if portfolio grouping is enabled. The order of the funds
within each category or within the entire list will be determined by which bar
chart is selected, if any. All of these menu options are described below.


Fund Graphs
-----------

In the fund graph, the bottom axis is time, earliest dates on the left, most
recent on the right. The date of the oldest data point is displayed at the
lower-left, and the date of the most recent data point is displayed at the
lower-right. The vertical axis is money, and is scaled according to each fund.
If more than one fund is present, it will be scaled for all funds according to
the maximum of all of them. Statistics are displayed in the upper left-hand
corner. The yearly returns are shown in the first column. Negative percentages
are enclosed in parentheses. Yearly returns start on the last data point for
the previous year and end with the last data point for the current year.

The total return over the entire time period (annualized), and the 1-, 3-, 5-,
7-, and 10-year averages (annualized, relative to the most recent date) are
shown in the second column.

In the third column, the following are shown: volatility, reward/risk ratio,
best returns, nav and dist summaries, and tax efficiency.

Some of these columns may be shifted toward the right, if there are multiple
funds selected for display on one screen, and not enough vertical space to
display all the yearly returns in one column.

Volatility - The standard deviation of the quarterly returns; it may be
misleadingly low for funds with short histories.

Reward/risk ratio - The return divided by the volatility. If the fund has a
long enough history to have a 3-, 5-, 7-, or 10-year return, the longest of
these is used. Otherwise, the total start-to-end return is used. It would be
good advice to look for funds with a reward/risk ratio of 2.0 or above. Another
way of interpreting the reward/risk ratio is whether the risk being taken
(volatility) is sufficiently compensated for by the return.

Sharpe Ratio - The total return minus the "risk-free" rate of return (90-day
treasury bills), divided by the volatility (standard deviatin). For
benchmarked data sets, the "risk-free" rate of return is zero, as the data
has already been normalized against an appropriate market index.

Best return - The annualized result of following the best moving average
values; they will be for the entire fund unless it is long enough to be divided
into trial and evaluation periods (see below). If it does have separate trial
and evaluation periods, there will be a best return value for each period.

Summaries - The nav summary shows the absolute change in nav from first to last
data point, and the dist summary shows the total amount of distributions per
share from first to last data point. The nav and dist summaries are used to
calculate tax efficiency.

Tax efficiency - The percentage gain retained in the share price. For example:
a fund gains $10 per share and pays out $8 total distributions per share; the
tax efficiency is 55.6%, since $10 out of a total $18 gain was retained in the
share price. Use this statistic to determine which funds to place in a
tax-deferred accounts, such as an IRA or 401(K).

Vertical dotted lines mark the beginning of each calendar quarter.


Cursor Keys
-----------

When a fund graph is displayed, the cursor keys (up-arrow, down-arrow,
left-arrow, right-arrow, page-up, page-down, home, and end) will cause the fund
graph tab to be changed to the preceding fund, following fund, etc, in fund
list order, as long as only one fund is being displayed. If more than one fund
is being displayed through the combined Graphs tab, the cursor keys are
disabled. The page-down and page-up keys cause the graph to skip ahead and
backward 10 funds, respectively. A good way to cycle through all the funds in
the list is to select the first one, change to its tab, and keep pressing the
down-arrow key until the last fund is reached.

When the fund list is displayed, the cursor keys cause the list cursor (a box)
to move or the list to scroll. When a fund graph tab is selected, the Enter key
will cause the Funds tab to be selected (and also when the Manual or Key Help
tabs are selected). When the Funds tab is selected and there is only one fund
graph tab, the Enter key will cause the fund graph tab to be selected. But if
there is more than one fund graph tab, the Enter key is disabled.


Arrow Buttons
-------------

There are three sets of arrow buttons next to the fund graph; they enable you
to zoom in on any part of the fund graph by adjusting the top and side borders.
Above the fund graph are up/down arrow buttons that move the top graph border.
To the left of the fund graph are thin and thick left/right arrow buttons which
move the left border. Thin arrows move the border one data point (week); thick
arrows move the border a whole year, or move it to the beginning of the
appropriate year, if it is not already there. The double arrow moves the left
and right borders simultaneously, like a sliding viewing window, over the data.
The arrow buttons to the right of the fund graph move the right border.

Usually you will be most interested in recent data. To see this, use the Zoom
function on the Graphs menu (the Ctrl-z key), described below. This will
display the last complete calendar year, plus the current year to date. Zooming
with the arrow buttons will give you more control, and allow you to zoom in on
any time period.

With several graphs on the combined graph tab, the arrow buttons can be used to
zoom in on the identical time period for all displayed funds simultaneously.
The zoomed time period remains set if you use the cursor keys to switch to the
next/previous fund in the list, etc. The zoomed time period is reset when you
switch to a non-graph tab, and when you zoom or unzoom using the Ctrl-z key or
the Graphs->Zoom menu command.


Data Updates
------------

Most of the data is measured weekly, at the close of the week on either Friday
or Sunday (which uses the previous Friday's closing price). The data includes
distributions. For some funds, the distribution data is represented explicitly
and the price data is as reported on the given date; for others, the
distribution data has been used to adjust the price data. Which technique is
used depends on the source of the data. The data also includes the fund name,
and category. Dates may also be present without corresponding prices; these are
missing data. Winnav handles these by interpolating from the previous and next
known prices. Missing data points are represented by red dots when graphed.
Actual data points are plotted with blue dots. The data may also include
information on share splits, which are rare for mutual funds.

Normally all funds will be updated with weekly closing prices by Friday night
for the market close that day. This is the plan; it is not guaranteed. It is
expected that the data will be available by Friday night about 90% of the time.
If you notice a missing distribution or encounter unreasonable difficulty,
please send email.

Most of the data files will be updated weekly, but there are a few exceptions.
The S&P500 dividend yield and P/E ratio data sets are updated every few months.
If you learn of an on-line source for those numbers, please send email.
Currently the data sets for the Money Market yield, the CPI (Consumer Price
Index), the PPI (Producer Price Index), and several other interest rates, are
updated on a yearly basis.

WINNAV.ZIP is a large file, so it won't be updated often. There is a separate
DATA.ZIP available on comcast, but it is also large, and tiresome to download
every week. DATA.ZIP will be updated about every two months; it contains the
complete price and distribution histories. Every week, a new UPDATE.DAT file
will be placed on comcast. When you see one with a date later than your last
update, select the Incremental Update option on the Update menu. This will
download UPDATE.DAT and a new OPT, and apply the UPDATE.DAT changes to the .NAV
files.

If your .NAV files have become significantly out of date, select the Full
Update option on the Update menu, then the Incremental Update option. Full
Update downloads and unzips DATA.ZIP, and restarts Winnav. All new price and
distribution data will be accumulated in UPDATE.DAT over a period of a few
months, after which a new DATA.ZIP will be generated with all changes included,
and UPDATE.DAT will be deleted.

Registered users have access to encryption/unencryption utilities which enable
them to view the data in plain text format. If necessary, they can make
modifications, corrections, or fill in missing data. The utilities are not to
be used to resell or redistribute the data provided with Winnav. Registered
users can use the data with other analysis programs, as long as they do not
allow anyone else to access the data.

If you modify any of the .NAV files while Winnav is running and want to load
the new data into Winnav, select the Restart option on the Update menu.


Mouse
-----

You can use your mouse not only for the usual functions (selecting menu
items, selecting tabs, selecting items in lists), but also for "what if"
analysis. You can use the mouse to test various date and price points on the
fund graphs, and to see performance over various periods. Moving the mouse
around will display the date and value at the tip of the mouse pointer.
Clicking once will fix one endpoint of a line that you can stretch out. When
the mouse is over the desired second endpoint, clicking a second time will
fix it in place. The endpoint values and the performance over the period are
reported in the fourth column of the fund graph. Use this to determine
approximate fund performance over arbitrary and non-standard timeframes.
Clicking a third time will erase the line, and start a new one. A line segment
must be contained in one fund graph to be meaningful.


Menus
-----

The following is a short listing of the menu commands. Most menu commands can
also be invoked with a control key, which is listed below for each. The
keystroke is usually the first letter of the command, but there are a few
exceptions. Following sections provide more detailed descriptions of some menu
commands.

Charts - control fund list bar charts
  Ctrl-y - year-to-date return
  Ctrl-1 - 1-year return
  Ctrl-3 - 3-year return
  Ctrl-5 - 5-year return
    (note: some funds don't have 5 years of data)
  Ctrl-7 - 7-year return
    (note: many funds don't have 7 years of data)
  Ctrl-0 - 10-year return
    (note: most funds don't have 10 years of data)
  Ctrl-a,a - signals
  current strength
  Ctrl-t - total return
  Ctrl-v - volatility
  Ctrl-r - reward/risk ratio
  Sharpe Ratio
  Ctrl-x - tax efficiency
  Ctrl-n - no chart
  Ctrl-c - category sort on/off
  Ctrl-q - quit (exit)
Graphs - control fund graph appearance
  Ctrl-z - zoom in/out
  Ctrl-m - moving average on/off
  MACD - moving average convergence/divergence on/off
  MACD magnify (allocate more screen space to MACD graph)
  ROC - rate of change on/off
  Bollinger bands - turn bands on/off
  Ctrl-d - distributions on/off
  Ctrl-b - benchmark on/off
  Ctrl-l - log/linear vertical axis
  combined graphs on/off
  overlaid graphs on/off
  rsi - relative strength index on/off
  web page
Portfolio - control portfolio selection
  Ctrl-s - select fund
  Ctrl-g - group on/off
Optimize - control moving averages
  unweighted UMA
  weighted WMA
  exponential EMA
  adaptive AMA
  variable VIDYA
  reselect moving average
  recalculate optimal values
  default benchmark
  reset benchmark
Update - update data
  incremental update
  full update
  key update...
  restart
Print - print fund graph
  Ctrl-p - print fund graph
Help - on-line help
  Ctrl-h,<F1> - keystroke help
  on-line manual
  about Winnav


Fund List Bar Charts
--------------------

Initially the fund list displays the fund names, alphabetized within each
category. There are various bar charts that can be displayed to the right of
the fund names. Selecting each bar chart a second time will erase the chart.
Each chart is sorted from longest bar to shortest, except for volatility, which
is sorted from shortest to longest. The length of each bar corresponds to the
value of the statistic associated with each fund. Note that the charts
corresponding to returns can be negative; they will have a bar extending to the
left rather than to the right. Volatility and tax efficiency by definition
cannot be negative. For funds not old enough to have a given return, the bar
length will be 0. The type of chart displayed is reported on the status bar at
the bottom of the program window. The types of charts are listed above in the
Charts menu section. If the Winnav window is too narrow, the bar chart will not
be displayed. The size of the Winnav window can be adjusted with the maximize
and resize buttons on the right of the title bar, or you can drag the window
borders with a mouse. The Ctrl-n key will turn off all bar charts. If benchmark
is turned on (see below), the bars will be relative to the funds adjusted by
their associated indexes; otherwise they will be relative to the (unadjusted)
funds.


Signals Chart
-------------

The Signals chart displays a red S if a sell signal has been generated on the
absolute (non-benchmarked) graph. If the last signal generated was a buy, it
will be a green B. This is followed by a B or S for the benchmark-adjusted
graph. If the default is set to benchmarks, these signals will be reversed in
order. Note that the signals could be S followed by B if one graph has
generated a sell and the other a buy. Note also that index funds will not have
a benchmark signal.

Following the B or S signals, there will possibly be a red 3, 4, or 5 if one
of the funds has seen 3, 4, or 5 straight weeks of absolute (non-benchmarked)
down or flat performance, or a green digit if there have been consecutive
weeks of up or flat performance. A second digit may also be present if the
benchmark-adjusted graph has had consecutive up or down weeks. BB55 (green)
is the strongest positive signal, and SS55 (red) is the strongest negative.


Current Strength Chart
----------------------

The current strength bar chart shows the relationship of the last data point
to the moving average. For example, a value of 10% indicates the price is 10%
above the moving average. Positive values are in green and extend to the
right, negative values in red and extend to the left.

If there are two shades of green, the dark green indicates the level of the
buy threshold, and the light green indicates the amount by which the price
exceeds the buy threshold. If there is only dark green the price exceeds the
moving average, but not the buy threshold. Likewise, dark red and light red
indicate the amounts by which the price is below the moving average and the
sell threshold, if any.

If MACD (moving average convergence-divergence) is selected, the bars
indicate the relationship between the MACD and the signal moving averages.
If ROC (rate of change) is selected, the bars indicate the ROC value.

For moving averages and MACD, to keep the bar charts within a useful range,
strength is restricted to always be no more than +100% and no less than -100%.


Category Sort
-------------

Normally, all funds are grouped in categories and sorted alphabetically or by
bar chart order within categories. The Ctrl-c key will turn this grouping on
or off.


Quit
----

The Ctrl-q key will cause Winnav to exit, but only after confirming that is
what you want to do.


Zoom
----

Sometimes it is difficult to see the detail of current price moves if the
history gets long, and recent prices are squeezed up against the right-hand
axis. Press the Ctrl-z key to zoom in on the last full year, plus the current
year to date. This is known as the evaluation period, for funds that have
separate trial and evaluation periods.


Viewing Moving Averages
-----------------------

The screen can get cluttered when moving averages are displayed, so normally
they are not. Select a fund, such as Fidelity Magellan, and switch to the fund
tab, then press Ctrl-m. This will turn on the best moving average. The blue
price line will be overlaid with the peach moving average curve. Above and
below the moving average curve are sequences of dots which show the buy and
sell thresholds. When a buy signal occurs, a green letter B points to it. A red
letter S points to a sell signal. The performance of an actual investment
following the signals is shown on the green line, and reported in the
statistics. The purple vertical line at the beginning of the last complete
calendar year shows where the trial period ends and the evaluation period
begins. The investment amount is resynchronized to the actual price value on
that date.

There is also a black dot on the purple trial/evaluation period border, and one
on the most recent date; these show where the average investment (driven by buy
and sell signals) would end up at the end of each period. The dot on the purple
border shows where the average moving average return during the trial period
would end up, and the dot on the most recent date shows where the average
moving average return during the evaluation period would end up. The starting
point for each period is the first actual data point in the period.

To calculate the optimal moving average values, Winnav calculates every
possible combination of values, and saves the one which gives the best final
investment value. While it is doing this, it adds the investment results of
every combination, and divides by the number of combinations to form the
average. If the result achieved by following the optimal moving average values
(the green line) during the evaluation period is higher than the average dot on
the final date, then Winnav was successful at capturing the behavior of the
fund in the trial period and at applying it to the evaluation period. If the
result is below the average dot, then Winnav was not able to correctly capture
the behavior, and a more extensive data history is needed.

When not invested in the fund, it is assumed that you are invested in a money
market fund. Winnav has data which tells how much interest you would earn by
parking your investment in a money market fund, as a yearly average, which is a
reasonable approximation. The data comes from the Vanguard Money Market Prime
Reserves (a very typical money market fund), and from 3-month T-Bill rates,
and is stored in the file MONEYMKT. If Winnav can't find MONEYMKT in the same
directory as Winnav, it will use a default money market rate of 3%.

Note that if benchmark is turned on (see below), it is assumed that when not
invested in a fund, you are invested in the associated index, and therefore the
gain/loss against the index is zero. Specifically, when not viewing benchmarks
you will notice that for extended periods during which you are not invested in
a fund, the investment result will be gradually rising, reflecting the growth
of a money market fund. But when viewing benchmarks you will notice a flat line
for those periods, reflecting zero gain or loss compared to the index.

Pressing Ctrl-m again will erase the moving average, and display the price
graph. Clutter can be reduced if you zoom in on the evaluation period.

When moving averages are turned on, you will also see pink and yellow data
points just beyond the last blue data point. These are predicted future net
asset values. The pink data points are calculated based on the last few
actual data points, with more weight given to more recent data points.
Predicted data points in the near future rely most heavily on the most recent
actual data points. Predicted data points several weeks in the future give
progressively more weight to actual data points several weeks prior to the
last actual data point. The yellow data points are calculated by searching
back through the prior price history and finding the sequence that most
closely matches the final few price movements. (The matching historical
sequence is also plotted in yellow points.) The predicted data points are
intended to indicate the current trend, and are only displayed if the last
actual data point is also displayed, and if there is enough data to base a
prediction upon.

The calculations use deltas, which are differences between adjacent data
points, rather than the data points themselves. For example, if the last data
point is $20.00 and the data point prior to it (previous week) was $19.80 then
delta1 is $.20. If the next prior data point was $19.85 then delta2 is -$.05.
The first pink predicted data point is:
  last data point + ((delta1*2 + delta2*1) / 3) = $20.117
If the next prior data point was $19.75 then delta3 is $.10, and the next pink
predicted data point is:
  first predicted data point + ((delta1*3 + delta2*2 + delta3*1) / 6) = $20.217
Formulas for subsequent predicted data points follow a similar pattern. More
distant deltas are added, the geometric multiplier pattern for each delta is
extended, and the divisor is the sum of the multipliers. This continues to give
recent deltas more weight than distant deltas but the proportional difference
decreases as more deltas are added.

Yellow predicted data points are calculated by finding a minimal sum of
squares of differences between historical sequences and the final few price
movements.


Viewing MACD
------------

MACD is a different type of moving average, one that also generates buy and
sell signals based on positive or negative calculated momentum. Moving Average
Convergence/Divergence is calculated in the following way: calculate a
period-based EMA (see below) of length 12 and call it fast'. Calculate a 26
period EMA and call it 'slow'. For each data point calculate fast-slow and call
it 'macd'. Calculate a 9 period EMA of macd and call it 'trigger'. (These
values, 12/26/9, are recommended by Gerald Appel, who first developed the macd
method.) When macd rises more than +2% above trigger a buy signal is generated.
When it falls more than -2% below trigger a sell signal is generated. The +-2%
threshold is calculated based on the maximum positive and negative values of
macd over the entire trial period, and is the only addition I have made to
Gerald Appel's macd (to discourage whipsaw signals). For macd, threshold is
fixed at +2% for buy, and -2% for sell, and whipsaw penalties are assessed just
as for other moving averages.

A buy signal indicates momentum is building, even though price data may still
seem to be moving down. A sell signal indicates momentum is eroding, even
though price data may still seem to be moving up. In fact, when macd signals
occur and the price data seems to still be moving in the opposite direction,
this is the 'divergence' that adds strength to the credibility of the signal.
A signal in the absence of divergence is suspect. A histogram of macd-trigger
is also graphed, which can help anticipate macd signals.

To calculate a period-based EMA of length N, use the following:
  EMA(current) = ((CurrentPrice - EMA(previous)) * Multiplier) + EMA(previous)
where Multiplier = 2 / (1 + N)
Smaller values of N give more weight to the most recent price data, and
therefore produce 'faster' (more responsive) EMAs.


Viewing ROC
-----------

Rate Of Change is a very simple type of moving average. It subtracts the price
N weeks ago from the current price, and plots the difference. When the
difference crosses the zero line by a certain percentage, a buy or sell signal
is generated. The value of N and the size of the threshold percentage are
calculated by Winnav so as to maximize performance over the trial period.
Whipsaw penalties are also applied to encourage selection of values that
minimize whipsaws (sells that occur very quickly after buys, and vice versa).
The values selected for N (number of weeks) vary between 30 and 40, inclusive.
The values selected for the buy threshold vary between 1 and 4, and the sell
thresholds are between 5 and 8. The combination is selected to maximize the
performance of the buy and sell signals generated over the trial period. These
ranges also tend to maximize performance over the evaluation period, which
gives good predictive value to the signals.


Viewing Bollinger Bands
-----------------------

Instead of moving averages, you can view Bollinger bands. These are calculated
from the recent price history (optionally benchmarked) in the following way:
(1) Calculate a 20-week exponential moving average (EMA) with a weight of .1
for the current point, and .9 for the previous EMA.
(2) Calculate the sum of the squares of the deviations from the EMA for the
previous 20 data points.
(3) Divide by 20 to get the average squared deviation.
(4) Take the square root to get the standard deviation.
The "upper" Bollinger point is the EMA plus twice the standard deviation. The
"lower" Bollinger point is the EMA minus twice the standard deviation.
Bollinger bands do not signal buy or sell events, but they do help confirm the
continuation of a trend. Often a security in a rising trend will stay between
the EMA and the upper Bollinger band, and a security in a falling trend will
stay between the EMA and the lower Bollinger band. Bollinger bands also widen
when a security becomes more volatile, and narrow when a security becomes
very steady. For more on Bollinger bands, see the website
http://www.bollingerbands.com/.


Viewing Distributions
---------------------

Normally distributions are not shown. If a fund graph is displayed, press
Ctrl-d and the distributions will be displayed in a small graph below the price
data. Press Ctrl-d again and the distribution graph will be removed. The
distributions are broken down by mid-term plus long-term capital gains (blue)
and dividends plus short-term capital gains (red). Dividends are grouped with
short-term capital gains since they are taxed at the same rate. Mid- and
long-term capital gains are grouped together since they are both taxed at a
lower rate than ordinary income. The percent breakdown is shown in the upper
left-hand corner of the distribution graph; it will be calculated on only the
distributions shown on the graph. The vertical black line shows the cumulative
previous distributions, and the vertical axis is in dollars per share (linear,
not logarithmic).


Viewing Benchmarks
------------------

Rather than viewing price graphs directly, it is sometimes useful to view a
graph of the prices adjusted by percentage relative to a corresponding
benchmark index. This will show whether a given fund has been outperforming its
index (in a relative sense), as opposed to whether it has been gaining or
losing money (in an absolute sense). The Ctrl-b key or the Graphs->Benchmark
menu item will turn this mode on or off.

To do the benchmark adjustment, Winnav performs the following steps:
  (1) Start with the original price data points, for example Fidelity Magellan.
  (2) Locate the index price data points, for example Vanguard Index 500.
  (3) Generate a new data set from the fund price data points by calculating
      the weekly percent changes (gains or losses).
  (4) Do the same for the benchmark index price data points.
  (5) Subtract the index percent changes from the fund percent changes by
      corresponding week.
  (6) Use the benchmark-adjusted percent change data series calculated in (5)
      to generate a new price data series by investing $1 and then adjusting it
      by each of the benchmark-adjusted percent changes in the series.
  (7) Use the benchmark-adjusted price data series to calculate moving average
      values.

If benchmark mode is on, an indication will show up on the status bar at the
bottom of the display area. Most funds have already been assigned an index
based on their category, and it is stored in the INDEX file. The table below
shows what index corresponds to each category:

  Max Growth - Vanguard Index 500
  Smallcap - Vanguard Index Smallcap
  Global Equity - Schwab International Index for most, Vanguard International
    Equity Index Emerging Markets for a handful
  Midcap - Dreyfus Midcap Index
  Growth - Vanguard Index 500
  Growth & Income - Vanguard Index 500
  Index - none
  Equity Index - Vanguard Index 500
  Balanced Equity - Vanguard Balanced Index
  Balanced Bond - Vanguard Balanced Index
  Bond - Vanguard Total Bond Market Index
  Gold - Gold
  Sector - Vanguard Index 500
  Other - Vanguard Index 500

If a fund has an index assigned, the name of the index will be printed on the
title bar of the fund graph, such as "Fidelity Magellan (Growth) vs. Vanguard
Index 500 (Index)", if benchmark is turned on. It is not possible to assign an
index to an index fund.

Whether a fund has a benchmark index assigned or not, a percent change window
will be shown, very similar to the distribution window. It is a bar chart on
the same time line as the data, containing blue bars (going up) for gains and
red bars (going down) for losses. The gains/losses will be absolute if an index
is not assigned to the fund, or relative to the index that is assigned. A fund
that matches the index very closely in terms of moving up and down by the same
relative percentages each week will have very short bars.

Buy and sell signals on benchmark-adjusted returns are most useful when used in
combination with the signals on the unadjusted data and the index. Don't use
them in isolation. For example, a benchmark-adjusted buy signal which closely
follows an unadjusted buy signal would be a good indication; it would mean the
fund is not only performing well in an absolute sense, but is also
outperforming the index. If the index itself is also in buy territory, this
would further strengthen the confidence in the signal. However, if a
benchmark-adjusted buy signal occurs in sell territory on the unadjusted data
it would not be a good indication; it would mean that while the fund is
outperforming the index in a relative sense, it is not a "buy" in an absolute
sense. This can occur when a fund loses money at a slower rate than the index,
for example. Similarly, benchmark-adjusted sell signals would be strengthened
by the presence of sell signals in the unadjusted data or in the index, and
would be weakened by the presence of buy signals or being in buy territory.

You can change the index that is assigned to a fund. Winnav will remember the
last index that was selected as the default index. If more than one index is
selected, there is no default index, as Winnav can't decide which one to use.
If one is selected and then unselected, Winnav will remember it until a new
one is selected. The default index is stored in the SETTINGS file. To find out
what the default benchmark index is, choose the Default Benchmark menu item on
the Optimize menu item. That menu item can also be used to set the default
index to any index fund. Once a default index is set, select a fund to assign
the index to it. There will be a short pause as the moving average values are
recalculated on the benchmark-adjusted data. If the fund already has a
different index assigned to it, the Reset Benchmark menu item on the Optimize
menu item will clear it, and assign the new default index (if any) to it. If
more than one fund is being viewed in the combined funds tab, all of their
indexes will be reset.

When an index is assigned to a fund, the performance statistics reported on the
fund graph will be relative to the benchmark-adjusted data, not the original
price data. If a fund closely matches an index, the long-term return
percentages will all be close to zero. If benchmark is turned on, the bar
charts in the fund list are relative to benchmark-adjusted values.


Logarithmic Graphs
------------------

The vertical (money) axis for fund graphs is logarithmic. This makes steady
rates of return and the effects of compounding result in a straight line.
The distribution graph is always linear, in cents per share. Press Ctrl-l to
change from logarithmic to linear vertical axis, and back.


Combined Graphs
---------------

Normally only one fund graph is shown in the display area of a fund tab. But
if the combined option is enabled, all selected fund graphs are shown under a
Graphs tab, and there are no individual fund tabs. If two funds are selected,
each will get half the display area, and so forth. There is no limit to the
number of funds you can select, but you will find that it is difficult to view
the graphs if there are more than two of them. The menu item Graphs->Combined
Graphs switches between combined and separate fund tabs.

If the combined graphs tab is enabled, you can also enable overlaid graphs.
This is on the Graphs menu. If it is turned on, all selected funds are
displayed on the same graph (not in separate graphs). This allows you to
compare the performance of two or more funds over the same time period. The
fund with the longest history is selected as the primary fund. All other funds
will be scaled to join the primary fund. If not zoomed in, they join the
primary fund at their first data point. If zoomed in they join the primary
fund at the start of the zoomed in period. A good way to compare several funds
is to zoom in, then click on the left solid arrow button on the left side to
move the left border to the left by one (earlier) year.


Viewing RSI - Relative Strength Index
-------------------------------------

RSI is in indicator developed by Welles Wilder (see New Concepts in Technical
Trading, 1978) which compares the current (upward) strength of a data series
to its recent past strength.  The calculation is: RSI = 100-(100/(1+RS))
where RS is the average of closes of up weeks divided by the average of
closes of down weeks.  The period covered is the previous 9 weeks.  When the
indicator is over 70 it is "overbought" and a sell signal is indicated by a
downward crossing of the 70 line.  Under 30 is "oversold" and a buy signal
is indicated by an upward crossing of the 30 line.


Web Page
--------

If you are viewing a fund graph, you can load the web page associated with the
fund by selecting the Web Page option on the Graphs menu. In most cases, a
dial-up connection will be initiated if it does not already exist, and the web
browser will be started if it is not already running. However, these are slow
operations; things will work much smoother if you make sure the web browser is
already running before selecting this option. Web pages are defined for most,
but not all funds.


Portfolio
---------

You can form a portfolio of funds with Winnav. In the fund list, position the
cursor box over the desired fund, and press Ctrl-s. This will select the fund
for inclusion in the portfolio. Once a fund is in the portfolio, pressing
Ctrl-s again removes it. By default, portfolio funds remain in their
categories, but are indicated by a yellow letter P in a box which appears to
the left of their names. But pressing Ctrl-g will cause all portfolio funds to
be grouped together in a portfolio category at the end of the fund list.
Pressing Ctrl-g again will remove the portfolio category, and place the
portfolio funds back in their categories.

Putting the funds you invest in into a portfolio will help you compare their
performance to their peers, and also to each other. It is most useful when
viewing the Y,1,3,5, etc bar charts. Note: if you have portfolio category
grouping enabled, it can be confusing to select a portfolio fund and see it
immediately disappear from its category group. Remember that it was moved to
the portfolio category, which may be several screens down the list. The
portfolio funds are stored in a file called PRTFOLIO, and readded to the
portfolio the next time you run Winnav. If you want to remove the portfolio
and start again, just delete PRTFOLIO. If a portfolio change is made while
Winnav is running, Winnav will update (or create) the PRTFOLIO file.


Changing a Moving Average
-------------------------

You can try any of the five types of moving average whenever you want. If
you're looking at a price graph using EMA and you'd like to see UMA, select
the Optimize->UMA menu item. You'll be asked to confirm, and the moving average
values will be calculated. Once you set a different moving average for a fund,
it will be remembered as the preferred moving average, until either another
moving average is selected or the OPT file is deleted or overwritten. There are
Optimize menu items for setting WMA, EMA, AMA, and VIDYA moving averages. If
you are in the Funds tab, the moving average will be selected for all funds.
There are Optimize menu items for reselecting the optimal moving average type,
and for recalculating optimal moving average values. These operate on one fund
if a fund graph is in the display area, or on all funds if the fund list is
displayed. Optimize->Reselect Moving Average is useful if you've changed the
moving averages and can't remember which one is optimal.


Automatic Update
----------------

The options on the Update menu will download and process the necessary files
for either a full or incremental update. You can also change the encryption
key (or set its initial value), and restart Winnav if you have manually
changed the .nav files. If you want your data to stay current, you should do an
incremental update at the beginning of every week, and a full update whenever a
new DATA.ZIP is available.


Printing
--------

If you have a printer connected to the LPT1: port, press Ctrl-p to print the
fund graph. Printed graphs are scaled to match the screen dimensions. When the
Print dialog is displayed, the Properties button can be used to select portrait
or landscape mode.


Help
----

Pressing Ctrl-h or <F1> will display a help screen showing what the various
keystrokes do. This information is contained in the KEYHELP file. Selecting
the Help->On-line Manual menu item will display the on-line manual (this README
file) in a scrolling window. Selecting the Help->About Winnav menu item will
display the copyright, author US mail address, email address, and world wide
web address (URL).


Trial and Evaluation Periods
----------------------------

Before calculating moving average values, Winnav will try to separate the price
data for each fund into two parts: the trial and evaluation periods. The idea
is to use the trial period data to form the moving average values, and then
apply the values to the evaluation period data. Winnav determines the most
recent whole year for which data is available. This, plus any trailing partial
year, are the evaluation period, if at least 100 data points precede it (they
become the trial period). A whole year must begin in the first week of January,
and end in the last week of December. If a whole year cannot be found, or there
are less than 100 preceding data points, there is no evaluation period and the
entire price history is put in the trial period.

Examples: for a fund with data from 2/3/95 to 4/20/96 there is no evaluation
period, because there is no whole calendar year present. For a fund with data
from 11/14/94 to 4/20/96 there is no evaluation period, because while calendar
year 1995 is present, there are not 100 data points that precede it. For a fund
with data from 9/2/88 to 4/20/96 the evaluation period starts on 1/1/95 and
includes both calendar year 1995 and year to date 1996.

Moving averages are most useful if there are separate trial and evaluation
periods. This is because the moving average values must be calculated over the
trial period, and then applied to the evaluation period. If the same data
points are used to both calculate and also apply the values, the results will
be subject to overfitting. That is, the algorithm cheats by allowing itself to
select values which optimize the equations over all the data. To be fair, the
algorithm should use only part of the data to calculate the values, allowing
you to evaluate the performance over an independent period. In this sense,
"performance" applies to the moving average values, and therefore the algorithm
that calculates them.

When moving averages are graphed, you will see a vertical purple line
separating the trial period from the evaluation period. If the line is not
present, there are no separate trial and evaluation periods, and the moving
average is subject to overfitting. Such a moving average can change with each
new data point that is added; therefore, don't use it to make buy/sell
decisions until enough data has accumulated to form separate trial and
evaluation periods. Overfit moving averages can still be useful in showing how
the algorithm is selecting moving average values.


Moving Averages
---------------

Winnav displays a number of statistics relating to fund performance, but its
real job is calculating moving averages. These are trend curves which compare
recent prices to historical behavior, and are used to make buy and sell
decisions. Winnav supports five moving averages:

UMA - Unweighted Moving Average. This is calculated by adding the previous N
prices and dividing by N, where N is the window size. For example, if P[i] is
the price at week i, and U4[i] is the 4-week UMA at week i, then
U4[5]=(P[1]+P[2]+P[3]+P[4])/4, U4[6]=(P[2]+P[3]+P[4]+P[5])/4, and so on. Window
sizes range from 2 to 60, in increments of 2 (2,4,6,...). For U4[i] where i<5,
use Uj[j+1] where j+1=i; that is, U4[1]=U0[1]=P[1], U4[2]=U1[2]=P[1],
U4[3]=U2[3]=(P[1]+P[2])/2, and U4[4]=U3[4]=(P[1]+P[2]+P[3])/3. In other words,
if there are not enough preceding points for the window size, use the largest
window size possible that does have enough points.

WMA - Weighted Moving Average. Similar to UMA, but gives more weight to recent
price points. W4[5]=(P[1]+2*P[2]+3*P[3]+4*P[4])/(1+2+3+4). The most recent
price point, P[4], receives four times the weight of the most distant price
point, P[1]. Window sizes are the same as for UMA. Like UMA, Wi[k] for i>=k is
defined as Wj[j+i] where j+1=i.

EMA - Exponential Moving Average. EMA has no fixed window size. Instead,
E[i]=C*P[i]+(1-C)*E[i-1], where 0<C<1, and E[1]=P[1]. C is the coefficient, but
for consistency with UMA and WMA we'll call it a weight. If C=.8 then a lot of
weight (80%) is given to the current price point and relatively little (20%) to
previous price points, which means the EMA will follow the price graph very
closely. If C=.2 then a lot of weight is given to previous price points and
relatively little to the current price point, which means the EMA will be a
gradually moving curve that doesn't follow the price graph closely. Weights
range from .10 to .80, in increments of .02 (.10,.12,.14,...).

AMA - Adaptive Moving Average. AMA has a window size, but only to calculate
recent volatility. AMA is calculated in the following way: select a window size
between 2 and 30 inclusive, in increments of 2. calculate Direction,
Volatility, and Efficiency Ratio (ER) per data point:
  Direction=Price[0]-Price[N]
    where Price[N] is the price N weeks ago. Price[0] is the current price.
  Volatility=sum from 1 to N of |Price[i-1]-Price[i]| (absolute values)
  ER=Direction/Volatility
  C=ER*ER
    Square ER to push small values toward zero; this keeps AMA from moving when
    there is no clear trend. C is the coefficient.
  AMA[0]=AMA[1]+C*(Price[0]-Price[1])
    where AMA[1] is for the preceding data point.
In addition, there is an adjustment to C if it is detected that the price is
creeping away from the AMA. This implementation of AMA is derived from Perry
Kaufmann's book "Smarter Trading", McGraw-Hill, pp. 133-143. But the algorithm
has been modified in several ways.

VIDYA - Variable Index Dynamic Average. VIDYA is calculated in the following
way: select a window size between 2 weeks and 20 weeks inclusive, in increments
of 2, and a primary weight between .02 and Max inclusive, in increments of .02.
Max is determined by the algorithm. The window size is used to calculate the
volatility index for each data point:
  K=Sigma(X-days)/Sigma(Reference)
where Sigma is a function that measures volatility. For Sigma, Winnav uses a
sum of the price changes over the last X days. The reference value represents
the normal value of Sigma across the data set; Winnav uses an approximation of
the average of Sigma across all valid data points for Sigma(Reference). The
following conditions occur:
  when K=1, volatility is normal
  when K<1, volatility is below normal
  when K>1, volatility is above normal
Next, determine the maximum value of Wt (primary weight) by: K*Wt<1 -> Wt<1/K.
Calculate 1/K (with the maximum K for any data point), then subtract .01 and
assign the value to Max. Now:
  VIDYA=K*Wt*C0 + (1-K*Wt)*V1
where C0 is today's price and V1 is yesterday's VIDYA. Wt is the EMA
coefficient and K is the volatility index. This implementation of VIDYA is
based on "The New Technical Trader", by Tushar Chande and Stanley Kroll, Wiley,
pp. 49-72. The one difference is that Chande and Kroll use
VIDYA=K*Wt*C0+(1-K*Wt)*C1, where C1 is the preceding price. V1 seems to give
slightly better results.

AMA and VIDYA are adaptive, in the sense that they try to capture the concept
of fluctuating volatilty. When volatility is low, they move very slowly. When
volatility increases, they move more quickly to catch up with the trend.

Winnav can use any of these moving averages (but only one at a time) for each
fund; by default Winnav will select the one that gives the best result over the
evaluation period. Once a moving average type has been selected, Winnav will
continue to use it for the fund until either the evaluation period changes (a
new year is started), or you change it.

The buy and sell signals generated by Winnav are offset from the moving average
by buy and sell thresholds. To generate a signal, the price must meet or
exceed the moving average plus the threshold. For example, "EMA .64 (+3-5)"
means the coefficient (weight) is .64, a buy signal is generated when
P[i]>=1.03*E[i], and a sell signal is generated when P[i]<=.95*E[i]. The
positive number is the buy threshold and the negative number is the sell
threshold. For a buy signal to be generated, the price must meet or exceed the
moving average by 3%, and for a sell signal to be generated, the price must
meet or fall below the moving average by 5%. "UMA 12 (+1-0)" means the
unweighted window size is 12 data points (usually weeks), a buy signal is
generated when P[i]>=1.01*U[i], and a sell signal is generated when P[i]<U[i].
The type of moving average used (EMA, UMA, etc) and the optimal values are
displayed on the fund graph in the upper-right corner, on the same line as the
fund name, if moving average (the M key) is turned on. If it is turned off, it
will not be visible.

It is possible for threshold values to be zero, in which case crossing the
moving average will generate the signal immediately. But for a zero threshold,
the price must cross, not just meet, the average; this is to eliminate the
special case of (+0-0) and a price which hits the average exactly triggers
simultaneous buy and sell signals. Buy and sell thresholds can range from 0% to
10%.

Winnav will calculate the best values for window size, weight, buy and sell
thresholds. "Best" is defined as the values which give the greatest investment
value at the end of the trial period, or at the end of the last data point if
there are no separate trial and evaluation periods.

Whipsaws are buy and sell signals that occur very close to each other. To
discourage selection of values that cause many whipsaw signals, Winnav
penalizes the values that tend to cause them, thus favoring those that don't.
The penalty consists of subtracting a percentage of net assets proportional to
how close together the whipsaw signals are. For example, .9% is subtracted for
signals that are 1 week apart, and .1% is subtracted for signals that are 9
weeks apart. No penalty is assessed for signals that are 10 or more weeks
apart.

Moving averages don't mean anything for data sets that do not represent prices,
such as the S&P500 P/E ratio and dividend yield.

Winnav does not adjust for loads; the price histories are as reported in the
newspaper, plus distribution information.


OPT
---

The OPT file is generated by Winnav, and contains moving average values, such
as window sizes, weights, and buy and sell thresholds. It also contains
information about each fund, such as the number of data points and the first
evaluation period date, so Winnav can determine whether the values are
up-to-date. If a .NAV file has grown since the last time an OPT entry was
generated, the values may need to be recalculated. This will depend on whether
an evaluation period exists for the fund, and whether the evaluation period
matches the one in OPT. OPT will also be provided in DATA.ZIP, and whenever a
new UPDATE.DAT is placed on comcast, so you can avoid lengthy recalculations.

For funds which have an evaluation period, adding one or a few data points will
not trigger a recalculation of moving average values. But once the first date
of a new year is added, the evaluation period will be moved forward by one
year, and a recalculation is necessary. Usually this will be done
automatically, so you will seldom if ever be required to wait for a lengthy
recalculation to complete. Funds which do not have an evaluation period must be
recalculated when new data is added. If you ever suspect that OPT does not
contain optimal values, delete it and Winnav will generate it automatically. On
a 200Mhz Pentium it takes 17 minutes to calculate a new OPT file. Winnav will
look for OPT in the directory where Winnav was executed from. OPT is encrypted.


SETTINGS
--------

By default:
  Zoom is turned off
  Vertical axis in fund graphs is logarithmic
  Moving average is not shown
  Bollinger bands are not shown
  Distributions are not shown
  Funds are sorted into categories
  The year to date bar chart is displayed in the fund list
  Separate (not combined) graphs are shown when multiple funds are selected
  Overlaid graphs are turned off
  Portfolio grouping is turned off
  Benchmark is turned off
  RSI is turned off
  MACD is turned off
  MACD graphs are normal size (not magnified)
  ROC is turned off

If any of these are changed, the new values are stored in the SETTINGS file, so
that when Winnav is run again, the same values are used. This keeps Winnav
looking the same from one run to the next. Most of these settings are reported
on the status bar, at the bottom of the display area. These values are global
settings, and affect how all fund graphs are displayed, not just the one
currently being displayed. SETTINGS also contains the path to the unzip
utility, if you have entered it during the Full Update process, and the default
benchmark index, if any.


.NAV File Format Example
------------------------

Here is a short example of a plain text .NAV file:

name=Ebenezer Scrooge Fund
category=Growth
;Comments start with a semi-colon.

;Blank lines are fine too.
;Here is a distribution, with income dividends, plus short-, mid-, and
;long-term capital gains. These are in dollars and cents per share. The date is
;the "X-date" or ex-dividend date. This is the first date that the effect of
;the distribution is reflected in the reported per-share price. You can
;have up to 4 decimal places.
12/30/61 div=.07 scg=.3025 mcg=.753 lcg=1.73
1/1/60=12.75 Comments can follow NAV prices too.
2/3/60= This nav is missing, but will be interpolated.
3/4/60=6.80
;Here's a share split, which is rare for mutual funds:
2/2/60 split 2 for 1
;Here's the definition of an excluded region:
1/1/61 exclude
;In this case, all price data prior to and including 1/1/61 will be
;excluded from the tax efficiency calculation, because distribution
;data has been used to adjust the prices, rather than being included
;explicitly.

Categories include:
  Max Growth (aggressive growth)
  SmallCap
  Global Equity (international, global, and world)
  Midcap
  Growth
  Growth & Income
  Index
  Equity Income
  Balanced Equity (more stocks than bonds)
  Balanced Bond (more bonds than stocks)
  Bond
  Gold
  Sector


Unencrypting .NAV Files
-----------------------

If you need access to the plain text price histories, use A0.EXE and A1.EXE to
unencrypt the .NAV files. The .NAV files are encrypted in one of two ways;
either they are encrypted so that Winnav can understand them without a key (a
few of them), or they are encrypted so that Winnav requires a key to understand
them (the majority). A0 will unencrypt the former, and A1 will unencrypt the
latter. If you attempt to run them on the wrong type of data file, they will
tell you. The .NAV files in DATA.ZIP which do not require a key are:

  BRWIX.NAV - Brandywine
  JAVTX.NAV - Janus Venture
  PRITX.NAV - T Rowe Price International Stock
  LLPFX.NAV - Longleaf Partners
  VWNFX.NAV - Vanguard Windsor II
  DJIA.NAV  - Dow Jones Industrial Average
  SP500.NAV - S&P500 Index
  PRFDX.NAV - T Rowe Price Equity Income
  TWBIX.NAV - American Century Balanced
  VWINX.NAV - Vanguard Wellesley Income
  NCINX.NAV - Nicholas High Income I
  LEXMX.NAV - ING Global Natural Resources A
  FBIOX.NAV - Fidelity Select Biotechnology

Examples:
  A0 BRWIX.NAV BRWIX.DAT
will create an unencrypted file called BRWIX.DAT.
  A1 ANALX.NAV ANALX.DAT
will create an unencrypted file called ANALX.DAT.
  A0 ANALX.NAV ANALX.DAT
will give you an error message, since ANALX.NAV requires A1, because a key is
necessary.

A1 will accept a KEY in one of two ways: (1) /KEY= on the command line, (2) a
file called KEY in the current directory.


Encrypting .NAV Files
---------------------

X0.EXE and X1.EXE are programs to encrypt plain text files; they are the
inverses of A0.EXE and A1.EXE. You may need to use them if, for example, you
want to make some modifications to a .NAV data file. X0 performs default
(non-key) encryption, and needs only two parameters: the names of the source
and destination files. For example,
  X0 BRWIX.DAT BRWIX.NAV
forms a default encryption of the plain text file BRWIX.DAT and puts it in
BRWIX.NAV. X1 performs key encryption, and works identically, except that a key
must be present. If there is a KEY file it will be used. If not, or if a
different key is needed, X1 accepts a /KEY= parameter:
  X1 /KEY=FOO BRWIX.DAT BRWIX.NAV


Key
---

Once you have registered Winnav and have the encryption key, select the Key
Update... option on the Update menu to set it. You will also do this when you
receive notification of a key change. This creates a file called KEY in the
same directory as WINNAV.EXE, usually C:\WINNAV, containing the key on a line
all by itself. Keys are case sensitive; FOO and foo are different. The key will
be changed every six months, in January and July. Check near the top of README
(this file) for the date the current key was created, and the expected date of
the next key. Keys are limited to 32 characters, and cannot be blank.


Maximum Data Sizes
------------------

There is no fixed limit on the number of funds that can be analyzed or the size
of each. Approximately seven years of data is the best. With less than that,
the confidence level is not so high that the moving average values have
accurately captured the behavior trends. With more than that, it is possible
that the moving average values are trying to capture several different types of
behavior patterns. For instance, manager changes or objective changes can
easily occur in long price histories. Significant asset growth in a fund can
change the behavior trends too.


Dates
-----

Winnav is written so that the earliest year it can handle is 1960. Since dates
in .NAV files are specified by two digits, this means Winnav can handle
anything from January 1, 1960 up to December 31, 2059. To enter dates such as
1/1/2000 use the form: 1/1/00. The earliest date used in the current set of
.NAV files is 1/1/86. To keep columns lined up in the data files, dates can
have leading zeros, such as 01/01/00; Winnav will ignore the leading zeros.


A $1 Investment
---------------

Since all mutual funds and indexes have different share prices, Winnav puts
them all on the same scale by investing $1 in each of them on the earliest date
for which there is data, and following what happens to the $1 investment as the
share price fluctuates, distributions are paid and reinvested, and share splits
occur. This is why the graphs for all funds start at $1 on the left-hand
vertical axis. This is what is referred to as normalization.


Accuracy
--------

You should treat the results of Winnav as a very good approximation of the real
world. Don't expect the yearly results to match numbers in prospectuses, ads,
or newsletters. Winnav data is typically sampled once a week, on Friday or the
weekend. Also, some distributions are recorded on X-dividend dates, but
reinvestment is not calculated until the next Friday/weekend day, so there will
be a small amount of error. To be more accurate, the NAV on the X-dividend date
should be present, but this is not available for all of the current data sets.
The more accurate method is used for most distributions paid in 1996 and later,
but not for some prior data.


Tax Efficiency
--------------

Some of the sources of data do not provide distribution data explicitly;
instead, they use the distributions to adjust the price history, and then omit
the distributions. This is fine for reflecting the true performance of the fund
(ignoring taxes), but it loses important information. You cannot tell how much
of a tax burden the fund has created, year to year. For this reason, some of
the .NAV files have excluded regions. The purpose of these regions is to omit
certain time periods from the tax efficiency calculation, since they include
price data that has been adjusted for distributions.

Select the Janus Venture fund and switch to its fund tab. Press Ctrl-d to see
the distribution graph. This is an example of a fund for which all the
distributions are present; Janus Venture pays distributions in December of each
year. Now go back to the Funds tab and select Longleaf Partners, and switch to
its fund tab. You will see there are distributions from December 1995 on, but
none previous. This fund pays a distribution every year, just like Janus
Venture, but because the data for this fund comes from a source that uses the
distributions to adjust the price history, the distributions are not present.
The tax efficiency is still correct, however, because the adjusted region has
been excluded from the tax efficiency calculation. Once a data set is acquired,
distributions are maintained explicitly.

Tax efficiency does not mean anything for indexes, such as the S&P500 or DJIA.


Good and Bad Funds
------------------

How were the funds in DATA.ZIP selected? For most of them, they were selected
because they fit these criteria as worthwhile potential investments: low or
no-load funds with low total expenses, long-term, experienced management, and
consistently good long-term performance. But you'll find some outstanding load
funds, and some newer funds too. You'll also find some of the worst funds,
which were specially selected to demonstrate not only the best, but also the
worst that you can find in the mutual fund universe. Some of these are:
  Comstock Capital Value A
  Mathers
  Frontier Microcap
  Eaton Vance Largecap Value A
  Legg Mason Partners Appreciation A

There are also some funds included for their extreme volatility, such as
Bruce, ING Russia, and Matthews Korea. Don't take the presence of data for a
fund as an indication that it is a good investment.

The purpose of these funds is for comparison with other funds to evaluate
potential investments. You won't find many bond funds, because they are
difficult to maintain up-to-date data for. Bond funds pay dividends frequently,
and it is difficult to gather and maintain extensive distribution histories for
them.


Incorrect Data
--------------

If you find data which is not correct, such as missing distributions, please
send email. If you can supply the missing/correct data, that is an added plus.
Say for example Janus Venture, which as a typical smallcap growth fund normally
pays distributions once a year in December, pays an additional distribution in
April. There is a good chance it will be missed, as distributions would
normally not be checked for until December (or January). You can determine if a
distribution is missing by viewing the distribution graph. Often a sharp,
unexpected drop in the NAV value will also indicate a missing distribution; but
if the drop is not sharp, it may be overlooked.


Stocks?
-------

After you register, get the encryption key, and start viewing the entire set of
funds, you'll notice there is one for Microsoft stock. While Winnav is intended
for analysis of mutual funds, it can be used to analyze price trends on other
securites such as individual stocks, as long as there is a price history
measured at regular intervals, ideally weekly closing prices.


Missing Distributions
---------------------

You should be suspicious if you open the distribution graph and see no
distributions. Most funds pay at least one distribution each year, usually in
December. If you see only recent distributions it means previous distributions
have been used to adjust prices, rather than being represented explicitly in
the data. Funds with short histories (two years or less) may not have
experienced enough turnover yet to require a distribution. The detailed data
required for the most precise calculations are: the X-date (date on which the
distribution affected the reported price), amount of distribution broken down
by type (dividend, short-, mid-, or long-term capital gain, in cents per
share), and the reinvest price on the X-date.


Disclaimer
----------

I try to provide accurate, up-to-date data on all the mutual funds and indexes
that Winnav tracks, but accuracy cannot be guaranteed . Use this information
at your own risk. I am not responsible for financial decisions you make using
this program and data. If you are going to make an investment decision, don't
base it solely on this program and data; confirm it first with other sources
of information. Only make the decision if you are willing to accept full
responsibility for it.


Other Mutual Fund Factors
-------------------------

Winnav performs technical analysis on mutual funds. There are other fundamental
factors you should consider before selecting a mutual fund.

(1) Portfolio manager. Who runs the fund? How long have they been in charge?
If not long, were they in charge of another fund prior to that? How was their
record? Some fund families attempt to hide their portfolio managers by stating
their funds are run by a team, the members of which they do not name. They are
attempting to nullify the effects of a future departure of a star manager,
which can cause shareholder assets to be withdrawn, perhaps to follow the
manager to their new location. How old are the portfolio managers? If they are
70 years old, you have to wonder how long they will continue to be on the job,
even if they have an outstanding record. What if you invest, and they announce
their retirement the next day?

(2) Fund objective and market capitalization, as affected by asset growth due
to outstanding recent performance. Some funds that start out as outstanding
smallcap funds become midcap funds with several billion dollars of assets. In
general, smallcap funds are most effective when they remain relatively small
(under a billion dollars of assets). If significant and rapid asset growth has
occured, previous performance should be discounted. Be sure the fund invests in
what you think it does. Some funds with "blue chip" in their name don't invest
in blue chips, etc. Read the prospectus and annual report.

(3) Management fees and loads. Expensive funds need to do that much better than
efficiently run funds just to match their performance.

(4) Turnover. Low turnover funds in general will not generate as much of a tax
burden due to capital gains distributions.

(5) Foreign exposure. Many domestic equity funds have significant overseas
investments. Be sure to consider this if the percent of foreign investments is
an important part of your portfolio strategy.


Bugs, Etc
---------

If you notice a bug (error in the program), or an error with the data (such as
a fund in the wrong category) please send email, with as much detail as you
can.


Anything Missing?
-----------------

Is this documentation complete and easy to understand? If not, please send
email on what was left out, or not explained clearly enough.


Future Releases
---------------

There is a long list of things to improve Winnav and add new features. For
right now this list will not be public, but feel free to email suggestions for
your favorite feature, or your favorite fund or index you'd like to see added.


