Sunday, June 3, 2007

Backtesting Results: BobV32x

First, I must thank Marlyn and Jim for getting me started testing using Stockfetcher, and for designing the Blow-off-bottom (Bob) filter. I'm not sure which one, Marlyn or Jim, designed the particular Bob known as V32x. I believe they both made tweaks. Please take a look at their blogs to find out more. (Marlyn is on hiatus from blogging, but there is loads of good information still on his blog).

Anyway, Stockfetcher does not allow one to backtest more than 2 years data at a time, and they do not allow testing from more than 5 years ago. I decided to pull together all the 2-year tests, testing BobV32x as far back as allowed, up to the present. The results are very interesting.

Here is the filter and the parameters I used within Stockfetcher to get the results.

show stocks where close is between 15 and 35
and average volume(90) > 500000
and close 2 days ago <> volume 2 days ago
and close > open
and low > low 1 day ago
and close 2 days ago <> close 2 days ago and close > close 1 day ago

Maximum Trades Per Day: 2
Maximum Open Positions: 2

Stockfetcher provides very basic statistics for their backtesting. I wanted to take it further and see how the strategy performs in terms of R, and plot a chart of the equity curve. One test that I'm not smart enough to run in Excel is to produce an R multiple distribution. I have the data if anyone wants to run that distribution.








The results show that on average, this system produces bigger losers than winners, but the system also has twice the number of winners than losers. I did include $14.00 roundtrip for commissions in the results. The max drawdown from equity peak to trough was 15.5%. The beauty of this system is that it keeps initail risk at 4%, but the stops are only hit about 11% of the trades. It also produced a string of 15 winners in a row, while the longest stretch of losers was 5 in a row.

Finally, I allowed each position to be only $10,000 (including commissions), even though the theoretical account could have allowed more than that after the equity increased. Increasing position size as equity increased would have probably resulted in greater gains.

You may view all the trades generated by this system in the Excel Spreadsheet, as well as some of my calculations right here.

Note: I have edited this post a couple of times, and it seems that when I do, blogger has deleted some information, specifically from the filter. The post may have been up for a while without all of the data. This post is correct and has all the information intended.

25 comments:

Anonymous said...

Hey wood,
I was curious on the holding period for each position. Is it one day(open to open)?

Jeff said...

M- sorry, for some reason I had included those parameters in the post, but they didn't make it to publishing. I have edited the post to include those parameters.

The beauty of the system is the exit trigger, as written by Marlyn, which takes you out of the trade if the stock makes a third consecutive high close.

D1 said...

This is significant...I just want to make sure I understand it. You have shown that a certain type of automatic trading style will turn 10k into 23k over 5.5 years, or an annual yield of 16.66%, if they bought at every BOB occasion. Is this just the index, or for stocks in general?

What was the ending equity for each period, individually? Would you have a higher return in 01-03 vs. others because that was when the market really bottomed?

Were there specific losing years (like, say, 2004), or were all years winners, as well as each 2/yr period?

How do you screen for which stocks have printed that candlestick pattern, or do you just have to notice it?

Jeff said...

Danny, I'm throwing paper airplanes with my boys. I'll get back to you this evening on those questions. Plus, I'm going to provide a link to the Excel spreadsheet with every trade, and my stats, for anyone to peruse.

Jeff said...

Danny, good questions.

This system identifies individual stocks. There are more stocks that could have been identified and traded, but I elected the system to only start no more than 2 positions in a day and to have no more than 2 positions at any one time. Adjusting those numbers will certainly adjust performance.

Ending equity for each period? Pull up the spreadsheet with the trades (I've added the link at the end of the post) and you'll be able to see. I'm not trying to be difficult, I just don't have the time to look at it right now.

Same for losing vs. winning periods. Just run down the trades in the spreadsheet and you'll be able to see everything.

The screen to find these stocks is called "the filter" and is listed in the post, starting with "show stocks".

Keep the questions coming.

D1 said...

Thanks. I must have missed the excel link, because all I saw was the picture, which definitely didn't answer all my questions, but that download did.

I assume you'll post when your system givse you a trade or you take one, interested to see how it goes.

Jeff said...

The filter generated two picks on Friday. Ultimately, I should have ran the filter just before close and entered then. Assuming things aren't crazy tomorrow morning, I make take the two trades.

Sierra Water said...

Wood,
take a look at MAIL.
-chart looks great
-margins are strong
-no debt, good cash position
-strong top line growth

I am going to start a position first thing in the morning and then due some follow up DD. It is an Isreal co. I will let you know what I find.

Jeff said...

Brent, chart looks good. Volume is thin for my tastes. That doesn't seem to bother you though...let me know what you find out.

Dinosaur Trader said...

Wood,

Hey, just wondering which prices you are using to calculate your performance. I see from the spreadsheet the prices, but I guess I want to know if you calculated using realistic fills.

Or, does the filter allow for market movement and slippage?

Thanks, glad to see you're making some progress here.

-DT

Anonymous said...

Nice post. I'm currently swing trading Marlyn's cross over filter with respectable effect.

Have you decided on a time frame for your trading system yet? Are you considering using BOB or are you leaning toward something more long term?

Jeff said...

DT- I believe the fills were all at the open, after the filter identified the setup. I don't know how realistic they are. That would be pretty easy to check though.

Dogwood- I'm leaning toward a shorter time frame, because I'm not sure I can stomach the drawdown's associated with a long term trendfollowing type system.

Also, I'm getting ready to start testing that crossover, hopefully sometime this week.

Sierra Water said...

Hey Wood,

The majority of my 100% winners traded ADV between 50k-500k, so no I actually like thinly traded stocks as they create better buying opps. MAIL looks good BTW, under accumulation. Under 50k ADV I will stay away from however. I am not managing a hedge fund. Good luck with your system research.

Anonymous said...

Hi Brent,

MAIL does indeed look like a great chart under accumulation.

Just curious what your long-term target might be and whether you going to buy the dips and accumulate with a longer-time frame in mind a la MVIS? From my limited experience, Israeli stocks move slowly as they are mostly in stealth mode waiting for the market to discover them LOL!

Anonymous said...

Brent, one other question: Did this pick come from your VectorVest scan?

Thanks.

Marlyn Trades said...

Nice piece of work - aome thoughts - the key and crucial one, of course, is that the win percentage is stable over 6 years. Including during the period 2001 - 2003 when we know the market in general was sliding down.

The reward/risk is also stable as is the ROI (which is the least important factor).

Remember that trading is about managing risk and expectation is part of risk - if you are expecting a 65% win percentage (which is what my tests also consistently show) then you are going to lose 35% of the time.

Thus you need to place your stop loss in respect to price and not percentage. Which is why I like using the ATR(10) to inform me as to stop loss - using a multiple of it makes sense.

It also makes sense to look at stocks to purchase as a function of the ATR - short term trades (minutes to hours) you want high volatility - longer term (days and beyond) low volatility.

Remember Bollinger's famous statement - low volatility begets high volatility and high volatility begets low volatility. He was talking about the bands but the ATR is a much better approximation of volatility.

Also remember that the BOB is the "blow off bottom" - i.e. any drop below the bottom of the BOB means it failed.

Jeff said...

Marlyn, thanks for the feedback.

I understand what you are saying about stops and ATR. Unfortunately I have no idea how to program a trigger in Stockfetcher to stop the trade based on a multiple of the ATR.

I like the idea of a trigger or stop that takes one out of the trade if the price drops below the bottom of the BOB. Again, no idea how to program that, but I think I might be able to figure it out. That will be fun to test.

ATR could be used to choose which BOB picks to trade on days when the filter returns multiple setups.

Finally, what I really found interesting about the data generated from the test is that on average, the losers lost only half of the initial risk, or .5R. I believe that if the data could be tested for maximum adverse excursion that one would find that using BOB, when the trade works, it works, i.e., a good trade will never go to far against us. Knowing the MAE would let us set an ATR stop that would keep us in the trades that will work and quickly stop us out of the ones that won't. Currently, I don't know how to determine the maximum adverse excursion, but I believe that I just need STockfetcher to give the data for days 1-5, and that the MAE can be determined.

L.J. said...

Great work, Woodshedder. That BOB mod is pretty powerful.

By the way, I always see a 65% or so winning percentage as well but that's with an 8% stop loss. If you narrow the exit trigger to sell just below the low of day 2 of the BOB your win % will absolutely be reduced (if you can figure out how to program it in Stockfetcher). Your ROI might actually be as good or better however as you are quickly exiting for a small loss the ones that fail quickly.

Jeff said...

Jim, I think (could be wrong) since I have the Bob setup with the losers being bigger than the winners that it is imperative to have many more winners than losers.

It would be interesting to see if making the trigger to sell just below the low of day 2 would decrease the win% but would also decrease the amount of the avg. loser.

Also, look into the "maximum adverse excursion." I think using the MAE to guide the multiple of the ATR stop is going to test well.

Sierra Water said...

William,
I am looking for $13-14 before end of summer. Most of their products are a little "cheezy" for my own personal use, however there is huge demographic in Asia that has a heavy demand for these type of products. They have launched a "Japan" product and will be releasing a "China" product that I believe will act as a catalyst for the stock this summer. Their margins are pretty impressive and they have enough cash to make a good acquisition in the online advertising space which is red hot. A transcript of the last CC is available at their website and is worth reading.

Sierra Water said...

Yes, this came from my VV screen.

Marlyn Trades said...

Write an exit trigger

Close < low 2 days ago

and that will probably catch it

L.J. said...

Hey Marlyn- I think that trigger will only work on the first day you hold the stock. After that it basically will act like a trailing stop because 2 days ago won't have been the second day of the BOB. I don't think Stockfetcher allows an exit of "close < low 2 days before buy" but it should. I'll check the user guide when I get a chance.

I think the exit triggers are one of the most important parts of these backtests and they are the blueprint to actually trading the strategy in real life. I definitely need to spend more time trying out different triggers with my filters.

Jeff said...

Marlyn's exit trigger, in this latest BobV32x, makes perhaps the MOST difference in ROI. If you view the trades, you can see the exit trigger takes you out of this trade most of the time, not the percentage stop or time stop.

L.J. said...

I just put up a post about a 200 day SMA crossover screen. Within that post I try to explain what I'm referring to in regard to exit triggers influencing winning percentage and how, if you actually sell below close of day 2 of the BOB, your winning % will be lower than what backtests are telling us. It's not completely analogous to BOBs but I think it makes my point. Check it out. As always I welcome feedback.