04-03-2008
Welcome and hope you find these files of use to you
This zip files includes the following:
Ruttrft
09/16/07
Dave Howarter -Ruttrft.sig
fans - I reoptimized Ruttrft.sig from start of the database to 9/24/2007 using
AB/IO. The returns from the reoptimized version are not quite as good as the
manually optimized version Don Bell posted 4/18/2006, but IO optimized for
sensitivity to changes in parameters, so maybe the reoptimized version is safer.
The changes in parameters between the two versions are all fairly small.
Then I checked each version for how much change in Rut-I today, 9/26/2007, is
needed to trigger a buy condition. I also checked that for a set of parameters
Fred posted on 8/29/2005. The Rut-I changes to trigger a buy for each are:
a. Fred's 8/29/05 params = +0.88%
b. Don's 4/18/06 params = +0.98%
c. My reoptimized 9/24/07 params = +1.28%
I will attach a Trade .ini file with the reoptimized params and the TradeFR file
I use to automate testing of index changes needed to trigger a signal change.
One might be able to create a better reoptimization than the one I did, as Fred
has given us a number of optimization parameters in IO that the user can set. I
will also post the AFL I used for optimization and maybe someone can find a set
of IO parameters that will produce a better optimization. (My IO parameters are
for IO version 2.9)
Ruttrft
09/27/07
Dave Howarter -Ruttrft
with the params Fred posted in August 18, 2005 also buys today if rut is up 4.1
points, the same as your version will do.
I tried some different IO params for optimizing ruttrft and found a better
reoptimization than the one I posted yesterday. This one has a little better CAR
overall and quite a bit better CAR for the last one year trading DFSCX than the
version you posted 4/18/06. The Mdd is a little worse (10.8%) in March 2000, but
8.99% after that. So I think with these optimization params IO is giving results
very close to your manual optimization and hopefully producing parameters that
will be not very senstive to changes.
This version will buy today if Rut is not down by more than 0.40% so we have a
good chance of a buy.
Risky
10/03/07
Upal Hasan -Here's
DAB's risky signal translated to AFL. Sorry for not posting earlier...I wanted
to test it out a bit. I walked it forward a few times on HRTVX and the signal
did well. It's worst drawdown during the WF-Test periods was in 2004 of 10.74%.
Then again, just about every signal that I've walked-forwarded did poorly during
that time.
I'm not sure if you guys pay any attention to these statistics, but the WFECar
was 98.56% and it's WFEMar was 71.50%. I believe that's good. The CAR has been
about 18%.
The only thing that I changed was some of the funds that DAB used. Since I don't
subscribe to the FT DB yet, I couldn't use the exact funds. And for some reason
I couldn't find any similar ones either. So I kinda just used a few different
ones.
If anyone with the FT DB wants to try walking it forward with the original set
of funds, I'd be interested in hearing about the results.
The only other thing that I have not done is a Monte Carlo Simulation analysis,
but then again, I'm not sure if would be useful for intermediate term trading
signals. I'll look into that soon.
But anyways, let me know if you guys have any questions regarding the syntax or
whatnot.
DC 9
11/12/07
Dave Howarter -Weighted
combinations of signals – I have been watching the systems for weighted
combinations of signals that Arne and Mark have been posting and have seen their
impressive results. I was skeptical because their systems did not have much
backtesting and it was difficult to determine how well they would have worked in
real time because the posted systems were always recent optimizations. However,
Don Carlson talked to me about the merits of the approach and convinced me to
look into it further. After doing that I think there is some significant
benefits from forming a buy/sell decision from a weighted combination of several
signals.
One of the problems I had with the work of Arne and Mark is the complexity of
the steps they take to combine signals. Don Carlson implemented a Trade file,
DC3.INI to create all weighted combinations of three signals but this requires a
second process to determine which weighted combination is best. To make the
entire process simpler and to add some additional capability I decided to
implement an AmiBroker version of that has the following attributes:
..1. Creates the weighted combinations of up to nine signals at one time. (This
could easily be expanded to more than nine if desired.)
..2. Analyzes the weighted combinations using Fred Tonetti’s IO to determine
which combination has the best trading results. AmiBroker could have analyzed
all combinations of the weights, but that would have required a very long run
time, probably several years, so using the intelligent optimization in IO was
the only practical way to handle the large number of combinations of the nine
signals.
..3. Displays a plot of the weighted sum of the nine signals with buy and sell
levels to give a visual display of the system’s status.
..4. Does all the above, including backtesting, in one AFL file for ease of use.
In order to do rigorous walk-forward testing, I would have needed to code the
AFL to create all the nine signals within one AFL. This would have been a lot of
work so instead I decided to import previously created signals and use only
signals that I had previously walk-forward tested with IO or which had not been
changed for several years so had significant out of sample real time results.
Thus before using the AFL below you will need to create via Trade or Amibroker
the 8 signals I am using, or change the AFL to use signals you have created.
One of the benefits of IO is that if a signal is not adding positively to the
results, IO will set the weight for that signal to zero. In my testing I have
only found 8 signals that meet my “walk-forward tested or long history” criteria
and positively improve the results. So currently I am only using 8 signals.
The results of this have been quite impressive IMO. Trading LZEMX to a zero
interest index fund over the time period from 4/1/2001 to 10/5/2007 the weighted
combination of signals is giving CAR = 44.10%, Mdd = 5.72%, MddE = 0.97% and CAR
for the last one year = 73.18%. This is quite a bit better than any of the
individual signals do.
All the signals I am using were created by someone else and have been posted on
FT-Talk, so are available in Dexter’s archives. Thus anyone desiring to do so
should be able to reproduce the results using the AFL I will post below. I
included instructions on how to set up a run in the beginning of the AFL that
hopefully are adequate for anyone with a minimal experience using AmiBroker.
One caveat is that I started this testing before Don Bell posted his 10/28/2007
version of eem.ini and I found my CAR and Mdd were somewhat worse using the
10/28/07 eem.ini, so I am still using Don’s 9/22/07 version.
I will attach below:
..1. The AFL file
..2. The results of the IO optimization. On the bottom pane the red line is
buy/hold LZEMX and the yellow line is the results of trading with the weighted
combination.
..3. A screenshot of the way I display the plot of the weighted sum and the
eight individual signals for a quick check of the current signals and system
status. I use Bruce Robinson’s votesigs2.afl to display the 8 individual
signals.
Someone who does not have AmiBroker could reproduce the same trading results
using only Trade. Doing so would require looking at the AFL I am posting,
determining what signals I used and the weights that Trade assigned to them, and
then implementing them using the approach that Arne and Mark have posted.
In the AFL I created I added one feature that the Trade versions have not used.
The basic approach is that when the weighted combination of the signals that are
on a buy crosses upwards through threshold value, the system goes to buy. If the
weighted combination then crosses downwards through a sell threshold the system
goes to sell. To be sure the system does not lock up, I required that the sell
threshold level be equal to or less than the buy threshold level. But I also
wanted to allow for the possibility that the weighted combination could go up
quite a bit and then it would be best to sell soon after it turned downward,
even though it was still above the buy threshold. So I created a second sell
threshold above the buy threshold and let IO test all combinations to see if it
could find better results using two sell thresholds. So far, it has not, but I
left the code in as it might if I were optimizing on some other fund or signals
than the ones I am currently using.
One thing I want to comment on is the fact that I optimized over a time period
of 6.5 years to include both some of the bear years and some of the good years.
Arne and Mark have been optimizing over a much shorter time period, less than
one year I think. However, in my walk forward testing of good signals, I have
observed that if you start an anchored walk forward before 2000, you will
observe that the signal is doing pretty well up until March 2000, then has a bad
drawdown because its parameters are not set to handle the bear market situation.
But then after including both the bull and bear market in the optimization time
period, the signal will find parameters that handle both pretty well. Therefore,
I think it is much safer to use signals that have been optimized over both bear
and bull market time frames and to optimize the whole system over both. Maybe
there is some value to optimizing over only recent time, but when I can optimize
over both and get very good results, I am sticking with that approach.
I consider this a work in progress and a tool that others can use, so I will
appreciate any feedback from others on how they extend it or use it with
different signals and/or optimizing funds.
I want to thank Don Carlson, Arne and Mark for pioneering the basic approach
that I picked up on, Don Bell and Dave Serbin for developing the signals I used
in the weighted combination, and Fred Tonetti for providing the IO tool without
which I could not have done the 9 signal optimization.
VoteSig2 11/12/07 Dave Howarter -
ValueRequired
11/14/07
Fred Tonetti -It's
currently set up for a 13/21 EMA X/O ... In the comments are replacement
statements for an MACD Trigger. You can write whatever you want for goal and
calc i.e. two parts to an indicator or a full system etc in the two functions at
the top ... Leave the rest of the AFL alone unless you need:
- An array other than close to drive the process
- A different number of bars into the future or past
- A higher degree of accuracy than 2 decimal places
... In which case you can change the parameter values in the calling statement
at the bottom ... Then just click Explore in AA to run.
It essentially performs a fast binary search of values from extremes to find
necessary price or other array value to meet the goal. Should take less than a
second to run for virtually anything you can dream up ...