Calculated Starting Account Size?

Discussions about the testing and simulation of mechanical trading systems using historical data and other methods. Trading Blox Customers should post Trading Blox specific questions in the Customer Support forum.
Post Reply
Roscoe
Roundtable Knight
Roundtable Knight
Posts: 250
Joined: Sat Jan 24, 2004 2:06 am
Location: Houston TX

Calculated Starting Account Size?

Post by Roscoe » Thu Feb 26, 2004 5:43 pm

A question if I may: how should I calculate a starting account size for use in system testing? Several performance statistics require a starting account size (CAGR for one) but I have not seen much discussion on ways of calculating the figure.

In the interests of meaningful performance comparisons between MarketSystems I feel that I should attempt to find a 'standard' if one exists or, failing that, propose one.

As an example, I consider that the margin and the maximum drawdown are important, so I use [(margin * 4) + (MDD * 2)] as a basis for single MarketSystem calculations. By using this I make allowance for the margin requirement, and the (MDD * 2) rewards MarketSystems with a lower MDD.

The basis for this reasoning is that a system trading Corn is very likely going to require less funding than a system trading the S&P, so the starting account size should be relative to the market and the risk, expressed here as MDD. (Thanks to Ryan Jones for this idea.)

While this example may be useful for single MarketSystem testing, an additional consideration would be how to scale it up for portfolio level testing.

I would be very interested in finding what others use.

Suggestions please!

Roscoe

stancramer
Roundtable Fellow
Roundtable Fellow
Posts: 60
Joined: Sat Feb 07, 2004 10:34 am
Location: Washington DC

Post by stancramer » Thu Feb 26, 2004 8:12 pm

One standard approach is: run your tests several different times with several different starting account sizes. In fact if you're testing using reinvestment of profits (such as fixed fractional positionsizing), it is quite illuminating to test with an unrealistically large starting account size like ten million dollars, just so your positionsizes will be many dozens of contracts. You will have enough cash to take every signal, and the effects of rounding-to-integers when computing position sizes will be totally negligible.

If CAGR=80% when STARTCASH=75,000 but CAGR=55% when STARTCASH=10,000,000 then you've got a pretty good hint that rounding effects (and/or skipped trade effects) are significant. Same goes for MAR: if the MARs are noticeably different for a small STARTCASH vs a big STARTCASH, you can be suspicious.

Forum Mgmnt
Roundtable Knight
Roundtable Knight
Posts: 1842
Joined: Tue Apr 15, 2003 11:02 am
Contact:

Post by Forum Mgmnt » Thu Feb 26, 2004 9:18 pm

I think the most useful starting account size is the amount of money you actualy anticipate trading with. If that's $50,000 use that. If it's $5,000 use that.

You generally want your testing to be as similar as what you anticipate doing

- Forum Mgmnt

Jake Carriker
Site Admin
Site Admin
Posts: 1493
Joined: Fri Sep 12, 2003 10:32 am
Location: Austin, Texas

Post by Jake Carriker » Fri Feb 27, 2004 12:19 am

I agree with both c.f. and stancramer here. c.f. has a good point that you want your system to work with whatever amount of capital you will be trading. Stan has a good point that it is useful to see how different amounts of capital affect your testing results, thus giving you a clue as to the capital requirements of your system.

I will elaborate some on these points. One method I find useful is exactly what Stan mentioned. Test on different starting account sizes and see where results start changing significantly. I usually make the supposition that tests at very large sizes are more representative of the logic your system is *attempting* to employ. Of course, the wild slippage that might occur with very large accounts is ignored for this purpose. As you come down in account size notice where trades begin to be skipped because of insufficient capital to take trades. You don't necessarily have to use the amount that takes every single trade. I suggest coming up with a percentage of rejected trades beforehand that you are willing to let be rejected. This number might be based on your expectancy numbers and trade frequency. If your system trades once every three years, and the average winner is 100 times the average loser, you can't afford to miss very many (any) trades.

Another key when testing in this manner is to vary your testing startdate. If you start testing just into a big equity runup, the amount of capital the system appears to require may be less than is actually prudent. If the testing begins before a massive drawdown, a larger, perhaps too conservative figure will appear. (aside - I'll bet a lot of systems are developed and traded that have good performance in the 1979 - 1985 period. That corresponds to the beginning of a 20 - 25 year testing window, and it is always at least subconsciously tempting to throw out a system that has a much lower CAGR because it did not have a big year early on.)

Along those same lines, I also test for capital requirements one year at a time reseting my starting equity to X each year. If the system retains a similar expectancy (% winners and relative size of winners/losers) then you have a pretty good chance of being properly capitalized *if the future looks much like the past*. If you find that the system had some unexplicably bad years with capital amount X, but did fine with $10 million, you know that trading capital is the culprit.

Don't get too fancy with it though, the temptation to overfit data is everywhere. You will notice times when a smaller capital amount will avoid a drawdown by not taking trades the system signaled. Don't buy into it. Randomness and luck have a hand in everything. The best we can do is make sure to do our homework so that we can do our best, and keep a sharp eye out for clues that we need to revise our thinking lest a black swan revise it for us.

Jake

ksberg
Roundtable Knight
Roundtable Knight
Posts: 208
Joined: Fri Jan 23, 2004 1:39 am
Location: San Diego

Starting Capital

Post by ksberg » Fri Feb 27, 2004 3:21 am

Jake,

I like your idea of testing with initial starting capital on a rolling, yearly basis. For many situations, it's easy to automate and report these type of results, and make comparisons between reports.

I'd like to build on that idea, but consider doing it based on events. Events, of course, will not be regular or suitable for cross-comparison. However, I think they may offer insight into finding sufficient starting capital.

One set of possible events are peaks and valleys in the equity curve. Resetting equity to initial capital at peaks could illuminate characteristics of the drawdown with respect to account size. For instance, perhaps granularity is such that 1 contract would represent more risk with the smaller account. Likewise, resetting equity to initial capital at valleys could illuminate characteristics of growth with respect to size. For instance, we might not have sufficient capital to actually trade 1 unit of what otherwise was a big winning trade on the larger account.

Maybe this falls into the category of getting too fancy. However, I believe it might be useful as other stress conditions to test our initial capital assumptions.

Cheers,

Kevin

Jake Carriker
Site Admin
Site Admin
Posts: 1493
Joined: Fri Sep 12, 2003 10:32 am
Location: Austin, Texas

Post by Jake Carriker » Fri Feb 27, 2004 9:13 am

Kevin, I don't think that is too fancy at all. What I would avoid is making small increments in the starting capital until MAR is maximized or you avoid that one trade in October 1987 that created a drawdown spike, and so forth.

Using peaks and valleys as starting points in order to gain information about the capital requirement of your system(s) is just good testing, IMO.


Jake

ksberg
Roundtable Knight
Roundtable Knight
Posts: 208
Joined: Fri Jan 23, 2004 1:39 am
Location: San Diego

Starting Capital

Post by ksberg » Fri Feb 27, 2004 12:52 pm

Jake,

Spot on. The 1987 price shock would be another great example to include, not avoid, when testing for initial capital and account performance. In other words, I would enumerate these kind of events, then start a back testing run just prior to the each event with the starting capital.

My perspective around starting capital is that I want to arrive at a number where I am comfortable with the possible outcomes of trading that given amount. One could argue that these are "100 year flood" type events, but it's amazing how often Murphy's Law seems to apply.

This perspective is really part of a larger philosophy around back testing which examines performance under the worst known cases. Worst-possible slippage is another example. If a system is profitable using worst-possible slippage, I have pretty good confidence it will make money in real-time.

Cheers,

Kevin

stancramer
Roundtable Fellow
Roundtable Fellow
Posts: 60
Joined: Sat Feb 07, 2004 10:34 am
Location: Washington DC

Post by stancramer » Fri Feb 27, 2004 12:58 pm

Two questions that could be asked are
  1. I have $15,000 to trade system X, how should I run backtests of X?
  2. I have chosen system X, how can I figure out an appropriate starting capital amount to trade X?
Backtesting with a lot of different STARTCASH values, mostly helps you answer question #2. To answer question #1, I agree with c.f.: if you know beforehand that you'll be using STARTCASH=$15,000, you might as well test with it.

Roscoe
Roundtable Knight
Roundtable Knight
Posts: 250
Joined: Sat Jan 24, 2004 2:06 am
Location: Houston TX

Post by Roscoe » Fri Feb 27, 2004 5:10 pm

stancramer wrote:Two questions that could be asked are
  1. I have $15,000 to trade system X, how should I run backtests of X?
  2. I have chosen system X, how can I figure out an appropriate starting capital amount to trade X?
In my original post I was coming more from the #2 perspective - "how much do I need to fund this system?", but more as a 'standardized' starting point for all of my testing. If a system tests out to the point where I am considering trading it I can then refer to this benchmark STARTCASH value. I like the idea of running a set of different STARTCASH values through and comparing the results too.

Roscoe

BigBrad
Full Member
Full Member
Posts: 20
Joined: Tue Oct 28, 2003 8:39 pm

Post by BigBrad » Fri Feb 27, 2004 10:09 pm

One way to approach #2 is to figure what a "fully loaded" condition the system can allow given the portfolio you'd want to trade. Select the smallest position size (1 contract, 4 contracts, 100 shares) as a single unit and then figure the max units your rules would allow.

From that you can figure a minimum amount based on margin and then you could put in an excess margin level equal to 1ATR beyond your stop loss levels (or some slop!) so you can attempt to keep margin calls to minimum.

Crude but it would give you a rough idea of the minimum $ needed to trade a specific system. Then I'd focus alot on first year trading given different start time frames as described in other threads. With minimum $ the commission and slippage can become a greater burden than you'd imagine.

Brad.

Post Reply