[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Betsizing beats buy-&-hold badly RESEARCH RESULTS



PureBytes Links

Trading Reference Links

Just to give a little demonstration of the
power of betsize selection in futures trading,
I ran a quick test last night on the Channel
Breakout trading system *including* betsize
selection.  The whole thing is just sixteen
lines of code, to define both the entry/exit
system AND the betsize selection algorithm.
(code is in the Appendix below).

Remember, Channel Breakout is 40 years old ---
Donchian's newsletter published it in the late
1950's, and it appears in the 1963 edition of
"Playboy's Investment Guide" (among many other
places).  It beat out 11 other competitors in
Lukac's testing at Purdue University in 1990,

    http://www.amazon.com/exec/obidos/ASIN/09343801X

and it has been featured in countless books and
magazine articles about systematic futures trading.

I tested Channel Breakout *without* accounting for
the interest that T-Bills in the account would earn.
Since T-bill interest systematically adds money to
the account, omitting it in my testing probably
understates the compound annual growth rate by
3 or 4 percent, and it probably overstates the
drawdown by a couple percent as well.  So the
"challenger" (channel breakout + betsize selection)
in my comparison starts off at a disadvantage to
the "champion" (buy and hold).

I compared (Channel Breakout + betsize selection)
against (Buy and Hold the S&P Futures).  Betsize
selection stomped the living tar out of buy-and-hold.
Whipped its ass, to quote President James Earl Carter.


SYSTEM OF ENTRIES AND EXITS
SYSTEM OF ENTRIES AND EXITS

I used the Channel Breakout parameter values that
shipped "free" along with my copy of Trading Recipes.
(TR is an all-but-obsolete trading package that tried
to compete with Omega TradeStation.  But TradeStation
seems to have captured lots of users and Trading
Recipes seems to have died.)

The TR parameter set for Channel Breakout is
Entry parameter=89 days, Exit parameter=13 days.  Just to
be explicit, the logic of the system goes like this

  Enter Long    1 tick beyond the Highest_High of 89 days
  Exit  Long    1 tick beyond the Lowest_Low   of 13 days
  Enter Short   1 tick beyond the Lowest_Low   of 89 days
  Exit  Short   1 tick beyond the Highest_High of 13 days

This is NOT a reversal system.  It goes flat (has no
position) between trades.


MARKETS TESTED
MARKETS TESTED

I ran this backtest on 15 markets drawn from 4 commodity
groups.  I happen to trade all of these markets myself
in my own real-money account:

  CD   DM   FV   LB   TU
  CL   DX   JY   MB   TY
  CT   ED   KC   SF   US

I tested them from 01 Jan 1987 to yesterday,
10 Aug 1999.  This barely fits within Trading
Recipes' limit of 3500 bars of historical data
per commodity: twelve and a half years.


ALGORITHM FOR BETSIZE SELECTION
ALGORITHM FOR BETSIZE SELECTION

I myself just don't like the phrase "money management"
--- that's what insurance companies and bank trust
departments do.  Whereas in my opinion, what futures
traders do is place bets on their positions.
(Van K. Tharp calls it "position sizing").  So in
this message I will employ the phrase "betsize selection"
instead.

The betsize selection method used in the "free" system
with Trading Recipes, is dated 12 August 1994.  It uses
a very simple idea:

  Use whichever gives a smaller betsize:
      Risk         = 4 percent of equity,  OR
      "volatility" = 1 percent of equity

where "volatility", in this system, is approximated by
the 15 day simple moving average of TrueRange.

Example 1:
   Enter coffee long at 66.00, stoploss exit point 59.00,
   15-day-ATR = 1.44, equity = $200K.
   -------------------------------------------------------
       Risk = $375 * (66.00 - 59.00) = $2625 per contract
       %_of_equity_bet = (0.04 * 200,000) / $2625 = 3.05 contracts

       Volatility = $375 * 1.44 = $540
       volatility_bet = (0.01 * 200,000) / $540 = 3.70 contracts

           Smaller of the two = 3.05 contracts --> round down to 3.

Example 2:
   Enter Swiss Franc short at 58.00, stoploss exit point 61.40,
   15-day-ATR = 2.50, equity = $330K.
   -------------------------------------------------------
       Risk = $1250 * (61.40 - 58.00) = $4250 per contract
       %_of_equity_bet = (0.04 * 330,000) / $4250 = 3.11 contracts

       Volatility = $1250 * 2.5 = $3125
       volatility_bet = (0.01 * 330,000) / $3125 = 1.06 contracts

           Smaller of the two = 1.06 contracts --> round down to 1.

Alert readers will recognize this betsize selection method.
It appears in Van Tharp's [badly titled] book "Trade Your
Way to Financial Freedom".  In Tharp's phraseology, this
is the "Percent Risk Model" (p. 292) plus the "Percent
Volatility Model" (p. 296), used at the same time.

    http://www.amazon.com/exec/obidos/ASIN/0070647623

These betsize selection algorithms are old, well known,
and widely publicized.  I feel sure that Ivan Dobes's
software project will include them from the very first day
(in the pre-pre-Alpha release).

Perhaps it is worth pointing out that the Trading Recipes
diskette which contains this Channel Breakout system and
betsize algorithm is dated 12 August 1994.  And Tharp's
book was copyrighted 1999; Tharp's remarks in the Preface
of the book are dated June 1998.



TEST RESULTS AND COMPARISON TO BUY-AND-HOLD-THE-SP-FUTURES
TEST RESULTS AND COMPARISON TO BUY-AND-HOLD-THE-SP-FUTURES

                                       Buy_&_Hold  CBO+betsizing
===============================================================
Starting equity.......................   58175.00     80000.00
Final equity..........................  739612.41  13159391.00
Total net profit......................  681437.41  13079391.00
Profit from T-bills...................  195687.41         0.00
Profit from actual futures trades.....  485750.00  13079391.00
Compound Annual Growth Rate (% per yr)      15.87        49.30
Max Drawdown (percent)................      40.06        39.12
(CAGR / MAXDD) Ratio..................      0.396        1.260
Annual Standard Deviation (percent)...      18.36        36.88
Sharpe Ratio..........................      0.592        1.201
Semideviation Ratio...................      0.802        1.748
Return Retracement Ratio..............      2.527        4.177
Sterling Ratio........................      1.285        1.503
Number of Trades......................          1          715
Winning Trades........................          1          321
% Winners.............................      100.0         44.9
Commission+Slippage (dollars).........         75           75
Max # of consecuctive winning trades..          1           18
Max # of consecuctive losing trades...          1           13



Buy and Hold achieved a compound annual growth rate of 16 percent
per year.  Channel Breakout plus betsizing achieved a growth rate
of 49 percent per year.  They had about the same drawdown: 40%
for buy&hold, 39% for Channel Breakout.

After ten years at 15.87 percent per year (buy and hold),
each original dollar has grown to $4.36.  But after ten years
at 49.30 percent per year (Channel Breakout), each original
dollar has grown to $55.03.  Quite a difference.  I know which
one *I* prefer.

All of the risk-reward-ratio measurements solidly favor the
(Channel Breakout plus betsizing) approach as well.  Sharpe
ratio is 2X higher, Schwager's adjusted Sharpe ratio called
"Semideviation Ratio" is 2X higher, et cetera.  The one that
I myself favor, CAGR/MAXDD ratio, is more than THREE times
higher.  Betsizing is clearly better.

The message is clear: a simple system like Channel Breakout,
combined with betsize selection, beats the crap out of
buy and hold.  It's no contest:  Game, set, and match.



APPENDIX: TRADING RECIPES CODE FOR CBO AND BETSIZE ALGORITHM
APPENDIX: TRADING RECIPES CODE FOR CBO AND BETSIZE ALGORITHM

**************************** BEGIN ****************************
COL1 = ATR[15]
COL2 = MAX[H,89,1] + TICK[1]
COL3 = MIN[L,13,1] - TICK[1]
COL4 = MIN[L,89,1] - TICK[1]
COL5 = MAX[H,13,1] + TICK[1]
SYSTEM = COL1[1] * POINTVALUE

BUYSTOP = COL2
SELLSTOP = COL4
STARTUPCASH = 80000
MEMORY[1] = (.04 * EQUITY) / NEWRISK       'risk no more than 4% of
equity
MEMORY[2] = (EQUITY * .01) / SYSTEM        'or 1% of volatility
IF MEMORY[1] < MEMORY[2] THEN MEMORY[2] = MEMORY[1]
IF MEMORY[2] > 200 THEN MEMORY[2] = 200    'don't trade more than 200
conts
NEWCONTRACTS = MEMORY[2]

SELLSTOP = COL3
BUYSTOP = COL5
**************************** END ****************************

I hope you enjoyed reading this.

--
   Mark Johnson      Silicon Valley, California    mark@xxxxxxxxxxxx

      "... The world will little note, nor long remember, what we
       say here..."  -- Abraham Lincoln, "The Gettysburg Address"