Category Archives: Lazy Man System
When I last wrote about Lazy Man’s system for trading the S&P E-minis, the system had been optimized on in-sample data and then backtested on out-of-sample data. The out-of-sample results were not very good, but I am always hesitant to write off a system due to a short period of under performance.
I ran a test this evening to see how the system has performed since April 29th, when the out-of-sample results were posted.
Performance has not been stellar, but has improved. The short trades are out-performing the longs over all metrics. This is odd since the market has had an upward bias during most of this period. I could go through and visually examine all the short trades and hazard a guess as to why the shorts are out-performing, but that is not really the purpose of this post.
The next series of charts show the history of all the out-of-sample data, starting from February 16, 2009, the first date of the out-of-sample test.
Compared to the first out-of-sample test, we have seen a small improvements in the system. Both the long and short trades are showing positive expectancy, although the average long trade net profit has dropped while the average short trade net profit has increased. Again, over an even longer term, we are seeing the system shift from out-performing on the long side to out-performance on the short trades.
The win % of both the longs and shorts has varied little since the original test, although (surprise surprise) the shorts have slightly increased their win % while the longs have slightly decreased.
Perhaps the easiest way to measure the system is to determine whether it has been profitable. Indeed it has been profitable, although this has come from short trades, primarily, as the long side has actually lost money since the first test.
As this system uses fixed profit targets and fixed stop losses, I believe this system could be telling us that the market is changing, slowly. We would expect some change, even if it is shifting back towards “normal,” after the volatility of 2008. I will let the system continue running with the current settings, and then re-optimize before the next update. An analysis of how the optimal settings have changed since the first optimization may provide some important insights into how the market is changing.
All the posts on Lazy Man’s ES System are housed here: The Lazy Man System.
Equity Curve, Lazy Man System Out-of-Sample
As evident from the above report, the system did not perform nearly as well during the out-of-sample testing. There are likely many reasons for this, but here are several that I’m considering:
1. The system is still working well but has just entered a drawdown or phase of under-performance. Or…
2. Due to the lack of more than 6 months worth of data, we do not know whether this type of under-performance is normal or abnormal. (More on this at the end) Or…
3. The system was curve-fit to the in-sample data set.
The system was tested on data from 2/16/2009 until today, 4/29/2009. The same parameters were used:
RSI Long Exit above 85 and RSI Short Cover below 10
Profit Target: $700.00
As I was looking over the trade-by-trade report, I noticed that not one time did the profit target trigger during this test. This means that every exit was triggered by the RSI level. Obviously, something changed between the in-sample and out-of-sample data. My guess is that the out-of-sample data was less volatile, meaning the profit targets were never reached. From December 2008 to the present, we know that volatility has decreased.
And this brings up an important point. When one uses static profit targets or stops, he or she risks that increasing or decreasing levels of volatility will render these static targets and stops ineffective, unless constant readjustment is applied.
Beyond the example demonstrated in this test, anyone using fixed-percentage stops and static profit targets during October and November of last year found out the hard way that both the stops and profit targets could have been doubled.
Why then would I use these stops and profit targets for this system? Primarily because Lazy was curious as to how the system would back test using them. I have to say that I was curious as well. In the end, it seems that this system should adjust with volatility.
These experiments could continue for much longer than most normal people would want to read about in a blog. From here, it is natural to wonder though: Which of the exits (besides RSI), if any, performed well over the out-of- sample results?
I will stop here though, as I think the Lazy Man system needs to marinate for a time, and I need to move on to other ideas. I will soon put all of the posts about this system on one page to make for easy reading / referencing.
It was suggested that a Monte Carlo analysis would help in evaluating whether a system is robust or not. I wanted to run a MC on this system, but had neglected to do so. Bman’s comment reminded me to do so. Below are a few graphs of the data from the first in-sample optimization.
Monte Carlo Simulated Equity Curves
This represents 1000 different equity curves with each curve being made of a random ordering of the actual system trade results.
Looks great, huh?
Max Drawdown Distribution
This graph shows that 95% of the trials had a percentage drawdown of 28% or less.
Looks great too, no?
It does, until these results are contrasted with the results from the out-of-sample tests where the system has experienced a drawdown from starting equity of 28.22%
Simply put, neither I nor the data know what we don’t already know.
The data set looks great, in sample, but the out-of-sample run produced is similar to one of the unlucky red lines in the very bottom-left quadrant of the equity curve graph. Look for the curves that immediately dip and lose money.
When I run the Monte Carlo on the out-of-sample data, the graphs demonstrate truly horrendous performances. The out of sample results show a system where 44% of the trials lost greater than half the starting equity. The Max Drawdown graph shows that 95% of the trials had a drawdown of 64% or less. This is quite a contrast to the Monte Carlo results from the in-sample data.
Without a doubt, more than six months of tick data is required for further development of Lazy Man’s system.
I will continue to monitor this system and post updated results and equity curves from time to time.
Clicking on the Tradestation Performance Summary will enlarge it.
As I have determined that the RSI exits and Stops and Targets seem to perform the best, I optimized those variables using exhaustive optimization. The results of the system run with the optimizations is above.
The system generates roughly four trades a day with the average trade earning around $35.00. The largest weekly drawdown during the time tested was -2.22%.
Although the annual rate of return is huge at 340.57% and the system doubled its starting equity in 50 days time, I’m still not sure how robust it will be going forward.
For the final post, I will run the system (as it is currently optimized) on out-of-sample data, from 2/16/09 to 4/28/09. We will then find out if the system might be over-optimized. We will also get a sense of how robust Lazy Man’s system, with my modifications, might be going forward.
Summary of Parameters
Dates Tested: 12/1/08-2/13/09
Starting Equity: $10,000
Contracts Per Trade: 1
Commissions Included: Yes, $2.50 per trade
Exits: RSI Long Exit, 85; RSI Short Exit, 10
Profit Target: $700.00
This was a very basic test. I simply coupled Lazy Man’s entry with his time of day requirements (9:30-3:00) and set the optimizer to calculate the best Profit Target and Stop. The system was optimized for highest net profit. I tested values between $50-$2,000.
I was surprised that the best stop turned out to be 3x the size of the profit target. I assumed it would be the opposite. However, the $900 stop has only been hit twice. As noted previously, the stop-and-reverse nature of this system means the system never moves very far against itself before closing out the losing position and opening one in the direction of the new trend.
Note the win % increased, as expected.
Overall, the metrics are mediocre.
The Equity Curve:
The Final Installment
Soon, I will put together what I feel to be the best parts of this system, optimize it, and run it over in-sample and then out-of-sample data. I’m very excited to see how it turns out.
As this series edges towards completion, we need to examine the effect of stops and profit targets on the system.
Lazy Man’s preferred stop triggers when a bar extends 50% of the length of the bar beyond the EMA20. (Remember the EMA20 is an important part of his entry criteria.)
I will be running the stop strategy with the time exit to get some baseline results. I will then optimize both the stop and the profit target.
What I will have then is an idea of what the best stop, profit target, and exit will be. The final installment will be to run the system on data from December 1st, 2008 to February 13th, 2009,Â where the final optimizations will take place. After that, the system will be run on out of sample data, from February 16th to April 17th.
I will not include October or November in the testing due to the extreme volatility.
Results of Time Exits with and without Lazy’s Stops
Long and Short Entry with Lazy Man’s Stop
Long and Short Entry without Lazy Man’s Stop
First of all, results with the stop and without the stop are not that much different. I figured this might be the case because the system is built to stop and reverse. What stop and reverse means is that if a long position is held, and the criteria for the short entry is met, then the long trade is close and the short trade is opened. This method has a stop built in. Therefore, adding a stop that triggers before the system reverses should theoretically reduce drawdowns while maintaining most of the profitability.
In fact, the results do show this to be true (somewhat). The average losing trade, with stops, is 12% smaller than the average losing trade without stops, while the average winning trade, with stops, is only 3% smallerÂ than the average winning trade without stops.
The downside to using Lazy’s stop with this system is that the average trade is 28% smaller than when not using stops. This is because some losing trades (which stopped out) would have reversed to be winners, before causing the system itself to stop and reverse.
Of course there are many benefits to using stops, with the psychological advantage being the primary one, but stops also allow for trades to be engineered to be more uniform, which lowers the standard deviation of results. Stops also allow for capital to be deployed elsewhere, rather than sitting in a losing trade.
All things considered, I’m not sure that stops are adding much to this system.
A Few Words About the Time Bar Exit
Without the time bar exit, but still using a stop, the system is profitable but the equity curve is ugly. The system gains about 9K but the swings are very volatile. Using the time bar exit allows us to see the system perform with stops, coupled with a very simple exit strategy.
Equity Curve: Long and Short Entry with Lazy Man’s Stop
I Had a Bright Idea…
What if we let the system run, no stops, no time exits, constrained only by the nature of its stop and reverse entries and the 9:30a.m. – 3:00p.m. time frame? The equity curve is below. Note that the system makes almost as much money, and the equity curve is very similar to the system running with stops and time exits. What should be apparent is how the stops and exits smooth the curve.
Equity Curve: Long and Short Entries with No Stops or Time Exits
Well folks, I had a lot more planned for this post, but it turns out that I have more ideas than I have time tonight to flesh them out.
The next installment will see the results of a different stop and some profit targets.
Part 4 will focus on using Bollinger Bands for exits.
Specifically, if the bar closes outside the upper (long entry) or lower (short entry) bands, the trade will be exited on the open of the next bar. This is a very basic exit, and could easily be tweaked. For example, an exit could triggered if the high (or low) of the bar is above (or below) the bands, rather than requiring the bar to close outside the bands.
The Bollinger Bands were built around a simple (not exponential) 20 day moving average.
Let’s look at the long entry first.
Bollinger Band Long Exits
The spreadsheet below shows the results of the long entry coupled with the Bollinger Band exit.
The standard 2 deviation band works the best. The % profitable is good, but the average trade of $16.65 means that 1/3 E-mini point will be captured, on average.
The equity curve below shows the entry coupled with a 2 standard deviation Bollinger Band exit:
Bollinger Band Short Exits
The spreadsheet below shows the results of the long entry coupled with the Bollinger Band exit.
The 1.5 standard deviation band was favored by the short entry. The % profitable is very high, and the average trade shows that each trade may harvest better than 1/2 an E-mini point. Still, the win/loss ratio is very low.
The equity curve below shows the entry coupled with a 1.5 standard deviation Bollinger Band exit:
Putting It All Together: An Equity Curve of the Long and Short Entry with the Optimized Exits of 2.0 For the Longs and 1.5 for the Shorts:
Net profit of $25,200 represents an annualized return of 252.20%. The % profitable drops significantly to 57.45%. Average trade is $38.74, or not quite a whole E-mini point.
The astute observer may wonder why, when the longs and shorts are combined, the equity curve smooths out, the % profitable drops, and the sum becomes greater than the parts.
From what I can tell after looking at thousands of these trades over the last week, when the system is allowed to go long and short, it will often close a short trade and go long, or vice versa, before an exit is triggered. Basically, it stops itself out and changes direction with the trend. This hints that when I start testing stops, they might actually improve performance (it is often hard to find a system that improves when stops are added).
I think this is very very important for traders to consider, especially those who do not like to use stops. The system does not care that it took a trade in the wrong direction. When it gets a signal to go in the opposite direction, it closes out the losing trade and attempts to catch a change in the trend.
As I am running out of time to get this information out for Lazy Man to digest before the market opens, I am going to report on only one exit tonight: the RSI(2) exit.
I had to make some minor changes in the way the testing was performed. In prior tests, all trades were executed at the close of the bar in which the trigger occurred. In order to avoid some problems, I changed the code to have the exits execute on the open of the next bar. To be clear, the signal is still generated at the close of the bar, but the trade is not made until the open of the next bar. If this is confusing, let me know in the comments section and I’ll flesh it out a bit more.
The RSI(2) Long Exit
The spreadsheet below shows the results of the entry coupled with the RSI(2) long exit:
Note that using an RSI(2) exit of greater than 70 would have yielded decent results. Also note the % profitable is the best we’ve seen yet at almost 70%.
One potential problem is that the average winning trade is only 2/3rds as big as the average loser. It is possible that this will be improved when stops are added.
Below is the equity curve generated by the RSI(2) long exit.
The RSI(2) Short Exit
The spreadsheet below shows the results of the entry coupled with the RSI(2) short exit:
Similar to the long exit, exiting after an RSI(2) reading below 20 shows promise. The percentage of profitable trades is even better with some exits exceeding 70% winners. The size of the winners compared to the losers is still an area of concern.
The average trade is approaching $50.00 which means that each trade will capture (on average) one E-mini point.
Below is the equity curve generated by the RSI(2) short exit.
Longs and Shorts Combined
Below is the equity curve for the combined long and short entries and exits:
This represents an annualized return of 294.90% with a win percentage of 65.70%.
The RSI(2) trigger for the longs was set at 85 and the short trigger was set at 10.
Using an RSI exit with this system presents some difficulties. The primary problem is that an exit can executed on a bar which also fits the criteria for entry. What this means in backtesting is that the trade is closed on the open of the bar, but then re-opened at the close of the same bar. I did not re-do the code to work around this issue.
Another problem is that some trades are entered when the exit criteria has already been surpassed. For example, the system may enter long with RSI(2) that is already greater than 85. When this happens, the system waits for RSI(2) to dip beneath the trigger level (85) , and will sell once it crosses back above 85.
When the system runs both longs and shorts, a short trade is closed out if the criteria is met for a long entry. If the system is long and the criteria is met for a short entry, then the long trade is closed and a short is entered. This adjustment helped the long side trades which leads me to believe that stops might improve results when trading only one side (long or short, but not both).
Bollinger Band exits have been tested and show promise. The next installment will present the results.