The information that FastBreak Pro provides is only part of the information needed for a
good investment program.Consult your investment representative before buying or
selling any investment. Read the prospectus to determine whether an investment meets
your objectives.
EDGE WARE, INC.DOES NOT RECOMMEND SPECIFIC INVESTMENTS
SUITABLE FOR YOUR PERSONAL OBJECTIVES BUT IS LIMITED TO
PROVIDING INFORMATION FROM THE BEST AVAILABLE SOURCES.
HOWEVER, THESE SOURCES ARE KNOWN TO CONTAIN ERRORS, AND
EDGE WARE, INC. DOES NOT ASSUME LIABILITY FOR ERRORS IN
INFORMATION.THIS PRODUCT IS DISTRIBUTED “AS IS” WITHOUT
WARRANTIESOFANYKIND,EITHEREXPRESSEDORIMPLIED.
NEITHEREDGEWARE,INC.NORANYONEELSEINVOLVEDIN
CREATING, PRODUCING, OR DISTRIBUTING THIS PRODUCT SHALL BE
LIABLEFOR ANY DIRECT,INDIRECT, INCIDENTAL,SPECIAL OR
CONSEQUENTIALDAMAGESARISINGFROMTHEUSEOFTHIS
PRODUCT.
Program and documentation copyright 2009 by Edge Ware, Inc. All rights are reserved.
The software packaged with this manual is not copy-protected.Duplication of this
software is limited to one backup copy. No part of this manual may be reproduced or
transmitted in any form without written consent from Edge Ware, Inc.
FastBreak, FastBreak Pro, FastGraph, and the Edge Ware logo are trademarks of Edge
Ware, Inc.
FastTrack is a trademark of Investors FastTrack.
Windows 95, Windows 98, Windows NT, Windows 2000, Windows Me, Windows XP,
Windows Vista, Office, Notepad, and Excel are trademarks of Microsoft Corporation
6.0 Technical Support and Upgrades.............................................15
7.0 FastBreak Pro Operation..........................................................17
8.0 Running FastBreak Pro Optimization......................................39
10.0 Suggestions for Building Better Systems..............................62
11.0 Frequently Asked Questions and Common Problems...........76
Appendix A -- Technical Discussion.............................................79
3
1.0 Preface
Note: A PDF copy of this manual is on your installation disk. We recommend you put
a copy on your computer so you will always have a copy available.
FastBreak Pro has the look, feel and all the functionality of Standard FastBreak. Where
FastBreak Pro is different is that it has the automated system optimizer and builder. The
Standard Manual contains explanations and details of all the functions common to both
versions. This FastBreak Pro manual is to be used in tandem with the Standard FastBreak
manual, and it covers the operation of the Genetic Algorithm (GA) optimizer and other
functions unique to FastBreak Pro.
When we refer to mutual funds in the manual it will also apply to stocks unless otherwise
noted.
FastBreak Pro is a very sophisticated investment strategy development application. If you
are new to FastBreak it can look very intimidating when you first launch the program.
However, if you read the manuals and run the examples provided, you will quickly
develop an appreciation for FastBreak Pro. The vast majority of users very quickly are
making runs and developing effective trading systems.
We have put options in FastBreak Pro that many users will never use - and there is
nothing wrong with that. If there is an option you don’t understand on the initial reading
of the manual, don’t activate it; come back to it at a later time as your experience grows.
One mistake some users of FastBreak have made is to start out activating all the options
and choosing the most complicated strategies. Although we have incorporated a lot of
error checking of user inputs to make the software error resistant, it is possible to get
errors. If you start out making several changes to a run and then get an error, it will be
very difficult to determine what went wrong. We provide examples that are good starting
places. Start slowly. You can setup the examples with a minimum amount of effort,
make one or two small changes to customize to your needs, and be on your way.
As you want to go deeper into designing trading systems you may want to checkout the
resources we listed in the Resources chapter of the Standard FastBreak manual.
4
2.0 Introduction
Edge Ware, Inc. released the initial Standard FastBreak version in early 1996 to allow
investors to design, evaluate and trade fund rotation investment strategies.An early
version of Standard FastBreak was reviewed in the July 1999 issue of TechnicalAnalysis of STOCKS & COMMODITIES, the premier technical analysis investment
magazine. Their review, in part, said, “This is easily the most elaborate fund switchingsoftware we’ve run across, and it’d be worth the time to check it out.” FastBreak Pro is
“light years” more advanced that the version reviewed by the magazine. FastBreak Pro
was introduced in early 2000 and the reception by professional and individual investors
has been overwhelming.
Since the initial release of Standard FastBreak, the number of available options and
parameters for building strategies has increased dramatically.This has made it
increasingly time consuming for those users who want to build complex trading strategies
that take advantage of all the new features.Many users requested the capability to
optimize FastBreak trading systems by exhaustive evaluation of all the parameters
available in FastBreak. This is not practical because of the almost unlimited combination
of parameters. There is also the significant problem of “over-optimization” of parameters
that can lead to fantastic historical performance but poor future predictive performance.
The problem of optimizing a complex, multivariable problem is very difficult.Most
optimization routines have the undesirable characteristic of finding “local” solutions
rather than a “global” solution, that is to say, they find good (local) solutions but not the
best (global) solution. Then there is the added issue of over-optimization. Edge Ware
investigated various methodologies to help automate this process and determined that a
“Genetic Algorithm” provides the best solution.
Genetic Algorithms are a relatively new branch of mathematics.They are a very
powerful technique, but at the same time users don’t need to know all the details of how
the process works. We have tried to make FastBreak Pro as close to a “push the button”
program as possible with little interaction required from the user. Using only the default
parameters you should be able to develop very effective trading systems.
Edge Ware, Inc
* FastBreak Pro relies on the Investors FastTrack database. For those not familiar with
FastTrack, it is a mutual fund/stock database and software analysis package.The
database is updated each day the market is open with the closing prices of thousands of
mutual funds, stocks, and indexes. Users of FastBreak must be subscribers of FastTrack
(call 800-749-1348 or visit www.fasttrack.net) to access the required data. Do not call
FastTrack for information relating to Edge Ware products.
5
3.0 Upgrade Notes
Maintaining Existing FastBreak Trading Strategies
If you have existing FastBreak strategies that you like we recommend that you keep the
old version of FastBreak on your computer until you have verified that the strategies
produce the same results with the new version. Prior to installing the new version of
FastBreak go to the folder where the existing version is located, typically ftbreakp for Pro
users, and find the file ftbreakp.exe.Rename this file ftbreakpV5.exe.Now put a
shortcut to this file on your desk top.
We also recommend that if you have a prior version then install the new version in a new
folder, e.g., ftbreakp6. This will allow you to segregate your new files and systems that
are associated with this new version.
If you see significant changes in favorite trading strategies then continue to run these
strategies in your old version of FastBreak until you have a chance to create new
strategies in the new version. You can have multiple versions of FastBreak installed on a
computer so there is no problem running these old strategies.
Changes in Version 6.2
This section will cover enhancements in FastBreak Pro Version 6.2 and is of interest to
users of previous versions of FastBreak Pro.
Version 6.2 (V6.2) is the first release version of V6.X It has exactly the same
functionality of beta V6.1 that some users may have tested.
V6.1 of FastBreak Pro was a beta version that could be run by users of V5. We made the
beta available free of charge for V5 users. V6.1 will continue to function; however, going
forward we will not maintain the beta version. Now that V6.2 is the official release
version any future enhancements or bug fixes will build upon V6.2 If bugs are fixed in
version 5 then upgrades of version 5 will be made, i.e., V5.5, V5.6 etc. Users of versions
prior to Version 6 will need to upgrade if they want to take advantage of any future
enhancements. Our policy is to provide technical support to the most two recent versions,
e.g., V5 and V6
Trendline Stop and Buy Filters
Version 6 provides trendline Buy Filters and Sell Stops. Trendlines are one of the oldest
and still most useful technical analysis tools. Trendlines can be used to determine when a
stock or mutual fund has broken down in an upward move, i.e., used as a sell Stop, or
trendlines can be used to determine if a downward move has ended and it is safe to buy,
i.e., Buy filter. The vast majority of trendline users use a manual method to draw the
trendline on a paper chart or a computer screen. Programming a computer to calculate a
6
trendline that a human brain can draw in a few seconds is a daunting task; however, there
is a tendency when manually drawing trendlines to “force” the line to other expectations.
A mathematical algorithm is not subject to such expectations, but at the same time cannot
“see” other potential complications and complexities.
The optimizer in FastBreak Pro will help determine if a trendline Buy Filter or Sell Stop
is effective. It will determine if a logarithmic or arithmetic trendline is most effective,
and determine the parameter that controls the way the trendline is calculated.
Adding trendlines to the Buy Filter and Stops required changes in the layout to a number
of display screens, but you should quickly become comfortable with the new layout.
Details of the Trendline algorithm is provided in the Appendix A of the Standard
FastBreak manual, and issues to consider when using Trendlines with the optimizer are
discussed in Appendix A of this manual.
NOTE: The algorithm to determine trendlines is very computer time intensive. You will
notice a long delay at the beginning of the optimization as trendlines are calculated for
all trading family members. If the trading family is large, i.e., hundreds of members,
then it may take an hour or more before the first strategies begin to be evaluated. The
program may look like it is frozen but it is busy calculating trendlines. See Appendix A
for details.
Delay Activation of Stops in Optimizer
FastBreak Pro V6 adds an option to the optimization process to suspend all Stops for a
user defined period of days after a fund is purchased. We added this feature for a couple
of reasons. One, we have users who use fund families that absolutely prevent exiting a
fund for a fixed number of days, e.g., 7 and 30 days are quite common, after a fund is
purchased. The second reason is that some companies will allow you make short term
trades, but limit you on the number of short term trades. Fidelity for example, will only
allow a limited number of short term (less than 30 days) trades during a 12 month period.
If a users wants to build a trading strategy to either prevent or limit the number of short
term trades this new feature will prevent any of the stops from being effective. The
option is at the top of the screen where Stop optimization ranges are set.
Changes in Version 5
The following list of changes covers upgrades from Version 4 to Version 5. Some users
may be upgrading from very old versions, and a section follows to cover upgrades from
Version 3.You may ask how Version 5 of FastBreak Pro is different from previous
versions and if you should reread the manual.The answer is that the changes are
extensive and we suggest you read the entire manual to understand the enhancements.
The examples are for the most part unchanged, and you can skip these sections if you are
a veteran FastBreak Pro user.
7
Changes between Version 4 and Version 5
Version 5 of FastBreak Pro dramatically improved the optimization time when using
FNU data files. FNU files are in a simple data format that FastTrack uses allowing a user
to create data that isn’t in the FastTrack data base. Users create FNU files for a wide
range of reasons. For example, users who want to create trading systems using synthetic
versions of high beta index funds. These funds haven’t existed for a long period of time
so systems can’t be tested over a long period of market history; however, it is quite easy
to create synthetic versions of these funds that extend over a long period and the data can
be stored in the FNU format. See FastTrack Help for more information on the FNU
format. FNU data can’t be read as quickly as data in the FastTrack database. The
FastBreak Pro optimizer would read the trading family data each time a strategy was
evaluated. When FNU data was used this would slow the optimization process by a
substantial amount.
Version 5 of FastBreak Pro was modified to read the data only once at the start of the
optimization process. This modification allows the optimizer to run approximately four
times faster. There will only be a small, perhaps 10%, improvement in optimization time
when using only data from the FastTrack database. There is no effect on the execution
time of a single strategy. If a FastBreak Pro user selects the Optimize Family option the
new version will not optimizer any faster than the old version. This is because when the
Optimize Family option is used custom families are created for each strategy evaluated;
therefore the family data is read for each strategy so the data is read over and over again
just like previous versions of FastBreak Pro.
Capability to build market timing systems and signal files.
oWe believe this is the most exciting new functionality. The optimizer and out-
of-sample testing capability in FastBreak Pro make building market timing
signals a snap.
oThis functionality was developed, in large part, to better trade individual
stocks. Over the years we have found that FastBreak stock trading systems
have the potential for fantastic returns, but we have also found that controlling
drawdown is a challenge in bear markets. We have found that even in severe
bear markets there will be stocks that rally strongly, however, these rallies
often fail resulting in a whipsaw trades. We saw the need for market timing
signals that would keep the trading system out of the very worst of markets.
There are numerous market timing signals available but so many of these are
not robust and fail the test of time.Also, we wanted to develop our own
signals that met our needs, e.g., switches per year, drawdown, markets traded
etc.
oOne disadvantage of the many market signals available is that they are
developed for a specific index, e.g., S&P 500 Index.Often there is a
divergence in different stock indexes, i.e., small cap stocks performing well
8
while large cap stocks are not. FastBreak allows the use to combine multiple
indexes (or any stock, fund, FNU file) into a family. This allows the user to
build signals that stay in a buy mode if any of the indexes are in an uptrend
and will only signal a sell signal if all are in a down trend.
oWe have used this capability to build signals for trading diversified mutual
funds and individual stocks. We have also used it to build market sector
specific signals; for example, we have built signals to build trading systems
for energy stocks.
oSignal file building systems can be run like a regular FastBreak trading
system, except the output is a FastTrack signal file. This signal file can then
be used in a FastBreak trading system or other FastTrack applications.
Rank using Ulcer Performance Index (UPI). This option will tend to purchase high-
UPI funds and produce strategies that have a high UPI equity curve.
Rank using Sharpe Ratio. This option will tend to purchase high Sharp Ratio funds
and produce strategies that have a high Sharp Ratio equity curve.
Removed the Long Rank + Short Rank momentum ranking option. This option had
the tendency to give ambiguous ranking order because the value produced was an
integer (whole) number and more than one fund could have the same value.
Removed the Families/Individual option on the Funds/Index tab. This option was
never very useful.
Changed the logic in the Harnsberger option. Previously, Harnsberger would only
trigger a sell if you were not holding the top Buy ranked fund. This made sense on
early versions of the program when we didn't have buy filters. Now, it is very
common for you not to hold the #1 Buy ranked fund because of the filters. Also, with
some users having large numbers of funds or stocks in their trading families, the
difference in rate of change between the #1 Buy ranked fund and the Nth Buy ranked
fund may be very small. However, the Nth ranked fund may meet all your buy criteria
when the #1 fund does not. We changed the logic so that it will always try to buy a
top ranked fund that meets your buying criteria. The fund sold must meet your
minimum holding period value. This is now very similar to setting the top % to zero
percent. One difference is that if more than one fund can be sold on a given day the
Harnsberger option will sell the weakest (as measured by Sell ranking) fund. We now
put an H in the Why Detail file column to indicate a Harnsberger sell.
Stop loss using a short/long Exponential Moving Average (EMA) crossover. This is
similar to the current EMA stop except that the fund NAV is smoothed with a short
term EMA.
9
Buy filter using a short/long Exponential Moving Average (EMA) crossover. This is
similar to the current EMA Buy filter except that the fund NAV is smoothed with a
short term EMA.
The next four enhancements are all similar in that they allow the user to modify stop
or buy filter options according to market conditions or a user defined input file. The
modification is triggered when an index (or any user defined fund or FNU file) drops
below its user defined EMA line. For example, if the S&P is used as the index then
the parameters are not modified as long as the index stays above a user defined EMA
line. If the S&P falls below its EMA line then a factor is applied to the standard
value. A simple example is that when the market is in a strong uptrend high beta
funds may be a good investment option. However, when the market is in a downturn
or trading market it may be prudent to purchase low beta funds.
oAdjust the Trailing Stop Loss value based on market conditions or external
file input.
oAdjust the EMA Stop value based on market conditions or external file input.
oAdjust the Beta Buy filter value based on market conditions or external file
input.
oAdjust the EMA Buy filter value based on market conditions or external file
input
Beta buy filter can now be a non-correlated beta as an option. Beta is the ratio of the
volatility of a fund divided by the volatility of an index (typically the S&P 500),
multiplied by a correlation value between the fund and the index. If a fund has a low
correlation to the index it can have a low beta but be a very volatile fund.An
example would be a gold fund. Gold funds have a low or even negative market
correlation and yet are very volatile. Filtering on standard beta may not filter out a
gold fund. Using the non-correlated beta filter allows a user to mix a wide range of
fund types including those that may not have a high market correlation value, e.g.,
bonds, international etc., in a trading family and have the ability to filter those with
high volatility.
Improved the BOSS stop option to be more effective with some ranking methods.
Ability to begin the effectiveness of a stop option later than the first day. Previous
versions required the stop to be in effect on the first day a fund was purchased. Some
users have the requirement to hold a fund for a fixed number of days after purchase.
They can now start a stop after this number of days.
Ability to search the Buy and Sell ranking list by fund symbol. Some users have very
large trading families and it is difficult to locate a particular issue in the ranking list.
This option allows the user to do an efficient search for the fund symbol.
Additional Changes between Version 3 and Version 5
10
Note: You can load trading systems developed with Version 3 of FastBreak into this
new version, however, you must input the beta /correlation index and calculation
period on the Funds/Index tab. After you have entered this information you will need
to resave the DFT file.
Here is a short list of some of the major enhancements:
Better Opportunity Sell Signal (BOSS)
Numerous buy filters: EMA, parabolic, RSI, beta, and correlation
New information in summary output (Beta, Alpha, and Correlation)
New information in detail output to explain why a fund was sold
Because of changes in program calculation logic, you may see changes in results from
your trading systems developed with prior versions of FastBreak Pro. Here are just a few
examples:
We removed the Adaptive Moving Average as a stop option. This was done because
we never found the AMA to be a particularly effective stop option, and we wanted to
make room on the Stops tab for a much more effective new option called BOSS.
Change in the logic for the Rate of Return Sell stop. We now check a candidate fund,
prior to purchase, to verify that it exceeds the stop parameters specified.
11
4.0 How FastBreak Pro is Different from Standard FastBreak
Our intent when we designed FastBreak Pro was to automate development of mechanical
trading systems. We wanted to provide the capability to build very complex strategies
while taking the “grunt work” out of the development process. Edge Ware, Inc. believes
that mechanical trading systems are appropriate for most investors, both professional and
individual. Mechanical trading systems have very specific trading rules, can be back
tested for historical performance, and give specific trading buy and sell signals for funds
or stocks. There are no charts for the investor to interpret or second-guess. One of our
favorite books is Robert Pardo’s Design, Testing, and Optimization of Trading Systems.
Here are his words: “Why use a trading system? The purpose of trading is to produce
profits.The main reasons a trading system helps this pursuit are its quantifiability,
verifiability, consistency, and objectivity.”
Standard FastBreak can be used to develop parameters for mechanical systems using data
inspection and graphical evaluation to determine robust parameters. This can be time
consuming and does not easily allow the user to take advantage of all the parameter
combinations. For example, a user may want to reduce the maximum drawdown (MDD)
of a trading system. This can be accomplished by holding additional funds, adding a
correlation check, trying various stops, or combinations of all these parameters, This can
be accomplished, but only with much manual interaction and study. FastBreak Pro uses
very sophisticated techniques to automatically build complex trading systems with
minimal manual interaction.
The majority of this manual refers to mutual fund investing. However, FastBreak Pro is
equally effective for developing stock trading systems.
FastBreak Pro incorporates a proprietary breakout technique (BOOM) that allows entry
into a fund earlier in a price breakout than can be obtained with standard ranking
techniques. This method has proven to be very effective in our increasingly dynamic
markets.The nature of this option makes manual selection of its parameters very
difficult, but the GA optimizer is very effective in finding effective parameters.
Here is an example of how to use FastBreak Pro. You may want a trading system that
trades international funds. You would first specify a trading family (list of funds that you
are interested in trading) and specify your performance criteria.Your performance
criteria may consist of a maximum acceptable draw down (MDD), a maximum number of
fund switches per year, a minimum acceptable UPI, and maximum profit within these
limits. At this point you click the execution icon and let FastBreak Pro do the work.
FastBreak Pro will try all the different trading parameters and combination of parameters
that are available in FastBreak Pro to maximize your investment return while meeting
your other constraints (MDD, UPI, and switches per year).FastBreak Pro can also
optimize your trading family, this is to say, FastBreak Pro will reduce your initial choice
of funds to a more optimized subset. There are almost unlimited parameter combinations
12
to try, and this is why FastBreak Pro uses a very sophisticated genetic algorithm (GA) to
evolve the parameter choices.
Determining optimized parameters that maximize your investment objectives is only part
of the problem. Trading system developers must constantly be wary of “overoptimization” or “curve-fitting” of parameters. FastBreak Pro avoids over-optimization
by using various techniques, but the most important technique is automated “walk
forward” or out-of-sample testing. This simply means that a portion of recent historical
data is used to test and confirm that the trading system continues to have good predictive
performance. The user can actually watch and see when over-optimization is starting to
occur during the optimization process.
When FastBreak Pro has completed the optimization process, you can automatically save
the best trading system parameters. These trading parameters can be loaded with a couple
of mouse clicks into FastBreak Pro and run on a daily basis to determine if any trades are
to be made. Trades are mechanical, that is, the specific funds to buy and sell are named
on specific dates.
The professional money manager or individual investor can quickly use FastBreak Pro to
develop numerous trading systems. The money manager may have a need to develop
trading strategies that meet the risk tolerance of various clients. For example, one client
or group of clients may have a high risk tolerance and want to maximize annual returns.
A second set of clients may be very risk averse and be satisfied with reduced returns to
obtain that reduced risk.The money manager can specify the level of risk and let
FastBreak Pro determine the trading parameters.
The individual investor may have a need for a variety of trading systems. For example,
an individual may want to have a small portion of his investments in a very aggressive
trading system, a larger amount in a more conservative system, a third portion always
invested in international funds, a fourth account with an annuity company, and finally, a
portion in bond funds. FastBreak Pro can quickly and easily allow the investor to develop
trading systems for each of these accounts and modify or re-optimize the trading systems
in the future as new mutual funds become available.
13
5.0 Installation
New users should first read the Standard FastBreak manual supplied with your purchase.
That manual describes all the parameters and options available and how to operate the
basic functionality. It is important that you understand how the various options and
parameters in FastBreak Pro operate.This supplemental manual focuses on the
automated optimization process in FastBreak Pro.
FastBreak Pro installs exactly like the standard version of FastBreak. Please refer to the
installation instructions in the standard FastBreak manual.
The FastBreak Pro optimizer is very numerically intensive. Optimization runs will
typically take hours or overnight. Remember, this is computer time, not your time!
14
6.0 Technical Support and Upgrades
Note: Do not call Investors FastTrack for technical support.
Do not use the 800 order line number for technical support. This is a commercial
order line that only takes orders and they are not equipped to answer any questions.
Any messages left with the order line will not be returned.
Please read this entire manual and check the FAQ chapter before calling for support.
We have tried to make this software and documentation as user-friendly as possible. You
should have a basic working knowledge of Windows, i.e., how to copy and move files,
change directories, select drives, etc.
Technical support is provided by email or via the Discussion board. You will usually
receive a response within 24 hours.We encourage you to post questions of general
interest on the Discussion area of our web site www.edge-ware.com. This allows us to
help several users at once. If you post a question on the web site, email us to let us know
you posted the note.
We can be contacted at email2ew@edge-ware.com. This address will send your note to
both Ken and Nelson and will help you receive a timely response. We recommend that
you always use this address. If one of us is traveling or otherwise unavailable your note is
likely to be answered sooner if it is sent to both of us.
If your support issue can’t be handled by email, we will arrange for telephone support.
We charge $25 for replacement installation CDs.
There is no charge for most technical support. Problems with reinstalling FastBreak is
our number one tech support problem. We receive a large number of support requests
from users reinstalling FastBreak because of hard drive failures, purchase of new
computers, etc.We reserve the right to charge $25 to assist in reinstallation of the
product, starting six months after purchase.If you follow the following steps you
shouldn’t have any problem reinstalling.
Reinstalling FastBreak
You MUST use the installation CD to reinstall. We have had a number of users just try
to copy files to the new computer or hard drive. This will not work. Here are the steps:
Install FastTrack first
Do at least one download and update of FastTrack data
15
Verify that the FastTrack account number on this computer matches the account
number on the FastBreak CD
Install FastBreak using the installation CD
Go to our web site and download the latest upgrade, if one exists
Upgrades
We provide minor upgrades to FastBreak on our web site, and if you encounter an error,
we suggest you download the latest version of the software because this will often solve
the problem. The Edge Ware Internet Web site (www.edge-ware.com) always has the
latest version for download.
FastBreak is constantly improving, and we try very hard to get those improvements in the
hands of our users as fast as possible. As we make changes new versions are often placed
on our web site for free downloading along with a notice in the Discussion area of the
website with comments about the upgrade.This creates problems with keeping
documentation up-to-date for the latest version because it isn’t practical to rewrite the
manual each time we make a change. In most cases, the installation you receive will
actually be the most recent version, and there may be an addendum in this manual that
will describe how the recent version is different from what is described in the main body
of the manual.
16
7.0 FastBreak Pro Operation
We recommend that you read this manual in the order it was written; however, if you
have experience with Standard FastBreak or just can’t wait to see the program in
operation, go to the Examples chapter. Note: The way FastBreak Pro looks on your
computer may appear slightly different than the views in this manual.This is the
result of screen resolution differences or you may have a newer version of the software.
Strategy Screen
After you launch FastBreak Pro use the following icon to bring the first optimization
screen:
The first of the optimization strategy screens looks like the following:
Note: When you place your cursor on the icons a description is displayed.
17
To switch back to the “Standard” FastBreak screens described in the standard manual use
the icon on the far right of the icon tool bar:
The following icons are used to control the standard FastBreak options. These icons
should be familiar to users of the standard version:
The following icons are used to control the strategy optimization aspects of FastBreak
Pro:
The first strategy screen is used to select the Buy/Sell Strategy, Trading Family, Money
Market Fund, in-sample and out-of-sample trading dates, and optimize the trading family.
The first item to select is the trading family. Use the following button to select a trading
family:
This will open a window that allows you to select from the standard FastTrack defined
families or any of the user-defined families. You can use the FastTrack family editor to
build your custom trading families.
If you want to optimize the trading family use the Optimize Family check box:
Note: This is an advanced feature and we recommend using it only after you have
become familiar with FastBreak Pro.
FastBreak Pro will try different combinations of funds from your trading family to obtain
better results. If this option is not checked, FastBreak Pro will always use all the funds in
your trading family.
Note: If you use this option you can only use a seven character name when you save
your best trading strategies. The reason is that FastBreak Pro will save the optimized
trading families using this name. It will also append a number between 0 and 9 to the
end of the name. This will make the optimized family eight characters long which is
the naming limit for FastBreak Pro and the old DOS version of FastTrack. More
about this note later in the Example chapter where an example uses this option.
18
2ndNote: the Optimize Family option is not available when using trendline Stops or
Buy filters. See Appendix A for details.
To prevent over-optimization of the trading family, enter a Minimum Family size value:
This option will keep a reasonable number of funds in your trading family and prevent
finding a final optimized trading family that has too few funds to work well in the future.
The minimum family size is the lower limit on your trading family. For example, you
may have a trading family of 40 funds, and you may want to keep at least 20 funds in the
family. FastBreak Pro will build temporary trading families that are subsets, containing
between 20 to 40 funds, of the full 40 funds. However, it will not build families with less
than 20 funds. Note: It is important to select a Min Family Size or an IS Start Date
such that you have enough funds under the worst conditions. Remember, some of the
funds in your family may not exist at the beginning of the test period. If you set the
Min Family Size too small, a test family could be built of these funds. This could result
in a condition where not enough, if any, funds are available at the start of the IS test
period. A second issue to remember is that FastBreak needs data prior to the start of
the IS start date to do an initial ranking and to calculate other parameters such as
correlation, EMA stops etc.Therefore, you should look at your trading family in
FastTrack (at least the maximum number of ranking period number of market days
prior to the IS start) date to determine how many funds don’t exist. Your minimum
family size should be at least this number plus the maximum number of funds you
plan to hold in the strategy. For example, if your trading strategy will hold up to four
funds, and your trading family has 20 funds that didn’t exist prior to the IS start date,
then your Min Family Size should be set to at least 24.
The family optimizer option was intended to optimize a “reasonably” sized trading
family. It was not intended to encourage the user to load a family of several hundred
or even thousands of funds and optimize the family down to the best 20 funds.
There are four dates that need to be entered:
The In-Sample (IS) Start Date is the date that you want to use to start the backtesting
optimization. The IS End Date is the final date for the backtesting optimization. If you
try a start date too early, i.e., one that violates the stops or other parameters, FastBreak
Pro will set the earliest start date possible. Note: Do not try to overrule the start date
with an earlier start date value or you can get an error during execution.
The Out-of-Sample (OS) Start Date and OS End Date define the period that FastBreak
Pro will use to do OS testing, also known as walk-forward testing, to verify the strategy’s
19
predictive ability. Normally, the OS date range immediately follows the IS optimization
date range. FastBreak Pro does not require this typical order. For example, the OS
testing could proceed the IS date range. The chapter on Suggestions for Building Better
Systems has results from a study that reversed the typical date range order. Note: If you
reverse the IS and OS date orders, be aware that FastBreak Pro only performs error
checking on the IS Start Date to be certain enough data exists to do the initial ranking
and other calculations. For guidance on how to set the OS Start Date if you reverse
the order, try the traditional date order and see how early FastBreak Pro allows the IS
Start Date to be set. Now, use this or a later date in the OS Start Date as the earliest
possible date.
In general, if you want FastBreak Pro to optimize an option use the check box. FastBreak
Pro will take this as a sign to consider the option. This doesn't guarantee a particular
option will be used, but it will be considered in the optimization process. For example, if
you only want to use “Buy and Sell using Rank” as a trading strategy, then select only the
box for Buy and Sell Using Rank. However, if you want FastBreak Pro to evaluate and
try other strategies then check the box for those strategies.
You can select individual buying and selling strategies or the “Buy and Sell Strategies
(All Available)” check box to select all strategies for consideration. Note: We do not
recommend using the All Available option because it can result in extreme run time
without improvement in trading systems. Some of the ranking strategies are extremely
calculation intensive. In developing our own strategies, we only select one ranking
method per optimization run. See the Suggestions chapter for additional guidance.
For every variable that can be optimized in FastBreak Pro, you can input a range of
parameters to try. For example:
If you want to try Buy and Sell Using Rank, you would check the box and this would
indicate to try that parameter option. Next, FastBreak Pro needs a range of parameters to
try. In the above example, FastBreak will try Buy Ranking parameters between 10 and 95
days, and Sell Ranking parameters between 10 and 95 days.During optimization
FastBreak Pro will search this range to find the optimum set of parameters. Note: The
first range of text boxes is listed at Parm1 and the second range of boxes as Parm2. In
the case of some ranking strategies, such as simple Rank, Parm1 = Buy period and
Parm2 = Sell period. For other strategies, it will be a little more complicate.To
understand exactly what Parm1 and Parm2 reference for each strategy, go to the
Standard FastBreak Strategy Tab. Select a particular strategy in the pull down menu
and look at the parameter titles in left central part of the screen. For example, for
simple ranking it is the Buy parameter and Sell parameter. The left variable = Parm1
and the variable to its right is Parm2. For ranking strategies that use three variables,
20
such as GAM and MAM, you will see text box ranges on the optimizer screen that
allow you to insert ranges for this third variable.
You can change the range to values other than the default values. Although the Genetic
Algorithm (GA) is very powerful, there are two advantages to keeping the range small.
First, the GA will converge much faster, thus reducing run time. The other advantage is
that FastBreak Pro tries a fixed number of different values between the minimum and
maximum range. The technical reason for this has to do with the way GA’s work, but the
effect is that to properly sample the range looking for optimum parameters, keep the
range as small as practical. For example, if the ranking range is 6 to 50 days, FastBreak
may only try 32 different values between 6 and 50 days. If a much larger range is used,
then the sampling may be too large. How can you determine a reasonable range? First,
the defaults are a very good starting point. However, if you find that the optimized
parameters FastBreak Pro determines are near the minimum or maximum value of your
range, then this is an indication that the range needs to be extended. In our example
above, if you happen to notice that the best strategies found by FastBreak have Buy or
Sell ranking periods near 50 days, then you would extend the upper range of possible
values and rerun the optimization. Note: If you know the exact values of a parameter
you want to use, then put that value in both the minimum and maximum box. This
will force FastBreak Pro to use only that value.
If you want to force the Sell ranking period to be the same as the Buy ranking period, then
check the following:
This option is explained fully in the standard FastBreak manual.
To indicate to FastBreak Pro which types of curve-fits to try when using Slope, check any
combination of the following boxes:
When using the (NC) alpha ranking method, you need to enter the alpha index to use.
The default is the S&P 500 (SP-CP).
Short EMA/Long EMA
Users of earlier versions of FastBreak Pro found that the optimizer often found an
optimum parameter in which the Short EMA was actually a larger value than the Long
EMA. This happened because the optimizer found that buying the weakest funds was
21
often the best solution historically. This can be compared to the “buy the dips” technique
of the late 1990s. The unfortunate problem is that, in a bear market, this is a losing
philosophy. FastBreak now has the ability to force the optimizer to find a Short EMA
value that is, in fact, smaller than the Long EMA value. To force this condition check the
following option:
Options Screen
To bring up the next group of parameters screen use this icon:
This screen is mostly self-explanatory with the parameter choices discussed fully in the
standard manual. Again, check those options that you want FastBreak Pro to consider
during optimization:
22
If you check the Correlation box, FastBreak Pro will try a maximum correlation, between
funds to hold, for some strategies:
The optimizer will try to find an optimum maximum correlation value along with an
optimum period to calculate the correlation values. The best strategies that are found
may or may not have the correlation option activated.
Exclude Money Market from Ranking has three choices:
You can force FastBreak to include or exclude the money market fund, or let FastBreak
Pro optimize the decision of determining if money market should be included or
excluded. We recommend the Optimize option.
To have the optimizer determine the Money Market Minimum Holding Period put a range
of (calendar) days in the following boxes:
To consider including the Harnsberger or POP options in your trading strategies, use the
check boxes. You will need to include a variable test range if you use the POP option.
To consider using the BOOM function use the following screen options:
This is a very powerful proprietary option available only in FastBreak Pro. The exact
process of how the option works is not fully disclosed at this time because of the
proprietary nature. BOOM often allows a strategy to purchase a fund much earlier in its
up-trend than would be captured by standard ranking methods. Note: The BOOM option
23
will not work with all the ranking methods.See the Standard manual for a full
description.
You can force FastBreak Pro not to use the option, to use the option, or allow FastBreak
Pro to optimize whether to use the option.This option is very effective, and we
recommend that you check the Yes box to always use the option.
The Signal File is not an optimized option. If you select a signal file it is always used.
However, the Market Risk variable is optimized.
FastBreak Pro will try different percent risk values to meet your investment objectives. If
you know that you want to be 100% out of the market on a signal file sell, then put a
range of 0 to 0 in the risk text boxes. This will force strategies to always go to money
market on a signal sell. We recommend that you start with a range of 0 to 0. Note: If
you use a Market Risk other then zero (zero forces all positions to go 100% into money
market, i.e., zero risk) you must select an IS Start Date and OS Start Date that occurs
when your signal is on a Buy. This is because the optimizer assumes that the Balance
funds options are active. See Standard manual for additional details. If you don’t
follow this guidance, the performance values will be somewhat distorted. Also, see the
notes in the Standard manual regarding interpretation of Detail file results when the
Market Risk value is other than zero.
The brokerage STRF minimum holding period, Short Loss and Delay values are set to the
user defined values, and these parameters are described in the standard FastBreak manual.
To have the optimizer determine the number of funds to hold to meet your performance
parameters use the following:
In this example, the optimizer will determine if holding 1, 2, or 3 funds is best. If you
know you want to hold a specific number of funds, put that number in both range boxes.
Note: When optimizing for maximum return, the optimizer will often find strategies
that hold only one fund, or the minimum number of funds you allow. This may not be
the most robust system. See the Chapter on Building better Systems for more advice.
24
The optimizer will determine the Top% value for your strategy using the range of values
in the following boxes:
In this example, a value between 10% and 50% will be optimized.
To use the Adjust Buy and Sell options check either the Yes or Optimize buttons in the
following screen:
If you use Yes, the optimizer will always try the adjustment option.If you check
Optimize, the optimizer will “consider” using this functionality.
See the standard manual for complete details on this option. If you decide to use the
function, you will need to input the Adjustment Index (the default is SP-CP, the S&P 500
Index) as well as ranges for the adjustment factors and the EMA ranges. Remember, an
adjustment factor less than 1.0 will decrease the parameter values, while adjustment
factors greater than 1.0 will increase those values.
Note: If you are using one or more of the curve fit ranking methods, a minimum of
two or three market days are required to calculate the curve fit. If the adjustment
factor to the Buy or Sell ranking period results in values less than three days,
FastBreak Pro will internally default to a minimum of three market days.For
example, if the Buy ranking period is four days but the adjustment factor is 0.25 this
25
would result in only one day to calculate the curve fit. The curve fit equations require
up to three days to make the calculation, and FastBreak Pro will set the adjusted buy
ranking period to three days.
Note: If you use this option, the maximum adjustment factor can impact the IS start
date. For example, if you input a maximum Ranking value of 90 days and a maximum
adjustment factor of 2, then the IS start date will need to allow 180 days of data for the
initial ranking.
User Min Hold
It is recommended that when setting the User Min Hold maximum range value to span
“monthly” periods of time, i.e., 35, 65, 95 days. In other words, when setting the
maximum value it is better to choose 35 days rather than 28 days, or 65 days rather than
59 days. This is especially true for bond trading systems because bonds make monthly
distributions and it is important to capture the effects of these distributions. The values
are calendar days.
Use Log Trend Line
The FastBreak Pro optimizer can be used to optimize the nature of trendlines. It can also
be used to determine whether Linear or Logarithmic trendlines are best.
If the Yes option is chosen then only logarithmic trendlines will be used. This option
controls both the Stop and Buy Filter trendlines.In other words, you can’t mix
logarithmic and linear trendline options for Buy filters and sell Stops. If the No radio
button is chosen then only linear trendlines will be used.
If the Optimize option is selected then the optimizer will try both logarithmic and linear
trendlines to determine which works best.
26
Stop Loss
Click this icon to bring up the stop parameters page:
Stop Begin Day
This option is used in the optimization process to suspend all Stops for a user defined
period of days after a fund is purchased. We added this feature for a couple of reasons.
One, we have users who use fund families that absolutely prevent exiting a fund for a
fixed number of days, e.g., 7 and 30 days are quite common, after a fund is purchased.
The second reason is that some companies will allow you make short term trades, but
limit you on the number of short term trades. For example, your mutual fund company
may allow a limited number of short term (less than 30 days) trades during a 12 month
period. If a users wants to build a trading strategy to either prevent or limit the number of
short term trades this new feature will prevent any of the stops from being effective until
27
a minimum number of calendar days is reached. The option is at the top of the screen
where Stop optimization ranges are set.
There is a single value in the text box. In the above example using 30 would deactivate
ALL stops until 30 days after a fund is purchased. The default value is 1 day, which will
make all activated stops effective on the day the fund is purchased.
Note: A user needs to set the minimum value in the User Min Hold period range to a
similar value. The User Min Hold controls the minimum holding period before a fund
can be sold due to ranking. It should also be noted that MMKT Min Hold controls the
minimum holding period for the money market fund. Most fund companies don’t have
restrictions on money market minimum holding periods. Finally, this feature will not
override a market timing signal sell signal. In other works, a market timing signal will
always be acted upon.
After running the optimizer and saving one or more DFT files, load the DFT file into
FastBreak. Go to the Stop Tab and you will see that the start day of all activated Stops is
set to the user defined value set in the Stop Begin Day box.
Setting Stops
Individual stop loss options can be chosen for consideration along with their ranges.
Checking a box next to a Stop option will tell the optimizer to “try” the stop. That
doesn’t imply that the Stop will be effective or be forced to be used.
Two-period stop losses can be used. This means that a stop function will have one value
during the first period and a second value during the second period. The first period starts
on the day set in Stop Begin Day which was just described. FastBreak Pro can optimize
the day the switch is made to a second period. The Day Range columns are used to
specify a range for FastBreak Pro to try for the switch to the second set of parameters.
For example:
This setup will tell FastBreak Pro to try the trailing stop loss. A Loss % value of between
5% and 20% will be tried starting on the day set in Stop Begin Day. Then, FastBreak
Pro will determine which day, between 10 and 50 (calendar) days, after purchase, to
switch to a second stop loss value. FastBreak assumes that the second stop period, if
selected or used, is available until the position is exited. This two time period option can
be very useful if your mutual fund trading company charges you a fee for short term
trades. For example, many users trade the Fidelity Select funds which have a trading fee
of 0.75% if traded in less than 30 days.FastBreak Pro may determine that a loose stop
works best during the first 30 days a fund is held, and the stop tightened after the initial
30 days.
28
You are not required to use the second period. If you want a single stop value to be found
for the entire time period a fund is held, check only the first box and put a large value,
e.g., 9999, in both date range fields:
Note: It is very important that you understand this concept. Many users have only
checked the first stop range and accepted the default Day Range of 10 to 50 days. The
effect of this is that the optimizer may select a stop but the stop gets turned off
somewhere between 10 and 50 days. At this point the strategy may not have any stops
activated.
If you only want the stop in effect during an initial number of days after a fund is
purchased replace the 9999 values with the number of calendar days you would like. For
example, if you want the stop in effect for 20 days after purchase then put 20 in both Day
Range fields. Or if you don’t know when you want the stop to be deactivated, you can
put a range of days in the Day Range fields.
Other Stops
All other stops are activated just as the above example using the Loss% option. Some
stops have multiple variables. For example, Parabolic has a Start value and an
Acceleration value. Just move from left to right on the screen to understand how the
options are set up:
In this example, the optimizer will try Start values between 0.01 and 0.03, and it will try
Acceleration values between 0.0001 and 0.003. It will then optimized a switch over day
between 10 and 50 days after purchase and then find Parabolic values for the second
period.
Adjust Trailing and EMA Stops
These options are covered in the Standard manual.A few comments on how the
optimizer uses the options. Obviously, if these adjustment factors are to be used then the
corresponding stop, i.e., Trailing Loss or EMA Stop, need to be selected.
Another consideration is that the Adjust EMA Stop option can affect the earliest IS start
date. FastBreak Pro will look at the maximum adjustment factor and the maximum EMA
Stop value used. The IS start date can be adjusted to allow enough data to calculate the
worst (longest) EMA value.
29
Buy Filters Screen
Click on this icon to bring up the Buy Filters screen:
Buy filters are checks that can be applied to a fund prior to purchase. See the Standard
manual for a complete description of all the available options.
To consider a Rate of Return (ROR) Filter on any fund purchased use the following:
In this example, annualized rates of return from 4% per year to 10% per year will be
tested.The rates of return will be calculated using day ranges from 20 to 40 days.
FastBreak Pro will determine both the ROR value and the number of days over which the
30
ROR is to be calculated. For example, FastBreak may determine that the fund to be
purchased should be increasing at the rate of at least 8% per year measured over the most
recent 31 days.
To consider a Parabolic Buy Filter use the following:
The guidance for this option is the same as the ROR buy filter.
To consider an Exponential Moving Average Buy Filter use the following:
In this example, EMA buy filter values between 25 and 100 market days will be
considered.
To consider a RSI Buy Filter use the following:
FastBreak Pro will optimize both the period and the trigger point for the RSI.
To consider a Correlation Buy Filter use the following:
FastBreak Pro will determine both the correlation filter value and the period over which
the correlation is to be calculated.
This buy filter can be selected in one of two ways. If a check is put in the Correlation
Buy Filter box, FastBreak Pro will only “consider” using this filter. If the user in fact
31
wants to force this filter to be used the Force Use box can be checked. This will make
every strategy that the optimizer tries use this option. If the Force Use box is checked, it
does not matter if the Correlation Buy Filter box is checked or not. The user may want to
force the use of this option if the strategy developed is to have a maximum correlation
with a particular market index (See the Genetic Algorithm Screen options soon to be
covered). The only way to control the correlation of a strategy is to filter the funds
purchased; therefore, it makes little sense to consider strategies that don’t use the
Correlation Buy Filter.Note: Do not confuse the Correlation Buy Filter with the
Correlation between funds held option covered earlier in this chapter.
To consider a Beta Buy Filter use the following:
FastBreak Pro will determine both the maximum beta filter value and the period over
which the value is to be calculated.
See the Correlation Buy Filter guidance on the Force Use box. This guidance will be
similar if the user wants to control the maximum beta of the final strategy.
Users have the beta calculated in the traditional manner, i.e., with correlation, or a noncorrelated beta. The user must select one or the other version of the calculation. The
optimizer will try only the version selected.
32
Genetic Algorithm Screen
Note: To better understand the following discussion you may want to go to Appendix A
and read the discussion on Genetic Algorithms (GA).
To bring up the Genetic Algorithm and investment criteria screen, click the following
icon:
This screen is used to select the nature of the strategy to be optimized and customize the
GA parameters.
FastBreak can maximize Annual return, maximize the UPI, or minimize the MDD using
the following screen functions:
33
Only one of these three parameters can be selected for optimization using the radio
buttons. If a parameter is not selected for optimization, FastBreak Pro will try to build a
strategy that is acceptable to the user for the other two criteria. You must put a value
other than zero into the text box for the non-optimized criteria if you want FastBreak Pro
to recognize it.In the above example, the user has used the radio button to select
Annual% (return) to be optimized (maximized) and specified a Max Acceptable MDD of
15% by inserting a value of 15 in the corresponding text box. In this example, the UPI
text box contains a zero and FastBreak Pro will ignore it. FastBreak Pro will try to
maximize Annual return, but at the same time, not exceed a 15% MDD.
For another example, a user may want to optimize (minimize) MDD, but at the same time
require a minimum annual return of 20%. To do this, the radio button next to MDD
would be selected. This tells FastBreak Pro to “optimize” this variable. The user would
also put a value of 20 in the Annual% Min Acceptable text box. FastBreak Pro will try to
find trading strategies that have at least a 20% annual return, but at the same time, find
the smallest possible MDD.Note:If the user didn’t specify the 20% minimum
acceptable return, the strategy found would likely be one that holds a money market
fund 100% of the time!
To set the size of the GA populations use:
Genetic algorithms have “populations” which are the number of strategies to be tried in
each “generation.”Typically, the greater the number of different variables to be
optimized, the larger the population size required.
A good rule is that the first population should be twice as large as the subsequent
populations. The population size can be set in one of two ways, using the radio buttons in
the options shown above:
1. You can allow the software to determine the size of the population. It does this by
multiplying the number of “Genes” by a user defined value. For very extensive and
complete optimizations, use a value of two (2) in the Times # Genes field on the First
Population Size.A value of one (1) is recommended for other populations
(Population Size). These values can result in very long execution times for complex
strategies. Note: We put this option in the software because it is recommended by
34
some genetic algorithm books, but we have not found these large population sizes
to result in improved system performance using the 50% Survivor Selection
Percentage (see below). It may be that the Survivor Selection Percentage needs to
be made substantially smaller, e.g., 25%, to prevent “dilution” of the gene pool.
This is an area for future study.
2. You can specify population sizes by entering a value in the Population # field. We
suggest using 100 as the first generation size and 50 for subsequent generations. We
do not recommend using values less than 50.Using population sizes that are too
small will result in FastBreak converging too quickly on a sub-optimum strategy.
Note: We have found this second option to be the preferred method to determine
population size.
The recommended rule for Mutation Percentage is 2 to 5
The recommended Survivor Selection Percentage is 50
Note: To better understand the following discussion, go to Appendix A and read the
discussion on Improving Robustness.
The Robust Factor is the percentage FastBreak Pro adjusts parameters when calculating a
robustness value:
After determining the return of a particular strategy, FastBreak Pro will increase all
strategy parameters by 10% (or any other user defined value) and re-evaluate the strategy.
It will then reduce all parameters by 10% and re-evaluate the strategy for a third time.
The concept is that FastBreak Pro examines the parameter space around a strategy to
verify that small changes in parameters do not significantly impact the strategy
performance. A reasonable value range to use for the Robust factor is 5 to 10 (%).
The second part of the robustness check is the following line:
A check is required in the Maximize Robustness check box to activate the robustness
check. The user-defined value in the text box and the Average vs. Lowest options are
35
described in the Appendix. Note: Activation of the Maximize Robustness option will
triple run time; however, we believe it is critical to building good trading systems. If
robustness is not activated, the optimized trading systems are very susceptible to overoptimization.
We have found that, under some circumstances, strategies with more stop loss and buy
filters options activated can lead to non-robust strategies.We have added a penalty
function:
The user-defined penalty value is raised to a power (exponent) that is equal to the number
of stops used. A recommended penalty value is 0.99For example, if a single stop is
used, a strategy adjusted performance will be reduced by multiplying by the penalty (0.99
in the default). If two stops are used, the penalty is (0.99 x 0.99). This will push toward
using fewer stop and buy filter options. If you find that FastBreak continues to select
strategies with too many stop functions activated, then try changing the penalty to smaller
values, i.e.,0.98, 0.97 etc., and this will reduce the number of options used.We
recommend that this option always be activated.
You can also drive toward strategies that have a user-defined maximum number of
switches:
Check the Minimize Switches per Year box and input the maximum acceptable number.
Strategies that have greater than the user defined number of switches will have a penalty
added such that these strategies will not tend to “survive.” The penalty is simply the
desired number of switches per year divided by the strategy historical number of switches
per year.This option will force strategies to evolve toward the number of switches
desired.This can be a very useful function because many mutual fund companies
discourage excessive trading.
If the user desires strategies that have a maximum beta or maximum correlation, then use
the following options:
For example, if the user wants the strategy to have a maximum beta of 0.75 (as measured
against the S&P 500 Index) over any 50 day period of the trading strategy, then the above
option would be used. The maximum beta value acceptable needs to be input, as well as
the index and period for the beta calculation. The S&P 500 is the most common index
for measuring beta, and is the default index, but any index or fund in the FastTrack
36
database can be used. Note: If using the Minimize Beta option, the Beta Buy Filter
ADJ %
should also be used on the Buy Filter screen. For example, if a user wants a strategy
that has a maximum beta of 1.5, then a range of 1.0 to 2.0 could be used in the Beta
Buy Filter range. The reason that a range can be used rather than just forcing a Beta
buy filter of 1.5 is that if the strategy holds many funds, individual funds may have beta
values greater than 1.5, but the combination of funds may produce a final strategy
equity curve that meets the desired maximum beta.
The reason a Beta/Corr Period is used rather than just measuring beta (or correlation)
over the entire historical equity curve is because beta can change dramatically over short
versus long time periods. To measure beta over a multi month or year period of time can
be very misleading. For example, a strategy may have a very modest beta for the entire
strategy history but have short periods of time when the beta is quite large. If a user
wants a conservative strategy, i.e., low beta, it is only reasonable that the strategy should
always try to meet that strategy goal during any time period.The same is true of
correlation. The recommended minimum period to calculate beta and correlation is 50
market days.
In addition to building low beta investment strategies, this option has a second use. We
have found that, during times of extreme market volatility, high beta funds are very
subject to whipsaw, i.e., after rapid price gain there is rapid price loss. By applying a beta
limit on funds purchased, less volatile funds will be purchased that are continuing to trend
upward in a very steady manner.
The maximum beta can be measured in the traditional manner, i.e., with correlation, or a
non-correlated value.See the Beta Filter option discussed earlier for additional
discussion. Why would a user want to use a non correlated beta? One reason may be if
there is a mixture of funds in the trading family that have low correlation to the user
defined index.For example, the user may mix US equity funds with bonds and
international funds. The bond and equity funds may have a low correlation to the S&P
500 index but be extremely volatile. Removing the correlation from the beta calculation
will compare funds on a daily standard deviation basis.
If you want to save the results from all strategies evaluated by FastBreak Pro into a file,
then check the following option:
Checking this option brings up a standard file name selection menu. The data from each
test case is stored in a text file that can be opened in a word processor or spreadsheet for
additional analysis. Here is an example of the stored data:
ANN % UPIMDD S/Y Gen# Rob Strategy Beta Corr Alpha CAHPB LPKDESBRXT CB LE OEPRCBXT BE
7.66 19.951.4 28.733211 MAM1.55 0.94 15.8 NNYNYNNNNNNNNNL NN NN YNNYNNNL NN
6.74 21.673 17.21641 0.9 MAM1.69 0.9518 NNNNY NYYNYNYNNN NN NN YYNYNNNN NN
3.45 19.032.1 16.83 1101 0.9 MAM1.1 0.91 16.7 NNNNY YYNYYYNYNL NN NN YNYNNNNL NN
7.41 19.913.1 15.385811 MAM1.53 0.917 NNNNY NYYYYYYNNN NN NN YNNYNNNY NN
37
The information in this file will be covered later when the optimizer is covered.
Using this option can result in quite a large file. Use with care.
To set the maximum number of generations to be tested, use the following field:
A typical value is 15 to 25 generations.When the FastBreak Pro optimizer reaches this
value, it will stop. Note: If a Restart file (described later) is reloaded, this value will be
ignored in the restart.
Saving FastBreak Pro Optimization Parameters
After you have input all your option choices, parameter ranges, and optimization criteria,
you should save the setup. Go to the FB Pro menu and select Save FB Pro Parameters:
This will allow you to save your setup in a file with a GPF extension.
It the future, you can reload this setup using the Load FB Pro Parameters option.
38
8.0 Running FastBreak Pro Optimization
The GA optimizer works interactively with a special version of Standard FastBreak.
Standard FastBreak provides the evaluation of strategies that are built by the GA part of
the software. The following information will be clearer after you have run the examples.
After you have selected your strategy options and criteria, start the FastBreak
optimization by clicking on this icon:
Best Results Screen
Here is the screen you see when the FastBreak Pro optimizer is running:
Note: It will take several seconds to minutes to begin filling in the lines of this screen.
If you are using the Trendline options it could take an hour or more if you have a large
trading family.
39
Note: Your screen may look different depending on your monitor screen resolution. If
you have a very low resolution screen, the far right columns may be cut off. If you
have a very high resolution, you may see the additional columns of 1’s and 0’s. These
columns are not important.
The top half of the screen contains statistics about the top 10 best strategies that
FastBreak Pro has found during the optimization run. The bottom half of the screen
contains the best strategies of the current GA population.
The list order for both lists are based on “Adjusted” performance (Adj %).This
performance will be based on the option for optimization that the user has selected, i.e.,
annual return, UPI, or MDD. The actual performance is adjusted according to how well a
strategy meets the user criteria, i.e., MDD, UPI, Switches per Year, maximum beta, and
robustness.The actual performance for each strategy is shown in other columns:
compounded annual performance, UPI, MDD, and Switches per year.
The columns after switches per year are:
Gen# Generation where strategy was found
Ranking type
BetaMaximum beta of strategy
CorrMaximum Correlation of strategy
Alpha Alpha (not NCalpha) of strategy over entire IS time period
Options activated
CMaximum correlation used between funds purchased
AAdjustment factors
HHarnsberger option
PPOP option
BBOOM option
When you see a “Y” in a column, this means an option was activated for this strategy and
“N” indicates the option was not activated.
Note: If you are using the Trendline options rather than just a simple “Y” or “N” in
the trendline columns there can be an “L” in the column to provide additional
information. The key is as follows:
N= trendline not used for this strategy
Y= Logarithmic trendline used
L=Linear trendline used
If you are interested, you can observe the current parameters being evaluated by clicking
on this icon and jump to the standard FastBreak screens:
You can then click on each of the tabs to see the values being evaluated in each of the text
boxes. Note: If you have a very fast computer this may not be practical because the
strategies are evaluated quickly.
Monitoring FastBreak’s Progress
You can monitor the progress of FastBreak optimization with graphs that are updated at
the end of each generation.
First, use the Pause icon:
41
Note: It may take several seconds or a few minutes to pause execution. If you have the
robustness option checked, FastBreak may run up to 3 additional strategies before
going into the pause mode.
Once paused, go to the Graph menu item and select the parameter to graph:
For example, here are the graphs for Annual return, MDD, UPI and robustness:
42
Notice that there are two lines on each graph. One line is for the #1 strategy identified by
FastBreak Pro (based on Adjusted performance in the Best Results screen) and the other
line is the 10thbest strategy. You may see the two lines cross over, depending on the
options selected.
You can continue or stop a paused run by clicking on the buttons at the bottom of the
Best Results screen:
Note: The graph information is not saved in the restart file. If you reload and restart
an optimization run, the graph data will start with the data from each new generation.
Out of Sample Results
At the end of each GA generation, FastBreak Pro performs an evaluation of the Out-ofSample (OS) performance of the top ten best systems shown on the Best Results Screen.
Go to this screen using this icon:
The Out-of-Sample Results screen looks like the following:
43
The Out-of-Sample (OS) Results screen adds a new line at the end of each generation.
When we refer to “Average” values, we are referring to a simple average of the ten best
systems that have been found. Note: A common misunderstanding is that the ten best
systems were all found in the current generation. This is not the case. For example, at
the end of generation 8, there are ten “best” systems found and saved. These best
systems could have been found in any of the eight generations evaluated. This will
become clearer after running the examples in the next chapter.
Each summary line has the following information:
GENGeneration for which the results are reported
IS ANNAverage In-Sample return for the top ten best systems found at the end of
the generation
OS ANNAverage Out-of-Sample return for the top ten systems
UPIAverage Out-of-Sample Ulcer Performance index for the top ten systems
MDDAverage Out-of-Sample MDD for the top ten systems
S/YAverage Out-of-Sample switches per year for the top ten systems
BETAAverage Out-of-Sample maximum Beta for the top ten systems
CORRAverage Out-of-Sample maximum Correlation for the top ten systems
ALPHAAverage Out-of-Sample Alpha for the top ten systems
44
ANN SDThe standard deviation of the Out-of-Sample annual returns for the top ten
systems. The larger the value, the larger the variation in Out-of-Sample
performance.
MAX ANNThe maximum Out-of-Sample return for the top ten systems. The value in
( ) after the value is the position in the top ten systems. In the screen print
above, the best OS performance at the end of generation 8 was 155.47%.
This system is the 7th“best” system, based on adjusted IS performance, of
the top ten systems that had been found by the end of generation 8.
MIN ANNThe minimum Out-of-Sample return for the top ten systems. The value in
( ) after the value is the position in the top ten systems.
Saving and Restarting Optimization Runs
You can save all the results of an optimization run. You do not need to wait until all
generations have be completed, but if you want to save the results during a run use the
Pause icon to halt execution first.
To save your results, with the option of restarting at a later date, use the FastBreak Pro
menu and select the Save FB Pro Restart File option:
If at a later time you want to reload the results, use the Load FB Pro Restart File option
and select the desired restart file.FastBreak Pro will load the data and continue
execution. This is true even if the maximum number of generations was reached during
the original execution. If you want to extend the number of generations, first use the
Pause icon to halt the execution. Next, change the maximum number of generations box
(found on the GA setup screen). Finally, use the Continue button on the Results Screen
to continue the execution.
Note: We recommend you use the default file extensions, i.e., GRF, GPF etc. This will
allow you to easily recognize the different file types. We recommend you always save a
restart file at the end of an optimization run. This can save you hours of run time at a
later date. It also allows you to reload and confirm the parameters you used in a
particular run.
2ndNote: If you use the Trendline options and do a restart, FastBreak will need to
recalculate all the trendlines again because they are not saved.
45
Saving Strategies
The parameters for the top ten best systems can be saved after a run has finished, or the
program can be paused during optimization and the systems can be saved.
FastBreak will create parameter files (DFT files in FastBreak nomenclature) when you
click on the Create DFT files icon:
You will be asked to select the generation that you want to save:
After you select a generation and click OK, you will be asked to give a root name to these
files. FastBreak will put an extension number on the file name (0-9) to indicate which of
the top ten best systems the DFT file represents. For example, if you name the DFT files
TEST, FastBreak will name them TEST0.DFT … TEST9.DFT. TEST0.DFT is the
“best” system and TEST9.DFT the tenth best system based on IS Adjusted Performance.
If you turned on the option to optimize the trading family, FastBreak will create 10
unique families in the FastTrack User Defined folder. The family names will be TEST
(0-9).fam. If you decide to keep a trading system that uses an optimized family, we
suggest you rename the family name to one that will not get overwritten the next time you
save optimized families. You will also need to manually select the new trading family
name in the Funds/Index screen and resave the DFT file in FastBreak so that the strategy
now has the correct family name. Note: See Example 2 in Examples chapter to better
understand this procedure.
If you want to run each strategy to determine its merits, load the individual DFT files
using the load DFT File icon:
46
You can then see the specific strategy parameters found and you can execute FastBreak
Pro in the standard manner to view Detail results or FNU files. Note: You will need to
go to the Output tab to activate and name the detail and FNU files. Once you have
done this you can resave the DFT file to capture the file names.
47
9.0 Examples
We have included example files on the installation CD. You can use the files directly
from the CD, but we recommend copying the files to your FastBreak Pro installation
folder.You may need to reset the path to the FastTrack trading family. We use the
default paths of C:\ft\ftdef (Trading families defined by FastTrack) and C:\ft\Userdef
(Trading families created by you the user). You need only click on the Family button on
the first FastBreak Pro strategy screen to reset the path to the location on your computer.
Note: You may find differences in your results when you run the examples. This is
because FastBreak Pro has been greatly modified after these examples were written.
There is a certain amount of chaos in the genetic algorithm optimization. This is to
say, a very small change in any parameter or data value early in the run can have a
significant impact on the final result. Differences can also be the result of changes in
the trading family funds.
Example 1 – Trading Fidelity Sector Funds
Put the installation CD in your drive and use the FB Pro menu to Load the FB Pro
Parameters File:
Locate the file Example1.GPF on installation CD and load it. If you have copied the
examples to your hard drive, then locate the GPF file there.
This example uses the Fidelity Select family to trade. Normally, we would recommend
removing the gold funds from this family, but since this is a standard family that everyone
should have in their FastTrack folder it makes a good demo.
Note: The Example1.GPF parameter file assumes that your FastTrack data is in C:\FT
folder. If this is not the case, you will need to reset the path for the family. Go to the
FastBreak Pro Strategy Screen and use the Family button to find and select the family
in your FastTrack folder area.Now, resave the Example1.GPF by using the Pro
Functions menu and the Save FP Pro Parameter File option. You do not need to save
the GPF file on the installation disk.It can be saved in your FastBreak Pro
installation folder or any other folder location on your hard drive.
Look through all the various FastBreak Pro screens and note how we set the options and
parameter ranges. Notice that this optimization uses only MAM for ranking, and it will
48
hold three funds because we set the minimum and maximum range for # funds held to 3.
We are optimizing on Annual return, but have specified an MDD goal of 15%. The
optimization will have 100 members in the first generation and 50 for subsequent
generations. We will optimize for 15 generations. We have specified a nominal mutation
rate of 2%. The IS date range is 6/19/1989 through 12/31/1999. The OS date range is
1/3/2000 through 12/29/2000. The year 2000 was a very difficult investment year so this
will be a good test of your system for OS performance.
At this point all that is required is to click the execution icon:
Note: The time to run all 15 generations is dependent on your computer speed.
When the optimization process is started the Best Results screen will appear, and you will
begin to see information similar to the following:
After at lest one generation has completed, go to the Out-of-Sample Results screen
(shown when the Light Bulb tool bar button is clicked). The GA will continue to look for
combinations of parameters that gave good historical performance. However, at some
point, the trading systems will become over-optimized and not be good systems under
49
future market conditions. The reason we reserve some recent out-of-sample market data
is to test the optimized parameters. We are looking for the point that the systems start to
become over-optimized. Looking at the screen below we can see that the GA is finding
better IS results.The IS ANN column is calculated by taking the ten best systems
available at the end of each generation and using the system parameters to test for returns
in the OS Date range. The results from the top 10 systems are simply averaged. You do
not always see an increase from generation to generation in IS performance (as you do in
this example) because the top 10 systems are based on “adjusted performance” not
absolute performance.
We want to increase the IS performance but not to the point we start hurting the
predictive future performance in the OS period. This is why we watch the OS ANN
column. The OS ANN column is the result of taking the top 10 systems at the end of
each generation and using data in the OS Date Range to calculate the performance for
each system (the 10 performance numbers are averaged together to obtain the average
value that is in OS ANN column). When we begin to see the OS ANN returns start to
drop, this is an indication that over-optimization is starting to occur. Some runs can show
a drop in OS performance for a couple of generations, but then new solutions will be
found which start to improve OS results. Therefore, you should not stop the optimization
at the first sign of a decrease in OS performance.
50
The OS MDD is a little disappointing because we optimized with a 15% MDD, and we
see that the OS MDD is typically in the 17-22% range. There are some very good reasons
for this to happen. First, we are trading sector funds which can be very volatile. A second
reason is that we retained the gold fund, a very volatile fund, in the trading family. For
comparison, the NASDAQ was down 40% in this period and the S&P 500 was down
10%. On the other hand, the OS annual performance is outstanding with returns of over
40%.
Before we continue, we want to save a FastBreak Pro Restart file. This will allow us to
reload the results of this run at a future date. Go to the Pro Functions menu item:
Select Save FB Pro Restart File and name the file Example1.GRF
It may be interesting to you at this point to look at the graphs which show how the IS
results evolved during each generation. Use the Graph menu item and select any of the
options. Note: If you reload the restart file (Example1.GRF) at a future date, this
graph information is not available.
In our example run, generation 9 looks like a good combination of IS and OS
performance. Notice that this generation has the best OS annual performance and the best
UPI. This is a bit of a judgment call and the user should look at several different criteria
including OS MDD, switches per year etc. We will now look at the ten best systems at
the end of generation 9. We can save all the systems by using the Create Best Results
DFT files icon:
This will bring up the following menu that allows you to choose the generation to save (in
this case generation 9):
51
After you choose the generation number you will be asked to provide a name. We will
use the name Exp and FastBreak will provide the extensions (Exp0.DFT, Exp1.DFT …
Exp9.DFT) to identify each of the top ten systems.
We can now load and execute each of the DFT files in FastBreak Pro and look at specific
trading parameters, MDD, S/Y etc. We do this because the Out-of-Sample screen only
provides the average values for these parameters for all ten systems.
We select and load the DFT files by using the Load DFT file icon:
We know from the Out-of-Sample screen that system number 10 had the best OS return
(we know this because there is a (10) after the MAX ANN value of 60.99%) so we will
look at it first. Note: Remember that FastBreak numbers the system files from 0-9, so
DFT file 2 corresponds to system number 3.
When you load a DFT file, FastBreak Pro will set the End Date to the latest date in the
FastTrack database, and it will use the IS Start Date as the Start Date; so you will want to
change these to our OS start and end dates in the example run. You may also want to
output an FNU file that allows the equity curve to be charted in FastTrack or FastGraph.
After loading the DFT file, changing the start and end dates, we can execute the standard
portion of FastBreak with the FastBreak Execute icon.
Here are the specifics from the run:
Annual returnMDDUPIBetaAlpha
60.916.69.01.364.45
These are very good numbers (NASDAQ was –39% and the S&P was –10.1% during this
period), and the MDD is very respectable.
52
In this example, we chose system # 10 in generation 9 because it was the best in the Outof-Sample screen. Should we always automatically choose the trading system that was
best in the OS time period? Not necessarily. See the next chapter for suggestions on how
to choose among the top ten best systems.
Note: Here is a shortcut for evaluation of the top 10 best systems. Create a Batch run
file (see Standard manual for information on running in Batch mode). If you always
save your top 10 systems with the same name (the name A0, A1, A2, …A9.DFT is what
we use), you will want to build the batch file to execute these 10 DFT files. Set the
batch file to save the results of the Summary output. Now, kick off the batch run, and
you will be presented with a screen that shows the summary information for all 10
systems. You can then make your final selection based on the summary results. This
process has several advantages. One, you will keep your FastBreak Pro installation
folder from getting cluttered with too many DFT file names, since you always use the
same name and the old files will be overwritten each time you save the top 10 systems.
The second advantage is that you avoid manually loading each DFT file for execution.
Of course, after you make your final selection it is important to save the DFT file with
a unique name. The final advantage is if you are using the optimize family option.
You will not need to shut down FastBreak Pro and restart the program to load in the
unique custom family names that are created when you run this option. (The first time
you create the custom family names, you will need to shutdown FastBreak Pro and
restart it to load the new custom names; but after the first time you will not.) When the
Create Best Results DFT button is used, the DFT will use the IS Start Date in the DFT.
If you want to use some other date in the DFT files, then change the IS Start Date
prior to saving the 10 best DFT files.
Example 2 – Paired Strategies
Note: It is important to study this example if you want to better understand the
Optimize Family option.
Most FastTrack users are familiar with trading “Paired Strategies.” The most popular of
these strategies trades Energy funds and Transportation funds.The trading concept
depends on finding two funds with a negative or low correlation and trade into the
“stronger” of these two funds. The fundamentals are clear for Energy vs. Transportation -
- rising energy prices hurt transportation stocks, i.e., airlines, trucking etc. The opposite
happens when energy prices decline.
It is common for FastTrack users to trade pairs using the AccuTrack indicator in
FastTrack, but there are several problems with this approach -- parameter selection, fund
selection, consideration of short term trading penalties, not being able to go to money
market to controlling MDD to name a few. FastBreak Pro can help with all these issues.
Our first question is what funds should be in the trading family? Should we pair Fidelity
Select Air Transportation with Select Energy, or should we pair Select Transportation
with Select Energy Services? We could build four families with all four combinations
53
and evaluate them separately, but we will use the FastBreak Pro family optimization
option to determine the best combination of funds.We build a trading family in
FastTrack that contains all four funds – FSAIX, FSENX, FSESX, and FSRFX. This
family has been built and can be found on the installation disk (file name is Myentr.fam).
Copy this file from the disk to your FastTrack Userdef folder. This folder contains all the
user defined families. Note: You must copy the Myentr.fam file to the Userdef folderprior to launching FastBreak Pro.
We have built a FastBreak Pro Parameters file called Example2.GPF. Copy this file to
your FastBreak Pro installation folder. Load the GPF file as you did in Example 1. You
will notice that the Optimize Family option is checked and uses a Min Family Size of 2
(we need at least two funds to trade).
Notice we used the very difficult market period of 1/3/2000 to 9/7/2001 for our OS dates.
This was the worst market condition in nearly 30 years. The S&P was down over 25% in
this period and the NASDAQ was down over 59%.
Change the Family path prior to execution if required.
Now start the optimization with the optimization icon.
Here are the summary results from our run (your results may be somewhat different):
54
This trading strategy has very good performance in the OS period. The results are even
more impressive compared to the major market indexes during the time period. Again, it
is not an exact process to choose the best generation. We chose generation number 19
because it had a good combination of IS, OS and UPI values.We proceed by creating
DFT files for the ten best strategies in this generation using the Create Best Results DFT
Files icon. We provide the name ET.DFT and FastBreak Pro will create ten DFT files
(ET0.DFT … ET9.DFT).
FastBreak Pro will create ten new trading families (ET0.FAM … ET9.FAM) in the
FT/Userdef folder. Remember, we had the Optimize Family option activated.
We will only look at one of the top ten strategies in detail. We note from the Out-ofSample Results screen, on the previous page, that the maximum OS returns were obtained
from strategy number 1 of generation 19. We can load this strategy into FastBreak Pro by
selecting ET0.DFT (remember that the DFT file names are appended starting with zero so
the name range is 0 through 9).
Note: You will need to shut down FastBreak Pro and restart it for the new family
names to be available to FastBreak.
When we restart FastBreak Pro and load ET0.DFT, the Family screen in FastBreak will
look like the following:
55
We see that all 10 new families (ET0 through ET9) are now available in the Families
selection table. At this point we execute the strategy just like any FastBreak strategy. We
could use the Output tab to write out detail and FNU files for additional information.
One item we want to see is what funds FastBreak Pro used from our original family –
remember that we used the Optimize Family option. We could use FastTrack to examine
the new custom ET3.fam family or we can execute the strategy in FastBreak Pro and look
at the current ranking list:
Notice that FastBreak Pro found two funds used from our original family FSESX, FSAIX
(VMMXX is the money market fund).
The performance of the ET3 trading system in the OS period is very good:
Annual returnMDDUPIBetaAlpha
16.224.22.00.6320.4
If you decide to keep and trade ET0.DFT, you can clean up your folders by deleting the
other files created. Delete the other nine DFT files in the FastBreak folder. You can also
delete the nine unique FastTrack families (ET1.FAM, ET2.FAM etc. ) in the FT/Userdef
folder. Don’t delete the ET0.fam file!
If you want to rename the unique family at a later time, be certain to change your
FastBreak Pro strategy to use the new name. You can do this by renaming the family file
name, launching FastBreak Pro, loading in the DFT strategy file, and finding the new
family name in the Families screen of FastBreak. Finally, save the DFT file with the
existing name or save it using a new file name.
One last point: you may want to rerun this optimization with the BOOM option disabled.
Without BOOM, the results are much lower out-of-sample.This is not surprising
because all the funds in the trading family are very volatile, especially the Energy Service
fund.
56
Example 3 – Trading Stocks
One of the most exciting and aggressive uses of FastBreak Pro is developing stock
trading systems. Note: Trading individual stocks is by its very nature not diversified
when compared to trading mutual funds. Stock trading systems are subject to very
substantial draw downs. We have found that, in strong markets, stock trading systems
can, in general, significantly outperform mutual funds trading systems on a return
basis. However, in weak markets, stock trading systems are subject to whipsaw trades
and significant drawdowns.
As with mutual funds, it is important to choose the trading family wisely. Stocks that
have very violent up and down movements are subject to whipsaws.Stocks that have
smooth price movements are preferred. Also, with the thousands of stocks available, why
choose those that have had historically poor price performance? In our example, we will
use a selection of stocks from the S&P 500 Index as the trading family. We took the
stocks from the S&P 500 and applied two filters using the FastTrack spreadsheet. If you
don’t know how to use the FastTrack spreadsheet, use the FastTrack Help files for
instruction.
We loaded the S&P stocks into the spreadsheet and deleted the approximately 100 stocks
that did not have a full history between 9/1/1988 and 12/31/1999. Next, we looked at the
Ulcer Performance Index (UPI) for the remaining stocks. We sorted the stocks by UPI
and deleted those with the lowest UPI until we had a list of 200 stocks. Note: We ended
the UPI sort with 12/31/1999 because we wanted to do a stressful test of the trading
strategy.Our OS period is 1/3/2000 through 1/2/2001, which was a very difficult
investment climate. We wanted to see how well the OS results would be without benefit
of filtering the stocks in the OS time period. An investor trading a system sorted in this
manner would want to include the UPI sort over the entire IS and OS time period to
have as much recent data as possible. We saved the filtered family with the name
UPI.fam. The UPI.fam family can be found on your final installation disk, and you
should transfer it to your FastTrack Userdef folder prior to launching FastBreak Pro since
FastBreak Pro only has access to trading families available the time the application is
launched.
After launching FastBreak Pro, load Example3.GPF, located on your installation CD,
into FastBreak Pro. If you have copied the GPF file from your installation disk to your
hard drive, load it from the hard drive. Remember to change the path to the family file if
required and save the GPF file with the new path.
Examine the parameter setting ranges. For stocks, we use somewhat different ranges for
many of the parameters.For example, this strategy is expected to be very volatile
because, in part, we are trading individual stocks, and we have set the MDD goal to 30%.
The upper ranges used on the stop and ranking parameters are also increased. Note:
There is an important issue to be aware of when trading individual stocks. It is very
possible that one, or a very few, trades will have enormous gains. These gains can give
57
an inaccurate indication of performance when performance results are measured over
a very short trading period. For this reason, it is important to have an OS period of
reasonable length. Also, the problem can be exacerbated if the strategy holds a few
stocks. Our example holds five stocks which will help mitigate the problem, i.e., a few
big trades are less likely to give an unreasonable indication of performance.
This optimization can take a long time (overnight on a Pentium 2.4 GHz) because the
family is large.
Here are summary results after 20 generations:
You can see that the results are very impressive. At this point, you choose the optimum
generation to save the top ten trading systems. Our preference would be for generation 14
which has a very respectable OS return and the added advantage that the UPI and MDD
are the best of all generations. The average OS MDD is better than our 30% goal.
At this point, you would create the DFT files, look at the systems in more detail and
finally select the one to trade.We will take a detailed look at strategy 5 (Note:Remember the DFT files are saved starting with zero) of generation 14.
58
Create the DFT files for generation 14 using the method in the first two examples. Now,
load strategy 5 DFT into FastBreak, change the strategy start and end dates to match the
OS dates. Execute the strategy. Here are the results:
Annual returnMDDUPIBetaAlpha
89.618.89.91.597.8
The S&P lost 12% and the OTC lost 45% over this same period. Note: You should not
expect to see actual trading results that outperform the general market as much as this
example because this is the best system of the best generation. However, if you look at
the worst OS performance on the Summary screen you will see that, except for the first
generation, the results are significantly above the market indexes.
Note: This particular strategy was built without benefit of any significant bear market
data because it was built prior to the extreme bear markets of 2001 and 2002. You will
find that when the strategy was tested in these markets, the MDD was significant, but
the recovery in 2003 was equally dramatic. This strategy may be one to use only under
favorable market conditions.
Note:If you use a stock family that is based on a market index, e.g., S&P 500,
NASDAQ 100 etc., see the discussion that follows.
Because FastTrack will update the index families on a regular basis, you have a decision
to make. First, you could use the default family, and when the family is updated, you may
get dramatic changes. For example, you may run the strategy and find that the strategy
has been holding two new stocks for several days or weeks that are different from the
stocks you were holding when you ran the strategy the previous day. At this point, you
would need to sell your current positions and purchase the stocks the strategy is currently
holding. The detail file and FNU equity curve will not accurately represent your actual
performance. Although this may be disconcerting, this is our preferred method.
Another way to work with the changing index is to save the FastTrack index family used
to build the strategy under a unique name in your user defined family folder. Now the
stocks in the family will remain constant. There are two problems with the method.
First, stocks are constantly being deleted from the FastTrack stock database due to
mergers, bankruptcies, name changes etc. Therefore, you will still see surprising changes
in your strategy, but they will occur less often than when using the preferred method
above. The second problem with the approach is that you will lose the normal upgrading
that occurs to the index over time, i.e., NASDAQ removes poor performing stocks and
adds better performing stocks.
59
Example 4 – Building Market Timing Signal Files
Read the chapter on building market timing signals in the Standard FastBreak manual.
That chapter will provide background on the logic of how FastBreak builds signal files.
FastBreak Pro can be used to optimize and build market timing signals. This example
will demonstrate how to build a multi-market timing signal. The object of this example is
to build a market timing signal that can be used for stock and mutual fund trading
systems. The object is a signal that trades infrequently and stays in the market when at
lest one of three major market indexes (S&P 500, Russell 2000, NASDAQ 100) is doing
well. Many other market timing signals that are available trade or are based on a single
index. Market indexes move together the majority of the time, however, there are times
when they become divergent. It was our desire to stay in the market and let the FastBreak
rotation strategy (using this signal) rotate us into the correct fund or stock and only leave
the market when everything was doing poorly.
We built a trading family containing SP-CP, RUT-I, and NDX-X and called it
MYINDEX3.FAM. Locate MYINDEX3.FAM on the installation CD. Move this family
to the USERDEF folder located in your FastTrack (FT) folder. Now, launch FastBreak
Pro. Note:You must put the family into the SIG folder prior to launchingFastBreak. Next, locate the file Example4.GPF on installation CD and load it. If you
have copied the examples to your hard drive, then locate the GPF file there.
The goal is a signal with less than 6 switches per year and a 20% MDD. This MDD may
seem high, but we have found that we can use a signal with a large MDD but then build a
trading system in FastBreak Pro that uses that signal and keeps the overall strategy under
15%. The reason for not using a “perfect” signal is that we have found that if a perfect
signal is used in developing a FastBreak Pro strategy then individual stops for the funds
or stocks will not be selected by the optimizer. We believe it is always a prudent plan to
have at least one stop active. Using a less than perfect signal, stops become active and
serve as a good backup to get out of a bad or declining trade position.
After the GPF file has been loaded, click the optimizer execution button.The
optimization process is the same as developing a normal trading system.When the
optimization is complete, look at the Out of Sample results screen to choose the best
generation.Save the best 10 systems from the best generation using the methods
demonstrated earlier. You can then load and examine each of the 10 best systems to do a
final selection. The selection may be base on switches per year, UPI, MDD etc.
After the final selection of a “best” system is determined, that DFT file is loaded into
FastBreak. Now, go to the Output Files Tab and select Make Signal File. This will
present you with screens to name and describe the signal file. Finally, save the DFT with
a unique name. You can then execute FastBreak and it will build the signal file and place
it in the FT SIG folder. You can load this signal file into FastTrack just as you would any
signal file. You can also use the signal file in FastBreak to build better trading systems.
60
Each day you can load this DFT file and execute it just as you would any trading system.
If there is a market buy or sell, the signal file will be updated. Of course if you use this
signal in a FastBreak trading strategy you will need to run the signal DFT each day prior
to loading and executing the trading system DFT.
61
10.0 Suggestions for Building Better Systems
The optimization parameter defaults in FastBreak Pro will give you good results. In this
chapter we show you the sensitivity to some of the optimization options and give you
ideas for doing your own studies. We also provide results from our studies that may help
you build better systems.
General Suggestions
Select only one ranking method per optimization run.Our personal order of
preference for ranking methods is: MAM, UPI, and Rank.
Choose “reasonable” trading system performance goals. For example, do not try for a
MDD of 5% trading stocks. This will result in an unrealistic trading system with far
too many stop parameters.
Fewer stops and buy filters are usually better. Try using the Stop Penalty option if
you find more than three or four stop and filter types being selected. This may reduce
the IS return slightly but improve the OS return.
Choose trading family members wisely. FastTrack has hundreds of funds and stocks.
Many of these funds/stocks perform well over long periods of time while others
under-perform. Try to choose from the first group.
Do not expect the Optimize Family option to do all your screening work. Using this
option increases the number of possible system combinations significantly.This
option should be used to fine tune your trading family.
The Rydex family of funds is an example of very “trader friendly” funds, and we have
had success developing trading systems for this family, but more effort than usual is
involved. The major problem with developing Rydex systems is the lack of historical
data needed to perform long-term optimization and testing. The Rydex index funds
can be simulated back to 9/1/1988 using the capability in FastGraph. We have used
the equivalent sector funds from Fidelity as substitutes for system development.
These methods result in excellent IS and OS results, however, when the actual Rydex
data is substituted back into the trading system for the simulated/Fidelity data, the
results can be substantially less.This appears due to the fact that, although the
Fidelity and Rydex sectors funds have high correlation, the price performance
between the funds can be substantially different over long time periods. Our most
successful systems have been developed by limiting the number of trades and trying
and capture the major moves in the sector and index funds (as opposed to trying to
capture smaller moves that are allowed with Rydex’s generous trading rules).
62
Keeping Track of Optimization Runs
It is useful to keep a simple record of optimization runs. Although it is a simple matter to
reload the restart file or optimization parameters file to check parameter choices and
ranges, we find it useful to keep a simple spreadsheet record of runs. The spreadsheet can
be filled out in less than a minute when an optimization run completes.Here is an
example of the format we use for keeping records:
Note: The following studies were made with earlier versions of FastBreak Pro. You
may get somewhat different results if you recreate the studies, but we wanted to share
with you some of the issues we studied.
Over-optimization
The trading system developer should always be wary of over-optimization.The GA
optimizer will continue to look for better combinations of parameters that give
increasingly better results in the In-Sample (IS) time period. This is certainly important
because we know that a system that performs poorly in the past is unlikely to perform
well in the future. When we begin to see that the evolved systems do not have good
predictive power, it is time to stop optimization. Here is a chart from an optimization run
that holds three Fidelity Select funds:
35
30
25
20
OS Return, %/year
15
13579111315
ISOS
Generation
The IS average return has a smooth increase as the GA finds better parameters each
generation. The OS return is less smooth, but we see that at in the 12thgeneration a peak
appears. This is not to say that if we allow the GA to continue it will not find a better
63
return (note the false sharp peak at generation 3). However, we are seeing diminishing
improvement in the IS results, and this is a reasonable place to stop and choose the 12
generation for further study.
We like to see the best systems found, based on OS performance, between generations 5-
12. If the best system is found early, try increasing or decreasing the mutation rate.
Sometimes the system converges too rapidly because there are not enough mutations
happening, and other times the systems will not get better because there is too much
mutation, i.e., randomness created by excessive mutation.
Number of Funds to Hold
If you build Sector fund trading systems, we recommend you hold a minimum of three
funds. Holding fewer than three funds produces strategies that tend to be inconsistent.
The chart below was built with eight separate FastBreak Pro runs while fixing the number
of funds held. The Fidelity Select family (minus the gold funds and very recent sector
fund additions) was used as the trading family.The IS period was 5/12/1989 to
12/31/1996, and the OS period was 1/2/1997 to 9/15/1999:
th
40.0
30.0
20.0
Annual Return, %
10.0
012345
# of Funds
The OS annual return is shown as a function of the number of funds held (1-4). The
thicker line is using the BOOM option, and the thin line is without BOOM. All runs were
made with the MAM ranking method. Each line shows the maximum OS return, the
minimum OS return, and the average value for the top 10 best systems for the best
generation. For example, when holding one fund, with BOOM, the best system returned
nearly 45%/year, the worst system returned about 12%/year, and the average OS return
for all ten systems was just under 30%/year.
We can make several observations from this chart. Using the BOOM option provides an
improvement in all cases with a 4%-7% per year improvement in OS. Note: The BOOM
option is very powerful. However, it is not available with all ranking system options.
See the Standard manual for a table of options. A second observation is that as systems
64
hold more funds the variations in OS performance among the ten systems is reduced. The
single fund system has the system with the best OS result but is also the system with the
worst OS result. What is interesting is that the “hold 3” systems actually has the best
average performance, 32% on average, and the worst system had a very respectable
24%/year return.
OS Testing Period
How much data should be reserved for Out-of-Sample (OS) testing, and how often should
a system be re-optimized? There is not a good general rule. One always wants to use as
much recent data as possible in building systems, but this must be weighed against
reserving enough data for OS testing. We recommend that at least one year be reserved
for the OS testing. The following chart was made from a study to try to determine how
allowing IS data to go “stale” will affect performance. Four FastBreak optimization runs
were made using the Fidelity Select family from the first study. All runs used an IS start
date of 5/12/1989 but with different IS end dates.The runs ended with a date of
9/30/1998, 3/30/1998, 9/30/1997, and the final run with a date of 9/30/1996.The
generations with the best OS results were saved into DFT files. The DFT files were
loaded into FastBreak with a start date of 5/12/1989 and an end date of 9/30/1999. The
equity curves from all 40 strategies (4 time periods, 10 best strategies per period) were
looked at in FastTrack for the period of 9/30/1998 to 9/30/1999. The following table was
made to show how the systems results were affected for this one year of OS returns as the
data became more out of date:
"Stale"
monthsOSReturn,
%/year
061.3
661.5
1265.8
2448.6
The “Stale” column is the time period from the end of the IS optimization period until the
start of the OS test period (9/30/1998 in this case). The results are uniformly excellent,
and there is no effect of the IS period ending at least 12 months in the past. Actually, the
results improve slightly for the data that is 12 months old. It is not until the IS data is two
years out of date that we see a decline.
The 9/30/1998 date is near the low of a severe market sell off. We wanted to look at an
additional six months prior to this time period that captured the market sell off. A second
test was examined looking at an 18 month period (as opposed to the 12 month period in
the first example) from 6/30/1998 to 9/30/1999. This required dropping one of the test
cases (the case which had the IS period ending on 9/30/1998). Here are the average
return results for the top ten systems for each of the optimization runs:
65
"Stale"
monthsOSReturn,
%/year
037.7
640.7
1841.8
These results are very encouraging because all systems are comparable and the “older”
systems actually have slightly better performance. The results would encourage us to
trade systems for a year or more prior to re-optimization. See the Frequently Asked
Questions chapter for additional comments on this subject.
Are Sector Funds Getting Harder to Trade?
While doing studies with Fidelity Select funds, we noticed that it has become more
difficult in recent years to trade these funds. We wanted to determine if trading system
“out-performance” was similar year to year. Out-Performance is the benefit of a trading
system over buying and holding (B&H) all members of the Select family. In other words,
if you put an equal amount of cash in each of the select funds, you would have a given
return. Now, optimize a trading system for that same year (this is the most optimistic
return an investor could expect) and how would the return compare? If the optimized
return is twice as good, that would be a Trade Return/B&H (out-performance) ratio of 2.
We used the out-performance ratio rather than absolute return as the performance
measure because the intent of a good trading system is to out perform B&H. In a very
good or very poor market, using absolute return could be misleading. For completeness,
here are the B&H returns, average of the Select family, for the June-June periods:
We did a simple study that looked at trading systems in 12 month increments. The start
and end date was the first trading day of June for each year. All systems held 3 funds and
optimized for a 15% MDD. Below are the results from the study:
66
5.0
4.0
3.0
2.0
1.0
0.0
Trade Return/B&H
1
1
1
1
1
1
1
1
1
1
9
9
9
9
9
9
9
9
9
9
9
9
9
9
0
1
2
3
4
End Date
9
5
6
9
9
9
7
2
9
0
9
8
0
9
0
What is very clear is that in the early to mid 90’s, it appears that your chance for outperformance was much better. The ratio hit a low in the June 1996 – June 1997 time
period where the optimum systems actually under performed B&H. The tide seems to
have turned in recent years.
There are several theories as to why this change would have happened. Our favorite is
that the investors and fund managers are much “quicker on the trigger” in recent years.
When money quickly leaves one sector and goes to another sector, it can leave mediumperiod trend following systems in a whipsaw.
You need to be aware of the above information when you are looking at year-to-year
performance. Do not be discouraged if your sector trading systems perform poorly in the
June 96-97 time period.
Trading Growth Funds
We believe that too much emphasis has been placed on “Sector Rotation,” and that it is
much easier and just as profitable, to develop trading systems that invest in more
diversified funds such as growth funds. We built a trading family of 44 aggressive and
small cap growth funds that are generally available to trade without transaction fees. Our
system held two funds, with an MDD goal of 15%, IS date range of 6/19/1989 to
12/31/1997, OS date range between 1/2/1998 to 10/20/1999. We limited the number of
switches to 18 per year. We tried optimization with a variety of options in FastBreak Pro,
including mutation percentages, robustness variable, etc. The IS returns were
approximately 30%/year, and the OS performance was generally in the 50%-60%/year
range. The MDD OS was typically in the 15%-20% range. This is encouraging because
the OS date range included the severe sell off in the third quarter of 1998.
67
Trading International Funds
IS Return, %/year
We built a family of 34 international funds that can be traded with either no, or low
transaction fees. We examined the impact of restricting the number of switches per year
on trading performance.An investor may want to constrain trading because the
brokerage company may have a limitation on trades allowed per year. The strategies were
optimized with an IS period of 1/4/1993 to 12/31/1997, OS period of 1/2/1998 to
9/19/1999. Strategies holding either one or two funds were optimized for 5, 7, 9 switches
allowed per year (if one fund is held), 9, 12, 15 switches allowed per year (if two funds
were held).A judgment was made for selecting the “best” generation from 15 total
generations. In general, the generation with the best OS average was chosen. Here are
the annual performance results for both IS and OS:
60
50
40
30
20
579111315
Switches/Year
1 FundIS2 FundIS
1 FundOS2 FundOS
In all cases we get outstanding OS performance, and we see a general trend of IS
performance increasing as more trades are allowed. This is not surprising, since allowing
more trades gives the GA more latitude in parameter selection.What is somewhat
surprising is that the best OS performance results are from the more restrictive switches
per year cases.This would indicate that although there may be a penalty with IS
performance when restricting switches, the strategies may not be hurt in their predictive
capability and may actually be improved. This is a small sample of test cases and your
results may vary. You should be aware of these types of trends when restricting switches
per year.
Double Period Walk Forward Testing (Select Funds)
The major assumption for system development using FastBreak Pro is that systems that
perform well on historical data will perform well on future data.This assumption is
proven to a large extent by the fact that the Out-of-Sample results have good returns and
these results improve, on average, as the In-Sample results improve from generation to
generation. You may want to repeat the test that follows for a couple of reasons. First, it
will help you feel comfortable with the systems developed, and second, it may help you
68
discover ways of choosing from among the “best” trading systems provided by FastBreak
Pro at the end of each generation.
When FastBreak Pro completes an optimization, it provides you with ten systems that
have good IS performance, and good OS performance. It is at this point you would begin
to trade the system. Although the OS performance may be good, the data that was used to
develop the systems is now even older. The following study was made with an IS period
of 5/12/1989 to 10/1/1996. The OS period was 10/1/1996 to 4/1/1998 (18 months). The
study used the Fidelity Select Family minus the gold funds. Only the MAM option was
chosen, holding three funds, with a 15% MDD goal.Here is the Out-of-Sample Results
screen that you would have seen on 4/1/1998 if you had run this study:
You could argue about which generations would have been chosen, but we chose
generation 6 because it had the best OS ANN return (see comments on generation 14 at
the end of this section). The second decision you would have had to make on 4/1/1998 is
which system (DFT file) to use from generation 6. All ten DFT files were examined in
the OS period, and then all ten systems were tested forward from 4/1/1998 to 9/10/1999
(we call this the “Post OS period”). Here are the results:
It can be argued which of the ten systems would have been chosen to be traded. The outof-sample MDD was very similar in all cases. In this particular instance, the best OS
strategy, system 9, also happened to be the best Post period case at 45.8%/year. We
would like to say this always happens, but that is not the case. The second best case,
system 10, had a significantly lower but still impressive return, and the worst OS case,
system 3, had a very respectable Post period performance of 32.2% As you can see, this
is not an exact science and is further evidence you should always be trading a variety of
trading systems. Trading systems run hot and cold, and you can obtain more consistent
returns by trading multiple systems.
You may observe that, on average, the S&P 500 beat our systems in the OS period. This
is not too surprising in that the large capitalization stocks did very well, and there were no
significant market corrections. However, in the Post period, the market was very volatile,
and our systems were superior.
Note: Generation 14 was our second choice because it had nearly the same OS return
as generation 6, but had a much lower standard deviation on the systems. Although
the best system in generation 14 was not as good as the best in generation 6, the worst
system was much better. Here are the results using the FNU curves: OS Average =
34.6%/year, Post OS return = 33.3%/year.
Looking at Equity Curves
There is an issue with strategies that hold multiple funds that you should be aware of.
When FastBreak evaluates a specific trading system holding multiple funds, it invests all
positions on the first date of the evaluation period.This is not the way you would
typically enter a new trading system, i.e., you would gradually enter new positions as new
trades happen. This can distort the performance over short time periods, but the effect
dampens with longer time periods. You can reduce the effect by running a system over
the entire FastTrack database time period and then look at the equity curve (FNU file)
that FastBreak can output.The FNU file can be imported into FastTrack, where
performance can be measured between any two dates. Here is an example that uses the
results from the previous example and shows the performance difference:
Average32.531.92728.4
S&P37.237.214.714.7
Family Avg.32.632.611.311.3
On average, using the FNU equity curve to measure performance shows a slight
improvement in both the OS and Post OS Period. What is important is how individual
trading systems are affected.For example, cases number 3 and 4 show dramatic
differences in the OS period. Although not as dramatic, we see similar results with case 7
in the Post OS period.
We recommend that the FNU files be generated when doing the final decision making on
which system to trade.
Double Period Walk Forward Testing (International Funds)
Here are the results from a study that looks at double period walk forward testing. It is
similar to the previous study performed with the Select funds.
IS optimization started on 1/4/1993 and ended on 10/1/1996, with an OS period from
10/1/1996 to 4/1/1998.A Post OS period evaluation was made from 4/1/1998 to
9/10/1999. Two funds were held using MAM, an MDD of 15%, and a goal of 9 S/Y.
Here is the FastBreak Pro Out of Sample Results Screen:
71
Generation 8 was selected for detailed analysis. Here are the results (using FNU equity
curves):
These are outstanding results, especially considering less than four years of data was used
for optimization.
72
Reversing the In-Sample and Out-of-Sample Data Periods
IS
FastBreak Pro allows the OS data period to be earlier than the IS data period. The more
traditional method is to allow the GA to derive parameters then perform walk-forward
testing on the most recent market data. The advantage to the traditional order is to look at
the predictive capability of systems on the most recent history. However, an argument
can be made that it is better to present the most recent data to the GA so that parameters
are optimized on recent history. Testing the systems on older data is used to recognize
when over-optimization begins to occur.
A study was performed to compare the two different methods. One optimization run was
made in the traditional order using an IS period of 6/1/1989 to 12/31/1996. The OS
period was 1/2/1997 to 12/31/1998. A second run was made reversing the IS/OS order
using an IS period of 6/1/1991 to 12/31/1998 and the OS period was 6/1/1989 to
5/3/1991. Our standard Fidelity Select testing family was used. The best systems from
generation 10 of the first run were saved along with the best systems from generation 12
of the second run. These twenty systems were then tested for the period 1/2/1999 to
10/29/1999. Here are the results:
Columns 2 and 3 are results from the traditional date order, with columns 4 and 5
reversing the test order.In this particular study, the traditional date order produced
superior returns in 1999 – 38.8% vs. 23.4% returns, and 11% vs. 13.9% MDD. Both
methods out performed the family average.
This single study does not necessarily prove that the traditional date order is always the
best.We have included the study results to advise you that the date order can be
reversed, and that under other conditions may prove useful. Postscript: The ability to
reverse IS and OS order became very important during the bear markets of 2001 and
2002. This date range was the only significant bear market data in the FastTrack
73
history. We found that optimization on this recent bear market data improved risk
OS
IS
performance.
The Effect of MDD Objectives on Performance
All investors want trading systems with a small MDD. Here are the results of a study that
looked at how MDD performance objectives affected both IS and OS performance.
Annual performance was optimized, but MDD constraints of 10%, 15%, and 20% were
also applied. The study used the Select trading family and held three funds. The IS
period was 5/12/1989 to 12/31/1996 and the OS period 1/2/1997 to 9/15/1999.The
optimization was made with three funds. Here are the IS performance, OS performance
and OS MDD:
40
35
30
25
Return, %/year
20
5101520
MDD
MDDGoal, %
ISOSOS MDDSP
As expected, the IS and OS performances are reduced when the MDD goal is made
smaller.This is a very common observation with trading systems.Risk avoidance
typically has a negative effect on performance. The same impact to performance is seen
in the OS results. System developers need to know the performance-risk ratio when they
design systems, and making a few runs similar to these can show that affect. In our
example, we see approximately 10% annual reduction in performance (IS and OS) as we
try to reduce the MDD from 20% to 10%. The close relationship between IS and OS
return is very encouraging, especially when we consider that the OS period is nearly three
years long. We have overlaid the OS MDD values on the chart – solid triangle symbol.
An unfortunate observation is that we were not as successful with maintaining the MDD
in the OS. This is not unexpected because: A) Select funds are very volatile, B) the OS
period included the very severe 1998 bear market, and C) we didn’t use market timing.
There is an option we can use to help improve our results. We have found that system
OS performance is hurt if several stop options are activated.This is exactly what
74
happened when we tried to build a system with a 10% MDD. We have put an option in
FastBreak Pro that applies a penalty to systems that activate several stops. FastBreak Pro
will now “avoid” trading systems that activate too many stops. The above example using
a 10% MDD goal was rerun with this penalty activated. The IS, OS and OS MDD results
are shown using an X in the above chart. We see that all three measures of performance
were improved using this option.
75
11.0 Frequently Asked Questions and Common Problems
Q) I crashed my hard drive (got a new computer, new laptop etc.) and I need to reinstall
FastBreak Pro.
A) This is our most common tech support call. You MUST use the installation CD to
reinstall. We have had a number of users just try to copy files to the new computer or
hard drive. This will not work. Here are the steps:
Install FastTrack first
Do at least one download and update of FastTrack data
Verify that the FastTrack account number on this computer matches the account
number on the FastBreak CD
Install FastBreak using the installation CD
Go to our web site and download the latest upgrade, if one exists
Q) I set the first population size at 200 (or some other value), and I see that over 200
systems were tested. Why?
A) The strategies for the first population strategies are built totally on a random basis.
Any strategy that does not produce a positive return is rejected, and a new strategy is
built to replace it. In general, you should not see more that a 10%-20% growth in the
first population size you specified. If you see the number of strategies evaluated exceeds
the population size by a wide range, it is usually because you are running an optimization
during a severe market down turn and you have a limited selection of funds.
Q) How can I make the optimization process run faster?
A) The following options have a significant impact on run time: Maximize Robustness
Option, AccuTrack ranking, slope ranking, BOSS, and Maximum Correlation check, beta
and correlation buy filters. Also, it is always important to filter your trading family to a
reasonable size.
Q) I selected the POP option (or BOOM option), but it never gets selected, and none of
my final strategies use it?
A) Not all combinations of options are available in all combinations. See Standard
manual for a table of option combinations.
Q) Can I run multiple copies of FastBreak Pro at the same time on my computer?
A)Yes. We often run three or more copies when we make overnight runs. You must
make certain you have enough computer RAM. If you notice a substantial amount of
hard drive activity, then decrease the number of copies running. There should be little
“over head” effects on performance, i.e., two copies run just about twice as long as one
copy. To run multiple copies, go to the folder where FastBreak Pro is installed and
double click on ftbreakp.exe to launch additional copies of the program. Note: If you
are using the Family Optimization option, then only one of the executing copies can
have this checked. The reason is that when optimizing families, FastBreak Pro creates
76
a temporary family file to use. This will create confusion if multiple executions are
trying to read and write to this family file.
Q) I created a new custom trading family but FastBreak does not show the family as
being available?
A) When you launch FastBreak, it copies the FastTrack families, fund names, and FNU
names into memory. You must shut down FastBreak Pro and re-launch it to make this
new data available.
Q) Sometimes I see the best out-of-sample (OS) performance in an earlier generation, but
it is deleted in later generations. What is going on?
A) FastBreak is trying to optimize results for the in-sample (IS) time period. We are
interested in systems that perform well over the IS and OS periods. Choosing a trading
system that performs well only during the OS time period is equally as bad as choosing a
system that does well only during the IS optimization period.
Q) How often should a system be re-optimized?
A) There are numerous theories about system “shelf life,” and we can only give general
guidelines. Often, the model will need to be re-optimized when there are major changes
in the trading family. For example, some mutual funds are no longer available or new
funds with good performance become available. The primary reason for re-optimization
is due to changes in market conditions. A rule of thumb from Pardo’s book is that a
system is valid for 1/8thto 1/4thof the optimization period. Therefore, if you use eight
years of price data for optimization, then the system would be traded for one to two
years. In general, we recommend re-optimization every year. Of course, if the trading
system starts to fail (under performance or an MDD that exceeds the historical value),
the system should be re-examined. Trading systems that are very over-optimized will
often fail very soon after development.
Q) When I put my out-of-sample (OS) test period prior to the in-sample (IS) period I get
an error during execution?
A) FastBreak Pro error checks the start date for the IS period to be certain you have
allowed enough data for ranking, stops etc.It will automatically adjust the start if
required. However, it does not error check the start date for the OS start date (we had
assumed the vast majority of users will put the OS period after the IS period). You may
want to try a later start date for the OS period to avoid the error.
Q) I’m using NCalpha ranking, and the funds ranked highest have recently dropped more
in price than any other funds in my trading family. How can funds that have dropped so
much be ranked high?
A) Look at the formula for NCalpha in the Appendix. Funds that have dropped a lot
during a major market sell off can have a very high beta. The high beta combined with a
negative index gain over the ranking period can result in a positive alpha. For example,
a fund with a beta of 3, while the market index decreases by 15%, will have a positive
NCalpha if it looses less than 45%.
77
Q) Should I ever “over-ride” the trading system?
A) Usually the answer is no. One very good reason to stop trading a system is if the
system starts to experience an MDD that is greater than the historical maximum value.
This is an indication that the market conditions are not favorable with your system. It
may be time to either reoptimize the trading system or wait until market conditions
improve.
Q) When I use the Short/Long ranking method, the optimizer finds strategies where the
“short” parameter is longer than the “long” parameter. How can this happen?
A) The short and long parameters are exponential moving averages (EMA) periods.
When a fund is moving up strongly in the short term compared to the long term, this
usually indicates price strength, and the ratio of short EMA divided by long EMA will be
a large value. However, if a long EMA divided by a short EMA results in a large value,
this indicates short term weakness. So why would the optimizer pick this condition? It is
called “buying the dips.” In a very strong market as existed in the 1990’s, the buy the
dips was a very profitable strategy. Funds that sell off the strongest in a short term pull
back are often the funds that rebound the strongest.Note: In response to users, in
version 5 we allow the user to force the Short EMA to be less than the Long EMA.
Common Issues and Problems
The family name can only contain 8 letters. If you optimized the family with FastBreak
Pro, give your DFT file a maximum of 7 letters because a 0 through 9 will be appended to
make 8 letters.
When entering IS and OS dates, use the format mm/dd/yyyy. This means including all
leading zeroes. Enter 03/07/2000 instead of 3/7/2000.
78
Appendix A -- Technical Discussion
What are Genetic Algorithms?
Genetic Algorithms are a mathematical method used to solve hard optimization problems.
The method simulates the biological processes of “evolution”, “natural selection” and
“survival of the fittest.” Biological terminology is used to describe the process:
Individual trading systems can be thought of as a “chromosome”
Individual options and parameters in a trading system are called genes
A group of chromosomes are called a “population”
Chromosomes are “mated” and “offspring” are produced
These offspring may have “mutations” added
The offspring are evaluated for “fitness,” which for the purposes of our investing is
performance
Only the most fit (best performing) offspring are allowed to survive and mate to
produce the next generation of chromosomes
FastBreak Pro builds the first generation of chromosomes (trading systems) using a
random process. Options and parameter values for trading systems are chosen from the
options and range of values provided by the user. The systems are tested in FastBreak to
find the back-tested performance, i.e., Annual Return, MDD, and UPI. If the Annual
Return is negative for a system, it is not allowed to “survive.”This is why you may see
the Current Population counter at the bottom of the Best Results screen exceed the size
value you specified for the first generation.
The FastBreak Pro user can specify one of three variables to optimize: Annual%, UPI,
and MDD. The user can also specify additional “objectives.” For example, the typical
user will want to optimize Annual% but may also require a maximum acceptable MDD, a
maximum number of switches per year, and a minimum UPI. These additional objectives
are used to obtain an “adjusted” performance value. The adjustment is a penalty applied
to the optimized variable.
Here is an example: A user may specify to optimize Annual%, with a MDD of no more
than 15% and a maximum of 10 switches per year.A hypothetical system may return a
value of 20% annual return, with a MDD of 18% and 14 switches per year. The adjusted
performance is calculated by multiplying the system return by penalty functions as
follows:
79
Adjusted Performance = 20% x 15/18 x 10/14 = 11.9%
This calculation is made for all systems (chromosomes) in a generation. All the adjusted
performance values are put in order, from best to worst. At this point, only the best
systems are allowed to “survive.” The percentage to survive is controlled by the user, but
a good starting point is 50%.
The next step is to combine system parameters to produce hybrid offspring. This can be
thought of as taking some aspects of one system and combining it with aspects of another
system. We will not go into the mathematical details, but the idea is to try to find better
combinations of trading options and parameters. The result of this combination is an
“offspring” or “child.”The offspring may also be “mutated” using a random process.
The effect of mutation may effect a positive change or a negative change. You will not
know until the new trading system is evaluated. Reasonable mutation rates are 2% to
10%. If you see that your runs are not improving from one generation to the next, this
can be due to premature convergence on a local optimum (as opposed to a global
optimum), or to the fact that the mutation rate is too high which is providing too much
randomness in the process. You can try increasing and reducing the mutation percentage
to improve the optimization.
The offspring form the members of the next population and the process begins again.
Improving Robustness
One of the most serious concerns with trading system development is the problem of
system “robustness.”Robustness is a measure of how a trading system will perform
under a variety of market conditions. The goal of any trading system is to perform well
under a wide variety of market conditions.Trading systems that have been overoptimized very often are not robust.
One indication that a system may be robust is if small changes in trading parameters do
not seriously affect historical performance. For example, if using a moving average stop
of 50 days works well and using 45 or 55 days also works nearly as well, then this could
be considered robust.
With the standard version of FastBreak, we recommend using the contour graphing
capability of FastGraph to examine how parameter changes affect performance. While
this is very effective, only one or two parameters can be examined at a time. We have
taken an approach with FastBreak Pro that is similar to what a user looks for with
FastGraph, but we have incorporated it in a manner that allows the software to make the
evaluations rather than relying on human interaction.
FastBreak Pro performs an automated sensitivity analysis of parameters. After FastBreak
Pro has evaluated the trading system, two additional runs of the same system are made,
but with a small variation in all the parameters. First, the parameters are increased by a
user-defined percentage using the following option on the GA Screen:
80
In this example, the parameter values are all increased by 5%. The strategy performance
from this run is saved.Then a second evaluation is made, but this time the trading
parameter values are reduced by 5%. The performance results are also saved.
At this point FastBreak Pro evaluates robustness in one of two ways. The user can
control which method, if any, is used with the following option on the GA Screen:
If the user selects the “Lowest” option, the software looks at the two parameter variation
run results, selects the one with the lowest performance and divides the return by the
return from the original run. For example, let’s assume the original run had an annual
return of 24%. Increasing the parameters by 10%, the return was 20%. Decreasing the
parameters by 10% resulted in a return of 18%.The 18% return is the lowest and the
software divides 18% by 24% giving a result of 0.75.
FastBreak Pro now compares the 0.75 result to the user-defined Maximize Robustness
value, which in this case was set to 0.85.Since 0.75 is worse than 0.85, FastBreak
applies a penalty to the strategy return. The penalty is simply the 0.75 divided by 0.85
and it is applied to the original strategy performance, i.e., 24%, to obtain the Adjusted
Performance. In numbers:
0.75/0.85 x 24 = 21.2%
If the worst case ratio had been greater than 0.85, then no penalty would be applied.
Similarly, if the Maximize Robustness value was set to 0.75 or less, then no adjustment
would be made.
The robustness penalty is one of several penalties that can be applied to obtain a strategy
Adjusted performance. All the other user-defined performance criteria (UPI, MDD, and
switches per year) can result in an adjustment to the actual system performance. All these
adjustment penalties are multiplied together and applied to the original actual
performance.
If the user selects “Average” to maximize robustness, the penalty calculation is slightly
different. All three strategy return values are averaged and that average is divided by the
original performance value. Using the above example:
Average return = (24% + 20% + 18%)/3 = 20.7%
The performance ratio = 20.7%/24% = 0.86
81
Since 0.86 is greater than 0.85, no robustness adjustment is made to the original 24%
performance.
Which method, Average or Lowest, is better? Our research shows both give similar
results, but we have a slight preference for the Lowest option.
We have experimented with different values for the Robust Factor, and we prefer 10% for
the robustness factor. We have experimented with the Maximize Robustness value, and
we prefer 0.85. Please feel free to experiment and determine your own value preference.
There is a severe penalty in run time when using the Maximize Robustness option. It
takes three times longer to run the same number of generations. However, in general, we
have seen improved out-of-sample results. We encourage you to experiment. Here are
the results of four optimization runs where the only variable changed is the +/- values
used to determine robustness:
36
34
32
30
28
26
Return, %/year
24
051015
Variable Variation, +/-%
ISOS
By doing a variation of +/- 10% in our robustness check, we obtained the best OS
performance. Smaller and larger values did not provide results that were as good.
Note: If you elect not to use the Maximize Robustness option, you will notice that
FastBreak calculates the robustness value when a strategy makes it into the Top 10 of
the Best Results screen. This is to provide additional information to help select which
of the top ten systems to use.
Using the robustness option does not always result in trading systems with the best IS and
OS trading systems. Actually, the above chart is somewhat unusual in that the IS results
actually improved with the use of the robustness check. Typically, better returns would
be found during the IS optimization without robustness because the robustness check is
yet another constraint that the genetic algorithm needs to satisfy. Adding constraints
82
usually results in a reduction to the variable being optimized (constraints such as MDD,
or switches per year have the same effect). We are willing to pay a small price in IS
performance if it results in a system that has better OS performance, i.e., better predictive
ability. What is probably happening in the above example is that the robustness is
preventing the genetic algorithm from converging too rapidly.Trying to satisfy the
robustness constraint is similar to the effect of mutation.Preventing too rapid of a
convergence forces the genetic algorithm to do a better job of examining the total trade
space (“trade space” is a way of saying full range of parameters) . This results in finding
better parameter solutions.
In some cases, you may see a significant difference in performance with a small
percentage change in parameters. For example, you may have a small trading family with
only four members. Using a Top% value of 59%, the sell point is reached when a fund
drops out of the top two ranking positions (0.59 X 4 = 2.4 which FastBreak Pro rounds to
2). When the 59% Top% is increased by 10% the sell point requires the fund to drop out
of the top three ranking positions (0.59 X 1.1 X 4 = 2.6 which FastBreak Pro rounds to 3).
You must be aware of these types of effects.
It may be emotionally difficult to select trading systems that use the robustness check and
do not perform as well compared to systems that skip the robustness check. However, the
majority of trading systems developers would argue that systems sensitive to small
parameter changes should not be trusted.
Issues to Consider when using the Trendline Options
Minimizing Runtime when using the Trendline Options
As noted earlier, the trendline algorithm is very computer time intensive. Because it
takes so much time to calculate each trendline for each member of the trading family
FastBreak Pro will calculate all the versions of the trendline for each fund just once. This
is to say that if you give trendline Buy Filter a “Size” range from 0 to 10 there are 11
trendlines that need to be calculated for each member of the trading family. If your
trading family has 100 members that requires calculating and storing 1100 trendlines.
FastBreak stores these different versions in an array and uses them over and over as the
genetic algorithm chooses them.
The FastBreak Pro optimizer builds this array at the start of the optimization process. It
can take an hour or more to build all these trendlines for a large family. The good news is
that once all the trendlines are built and stored the remainder of the optimization process
will run at normal speed.
NOTE: When you start the optimization process you will think the program is locked
up. We highly recommend that when you first experiment with the trendline option to
use very modest family sizes.
83
The time it takes to build the trendlines is dependent on the following:
Number of family members
Size range for trendlines to be built. If you use 1 to 20 vs. 1 to 10 it will take
twice as long because twice as many trendlines need to be built.
Selecting the Optimized logarithmic vs. linear option will double the set up time
because both versions of trendlines will need to be calculated.If after
experimenting you always find that the Log version is being chosen then using
only the Log version in the optimizer will reduce the run time by half.
Your computer speed
It doesn’t matter if you choose only the trendline Stop rather than both the trendline Stop
and the trendline Buy Filter. The same trendlines calculated are used for both options.
Note: The trendlines are not saved when you save a FastBreak Restart file. If you load
a FastBreak Pro Restart file the trendlines will all recalculated. Therefore, if you
think there is a reasonable possibility you want to use the optimum strategies found
during an optimization run then it is best to save the best generation strategies at the
end of an optimization run rather than loading the Restart file at a later date.
Data Required to Determine a Trendline
It can take a considerable amount of historical data to determine the first trendline. This
is because it requires two meaningful dips (in the case of an upward trendline) to create
the first trendline section. If the stock or fund is in a significant upward movement at the
beginning of its historical data, then no trendline can be drawn. Until a trendline can be
drawn, FastBreak will assume that the stock or fund is BELOW its trendline. Therefore,
this stock or fund can’t be purchased if either the trendline Stop or Buy Filter is used by
the strategy.
You need to be aware of this issue because you may see situations where a stock or fund
is highly ranked and clearly in an uptrend but a strategy will not purchase the equity.
Repeat, until a stock or fund has two meaningful dips in the equity curve a trendline
cannot be constructed, and therefore FastBreak will assume the issue is below the
trendline and unavailable for purchase.
Will not work with Optimize Family Option
Because the trendline option builds a series of trendlines for each member of a trading
family this makes it impractical to use with the Optimize Family option.When the
Optimize Family option is checked, a new family is built every time a new strategy is
evaluated.This would require building trendlines over and over again and the
optimization run time would be prohibitive.
84
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.