Contents of AB-FT afl17 zip

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 ...

 

 

 

Contents of AB-FT afl17 zip