PureBytes Links
Trading Reference Links
|
I posted this to a local futures trading discussion group
last weekend, and it got a positive response. So I thought
it might also be useful to at least a few omega-list readers.
Special note: for those packrats who zealously snarf and
hoard trading-related computer programs, IT CONTAINS CODE.
Woo hoo!
>Date: Sat, 28 Oct 2000 06:32:04 -0700
>From: Mark Johnson <janitor@xxxxxxxxxxxx>
>Subject: Betsize Selection: how I trade my real-money account
>
>Roger has badgered and cajoled me into posting
>this article. I originally wrote it for a newsletter named
>_Club_3000_News_, and it was published in April 1999.
>
>The Figures referred to in the article, and a lovely Microsoft
>Word formatted copy of the article, are available on the world
>wide web. You can download them from the address
>
> http://www.mjohnson.com/omega-list/betsizMJ.zip
>
>Besides the articles and the figure, you get a PERL program
>that implements all of the math calculations in the betsizing
>algorithm. This program is exactly what I use, every single
>day, in trading my real-life, real-money account. It's
>a relatively simple little thing: 42 lines long, and 15 of
>those are blank lines or comments.
>
>Hope you enjoy it. -- Mark Johnson
>-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
>
>
>Reprinted from _Club_3000_News_ #99.04 April 24, 1999
>
>A formula for betsize selection -- Mark Johnson
>
>I trade futures using a 100% mechanical approach that has two
>separate components: (1) a system of entries and exits; and
>(2) a betsize selection formula. The first component generates
>my trading signals: buy tomorrow at 127-19 stop, exitshort
>tomorrow at market, etc. The second component tells me how
>many contracts to buy or sell, each time a trade entry is
>signalled. Entry and exit signals are thoroughly covered in
>books, magazine articles, and commercial software packages, but
>discussions of betsize selection are relatively scarce,
>particularly when a diversified portfolio of markets is traded
>out of a single account. I thought readers might enjoy seeing
>an example of a betsize selection method for trading multiple
>markets simultaneously.
>
>Whenever my system generates an entry signal in any of the
>markets I trade, I use the following equation for betsize
>selection:
>
> N = 0.025 * (E / R1) * A
>
>The formula has one output value (N), and it has three input
>values: (E, R1, A). The output value N is the number of
>contracts to buy or sell for this entry signal in this market.
>N is the betsize, expressed as a number of contracts.
>
>The number E is the total account equity in dollars. It is the
>sum of cash in the account, plus T-Bills, plus open trade
>equity of all positions in all markets.
>
>The number R1 is the Single Contract Risk of this trade, in
>dollars. R1 is the amount of money I could lose on a one-lot,
>if the market immediately went against my position and smoothly
>ran all the way to my stoploss price, where I then exited with
>a loss. For a long trade,
>
> R1 = (EntryPrice - StopLossExitPrice) * BigPointValue
>
>BigPointValue is the dollar value of a price move of 1.000 in
>the market; in Coffee it is $375, in Crude Oil it is $1000,
>etc. For a short trade,
>
> R1 = (StopLossExitPrice - EntryPrice) * BigPointValue
>
>Notice that I have to calculate R1, the Single Contract Risk,
>the night before I enter the market. Therefore "Entry Price"
>and "StopLossExitPrice" are ITALICS{estimates} - I may or may
>
>not get filled at exactly the prices the system expects, due to
>gaps, slippage, locked-limit days, etc., and so R1 is an
>ITALICS{estimate} of the dollar risk of a single contract
>position. ITALICS{Reality could be worse.}
>
>If my total account equity were exactly R1 dollars, and I traded
>one contract, then I would be risking 100% of my account on this
>trade. Alternatively, if I put on one contract when my account
>contained exactly (5 times R1) dollars, then I would be risking
>only 20% of my account {Math: R1/(5*R1) = 0.20}. So the next
>problem to attack is "What percentage of my account should I
>risk on any one trade?"
>
>Several traders interviewed for the Market Wizards books suggest
>risking a constant 2% of equity on each trade. Similarly, Ralph
>Vince's books advocate risking a UNDERLINE{fixed fraction} of
>equity on every trade. And, mostly, that's what my approach
>does. Look at my betsize selection equation above, and for
>moment, neglect the last term (i.e. temporarily assume A=1).
>Then my betsize election reduces to "Bet 2.5 percent of equity
>on every trade." Pretty simple.
>
>But what is this mysterious number "A" in the betsize formula,
>anyway? It's something I have added to introduce aggressiveness
>into betting. I got the idea from Randy McKay's interview in
>New Market Wizards, and from Ryan Jones's Kamikaze Trading
>Newsletter: What if we ITALICS{don't} bet a constant, fixed
>fraction of equity on every trade? What it we make the betsize
>percentage ITALICS{vary} with equity? Hmmm, that sounded
>intriguing.
>
>McKay offered this idea as a defensive strategy; Jones proposes
>it for offense too. As Mr. Jones explains the idea, it is based
>on a simple underlying premise: when your account is small, you
>intentionally take bigger risks. Later, if and when your
>account grows, you throttle back on risk and bet more
>conservatively as you become wealthy.
>
>There's no free lunch here; a more aggressive betsize percentage
>inevitably produces a greater Probability of Ruin and a larger
>Volatility of Returns. It also produces a faster appreciation
>of capital (if the underlying entry/exit system has positive
>expectation!), taking you from a little guy to a fat cat more
>quickly. After I studied a lot of computer backtests of "what
>if" scenarios, I concluded that I could tailor this idea
>ITALICS{to fit my own personal risk-tolerance profile} and my
>own pain threshold. So I developed the aggressiveness factor
>"A" that is graphed in Figure 1.
>
>Normally, A is equal to 1.0, and so I bet 2.5 percent of equity
>on every trade. {Math: (0.025 * A) = 0.025 when A=1}. But in
>some cases, depending on equity, A can become as large as 2.0,
>causing me to aggressively bet 5.0% of equity on each trade.
>{Math: (0.025 * A) = 0.050 when A=2}. Notice that my
>aggressiveness peaks when the account equity is below $200,000,
>and it gradually returns to 1.0, where I revert to betting a
>fixed 2.5% of equity on every trade.
>
>The aggressiveness curve A in Figure 1 is defined by the
>following equation:
>
> A = max(1.0, B)
> where B = (J/E) + [ (K/E) - ((L/E)^2) ]^M
>
>Parameter values are: (J = $46,400) , (K = $1,370,000) ,
>(L = $369,000) , (M = 0.47) . As before, E is the total account
>equity. I am using the symbol " ^ " to denote raising a number
>to a power, thus " x^y " means "x raised to the y power".
>
>For those who wish to experiment with the aggressiveness formula
>in spreadsheets, charting packages, etc., here are a few test
>cases to help verify that your setup is correct:
>
> (E = $102,420 A = 1.1000)
> (E = $119,487 A = 1.7500)
> (E = $270,506 A = 1.9000)
> (E = $581,114 A = 1.4500)
>
>If you implement the complete betsize selection formula, these
>test cases might be helpful:
>
> (E = $103,671 R1 = $1,555 N = 2.0000)
> (E = $131,077 R1 = $1,245 N = 5.0009)
> (E = $384,137 R1 = $1,484 N = 11.001)
>
>To illustrate the operation of the betsize selection formula,
>suppose that on a certain day my system gave entry signals
>(and stoploss exit prices) for three markets: Crude Oil,
>Japanese Yen, and Orange Juice. First, I'd use the stoploss
>exit prices to calculate a single contract risk value (R1) for
>each of these three trades. In general, R1 for a trade in one
>market (e.g. Crude) will be different than R1 for a trade in
>another market (e.g. Juice), even if the entry signals are
>received on the same day. Next, I'd take these three different
>R1 values and use them to calculate three different N values
>(N = number of contracts to trade). In general, the numbers of
>contracts (N) will be different for each different market.
>
>Finally, I'd like to stress that the aggressiveness curve A in
>Figure 1 was derived from ITALICS{my} backtest simulations that
>started with ITALICS{my} tolerance for risk, drawdown,
>probability of ruin, etc. But ITALICS{your} threshold of pain
>is probably different than mine, and so you would probably
>prefer a completely different aggressiveness curve.
>
--
Mark Johnson Silicon Valley, California mark@xxxxxxxxxxxx
"... The world will little note, nor long remember, what we
say here..." -Abraham Lincoln, "The Gettysburg Address"
|