sometimes leads to frustration, since you'll often get entry signals

whose risk is greater than the (small) account can afford. In

Trading Blox simulations these signals are "filtered out" ,

that is, they are skipped. When an entry signal is filtered, it

is also logged into the Filtered Trades Log. Blox doesn't write

"This trade's risk is too large for your account" into the log

file, instead it writes "Order Quantity is less than 1" which means

the same thing but is less insulting. See Figure 1 below.

This may lead you to ask, "WITH MY TRADING SYSTEM(S), which futures

markets generate trades with the lowest risk per 1 contract?" In

other words, which futures contracts are the least likely to have

trades that get filtered out because Order Quantity is less than 1?

One very simple way to study this is shown in Figure 2. I've modified

the Fixed Fractional Money Manager so that it prints out the BuxPerCar

at every trade entry. BuxPerCar is the particular account size that,

for this trade, causes Blox to calculate a position size of exactly 1.00000

contracts.

We can insert this MM block into some trading systems, run them, and

see which futures markets require the largest BuxPerCar (boo!) and

which futures markets require the smallest BuxPerCar (yaay!). The

markets with the smallest BuxPerCar are the ones that are least likely

to get filtered out with Order Quantity less than 1. These are the

markets whose trades you would actually take, with a small account.

The "Sample Data" that comes with Trading Blox includes about

40 futures markets. I arbitrarily chose 20 of them by alphabetizing

the list and picking every 2nd symbol, giving a 20 market portfolio

that I called "Odd20". Running a trading system on the Odd20

portfolio produces an output file with one record per trade, showing

the symbol, entry date, and BuxPerCar of that entry signal.

One (easy) way to analyze the BuxPerCar data is to calculate an average

value of BuxPerCar for each futures market. Simply average together

all the BuxPerCar values for AussieDollar trades, then average together

all the BuxPerCar values for BritishPound trades, et cetera. For each

market in the Odd20 portfolio, calculate the average value of BuxPerCar

of all trades in that market.

Another way to analyze is to calculate the median, rather than the

average, value of BuxPerCar for each market. Then you get to smile

and say "Median is a Robust Statistic!" to an admiring audience.

I bet you can think of zillions of other calculations. The worst case?

(the max)? The best case? (the min)? and so forth.

In my little example below, I choose the 90th percentile value of

BuxPerCar, i.e., not quite the max but certainly greater than the

mean or median. VERY loosely speaking, I'm willing to disregard

the top 10% of BuxPerCars, so if those trades happen to get filtered

out, I don't mind so much. If you think this is ridiculous overkill

or analysis paralysis, by all means use another calculation,

whichever you please.

I decided that what was most important to me was the RANKING of the

BuxPerCar values. In other words, which market has the lowest

BuxPerCar compared to all the other markets? Rank that market #1.

Which Market has the 2nd lowest BuxPerCar? Rank that market #2.

Which has the 3rd lowest? Rank it #3, and so forth. And so that

is what I did.

I computed the 90th pecentile BuxPerCar values, sorted the markets

by 90%_BperC, and ranked. The results are shown in Figure 3 below.

I ran the Odd20 portfolio on three different trading systems and

ranked the markets on each one. Then I gathered the rankings into

a combined table and, for each market, averaged the rankings of

that market across all 3 systems. (You can see that the rankings

do fluctuate a bit; notice that Wheat was ranked 13th smallest

BuxPerCar on system #1 but 6th smallest on system #3.)

Not surprisingly, Eurodollars finished at the top of the combined

rankings. ED is the least likely market to generate trades that

get filtered out; BuxPerCar for Eurodollars is lowest of them all.

Also not surprisingly, Natural Gas finished at the bottom. It has

the biggest BuxPerCar, and is most likely to generate trades that

get filtered out. Small account traders are much more likely to

have enough equity to take their system's entry signals in ED,

than they are to have enough money to take entry signals in NG.

(sigh)

You may enjoy performing a similar analysis on a different portfolio of

futures markets, on your own choices of systems. Maybe you are interested

in Gold, or the eMini S&P, which weren't in my Odd20 portfolio. Maybe

you are interested in markets outside the USA (the Blox sample data

has only US markets). Maybe you trade systems on 60 minute bars, so you

are interested in markets for whom you've got intraday data. Maybe you

trade weekly bars, in which case you'd want to run the MM code using

your weekly systems with weekly data, etc.

Feel free to run whichever experiments you like, on whatever instruments

you prefer, using whichever trading systems are important to you.

+SLUGGO+

*Of course, there are more than one ways to skin this cat.*As suggested

above, you

*could*write the BuxPerCar values out to a file, and then post

process the file with Excel or some kind of one-off script in awk or Python

or Perl. Or you could do the entire calculation within the backtest itself:

store the BuxPerCars in memory (IPV autoindexed series in Blox) and

when the simulation has completed ("After Test" script in Blox), loop over

the instruments, calculating the average or mean or 90% point of

BuxPerCars for each instrument, and finally, sort them to get the

rankings.