(developed by
Mark Brown www.markbrown.com)
Market: Futures
System Concept
This month’s article is a
reality check on a futures system that was published on a public forum in 1997
by Mark Brown, a well-known personality in the trading system industry.
According to his statement he had traded it (or similar systems) for many years
and has since moved on to other system trading styles. In his introductory
comment for this system he made the following interesting statement:
“It's as much a mind game as anything and if you want to make money let
your mind go blank and trust the system, the system can be intuitive or
computerized or any blend thereof. But defined and cast in stone it must
be.”
According to the method, we
create a 38 bar, 3 standard deviation Upper Bollinger Band of the 10 bar
Adaptive Moving Average of high prices, and a corresponding Lower Band of low
prices. The Adaptive Moving Average is taken from Perry Kaufmann, whose
Adaptive Moving Average (AMA) automatically increases the speed of the
moving average as market volatility increases.
The entry and exit rules are
rather straightforward. When the
closing price crosses above the upper band we go long, and below the lower band
we go short. Since the published methodology defines only the entry and
exit rules, we have added our own position sizing rules, which are summarized
below. As the system is
trend-following in nature and is “always in” the market (later we’ll see
that this is not the precisely the case due to the effect of our self-imposed
position sizing rules), it is expected to work best in trending, non-correlated
markets and is therefore ideal for our Active Trader magazine sample portfolio.
Figure 1 shows an sample trade.
Entry and Exit Rules
The system was tested on the Active Trader Standard Futures Portfolio, which contains the
following 20 futures: DAX30 (AX), Corn (C), Crude Oil (CL), German Bund (DT),
Euro Dollar (ED), Euro Forex (FX), Gold (GC), Copper (HG), Japanese Yen (JY),
Coffee (KC), Live Cattle (LC), Live Hogs (LH), NASDAQ100 (ND), Natural Gas (NG),
Soybeans (S), Sugar (SB), Silver (SI), S&P 500 (SP) and T-Notes 10 year
(TA). For this article we used Ratio Adjusted data from Pinnacle Data Corp.
Often money management is
also referred to as position sizing, portfolio allocation and so on. Proper
money management defines two important and related rules: position sizing and
the bet sizing. Bet sizing defines which percentage of the portfolio’s total
equity the trader is willing to risk (to bet). The position size calculates how
many contracts the trader should open on any given trade expecting the worst
outcome (stop loss triggered). The number of contracts is calculated using a basis
price, the stop loss level, the contract’s point, and the portfolio’s
total equity. The basis price is the price at which the market closes prior
to putting on a new position.
Using an example of a
commodity with a point value of $250, assume that the entry signal goes long at
a basis price of $100 and the stop loss on that date is shown to be at $90.
We calculate our dollar risk by multiplying $250 by $10 ($100 - $90).
Consequently, if we were stopped out on the purchase of one contract, we
would lose $2,500. Now, if our portfolio’s total equity on the date before
entering into the position was at $320,000, and we do not want to risk more than
one percent of our total equity ($3,200), we would be allowed to buy one
contract since the integer part of the quotient $3,200/$2,500 is 1. Had
total equity been below $250,000, we would not be able to take this
position since the dollar risk would exceed the 1% equity risk that we are
willing to assume. This position sizing method keeps us out of risky trades that
have potential to ruin our account, and in the same way, it keeps us from
entering other markets entirely since the risk is too high during specific
trading periods. In Figure 2 we show the result of the system when risking one
percent of the total portfolio equity per trade.
With $250,000 of starting
capital, the system achieved an overall profit of 129.99% in approximately six
years and accomplished an average annual return of 13.78 percent, with the worst
year being a loss of 13.20 percent in 2003. The same year had the largest
drawdown of 26.01 percent. Out of 251 trades, only 31.08 percent were winners. Nevertheless, the average profit per trade was $1,294.76.
Over our testing period, trading from either side, long or short, was profitable
and complementary as you can quickly observe by the thin red and black lines
(equity curves attributable to short and long trades, respectively) in Figure 2,
the portfolio equity curve. Even thou this is essentially a stop and reverse (SAR)
system, we can see a rather moderate exposure of 33.79% which would give us some
room to increase risk.
To demonstrate the effect of
money management on overall system performance, we now double the risk per trade
to two percent of total portfolio equity. Looking at the same system with the
increased risk, Figure 3 illustrates an equity curve with much greater
volatility accompanied by higher draw downs (45% compared to the earlier 26%)
and even less profit (42% compared to the earlier 129%). Exposure climbs
to over 37%, and the number of trades reduces to 237 due to the fact that at
certain periods insufficient equity existed to assume the 2% programmed risk.
Given that the system was
published free of charge and we have not changed any parameters, it shows a
rather good result. We did not make any market selection as it was not stated
for which market it was created. Many commercial systems are often optimized for
certain markets. On the other hand, there is no guaranty that the market
“character” will stay the next ten years as it was the last ten years.
Diversification and sound money management is the key to success as many hedge
fund managers are proving year after year. The more markets you can trade, the
more likely you will catch the big trend that those systems require to be
profitable. The pure fact that this trading system was offered gratis does not
make it a better or worse than others. Each trader should fully evaluate and
research any system before risking real money.
Strategy Summary
Profitability |
|
Trade Statistics |
|
Net Profit $ |
$324,983 |
No. Trades |
251 |
Net Profit % |
129.99% |
Win/Loss % |
31.08% |
Exposure % |
33.79% |
Avg. Profit/Loss |
1.48% |
Profit Factor |
1.53 |
Avg. Holding time |
84.49 |
Payoff Ratio |
3.13 |
Avg. Profit (Winners) |
16.37% |
Recovery Factor |
1.65 |
Avg. Hold Time
(Winners) |
190.91 |
Drawdown |
|
Avg. Loss (Losers) |
-5.23% |
Max DD % |
-26.01% |
Avg. Hold Time (Losers) |
36.50 |
Longest Flat days |
166 |
Max Consec. Win/Loss |
5/16 |
LEGEND: Net Profit – Profit
at end of test period, less commission ·
Exposure – The area of the equity curve exposed to long or short positions, as
opposed to cash ·
Profit Factor – Gross Profit divided by Gross Loss ·
Payoff Ratio – Average Profit of Winning Trades divided by Average Loss of
Losing Trades ·
Recovery Factor – Net Profit divided by Max Drawdown ·
Max DD% - Largest percentage decline in Equity ·
Longest Flat Days – Longest period, in days, the system is between two Equity
highs ·
No. Trades – Number of trades generated by the system ·
Win/Loss% - The percentage of trades that were profitable ·
Avg. Profit – The average profit for all trades ·
Avg. Hold Time – The average holding period for all trades ·
Avg. Profit (Winners) – The average profit for winning trades ·
Avg. Hold Time (Winners) – The average holding time for winning trades ·
Avg. Loss (Losers) – The average loss for losing trades ·
Avg. Hold Time (Losers) – The average holding time for losing trades ·
Max Consec.. Win/Loss – The maximum number of consecutive winning and losing
trades
|
Avg. Return |
Sharpe Ratio |
Best Return |
Worst Return |
% Profitable Periods |
Max Consec.
Profitable |
Max Consec.
Unprofitable |
Weekly |
0.29% |
0.82 |
10.01% |
-8.96% |
53.70% |
10 |
5 |
Monthly |
1.26% |
0.80 |
14.99% |
-12.20% |
56.00% |
7 |
4 |
Quarterly |
3.55% |
0.87 |
29.26% |
-10.88% |
57.69% |
4 |
3 |
Annually |
13.78% |
0.80 |
37.76% |
-13.20% |
85.71% |
6 |
1 |
LEGEND: Avg. Return – The
average percentage for the period ·
Sharpe Ratio – Average return divided by standard deviation of returns
(annualized) ·
Best Return – Best return for the period ·
Worst Return – Worst return for the period ·
% Profitable Periods – The percentage of periods that were profitable ·
Max Consec.. Profitable – The largest number of consecutive profitable periods
·
Max Consec. Unprofitable – The largest number of consecutive unprofitable
periods.
Notice how the
bands expand with the increased volatility.
The equity
curve with the 1% money management rule applied.
Drawdown
The underwater equity curve of the system when applying the 1% equity risk money management rule.
MetaStock code:
To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders.
Enter Long:
ama:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*
(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV));
C>BBandTop(ama,38,S,3)
Close Long:
ama:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*
(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV));
C<BBandBot(ama,38,S,3)
Enter Short:
ama:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*
(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV));
C<BBandBot(ama,38,S,3)
Close Short:
ama:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*
(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))
/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV));
C>BBandTop(ama,38,S,3)
inputs:BBLength(38),BBStdDev(3),
BBHPrice(ADAPTIVE(H,10)),BBLPrice(ADAPTIVE(L,10));
vars:BBH(0),BBL(0);
BBH=BollingerBand(BBHPrice,BBLength,BBStdDev);
BBL=BollingerBand(BBLPrice,BBLength,-BBStdDev);
if c >bbh then buy;
if c<bbl then sell;
{
P.S. The adaptive function part is Perry Kaufmans:
}
inputs:price(numericseries),period(numericsimple);
vars: noise(0),signal(0),dif(0),efratio(0),
smooth(1),fastend(.666),slowend(.0645),am(0);
{CALCULATE EFFICIENCY RATIO}
dif=@AbsValue(price - price[1]);
if(currentbar <= period) then am =price;
if(currentbar > period)then begin
signal = @AbsValue(price - price[period]);
noise = @summation(dif,period);
efratio = signal/noise;
smooth = @Power(efratio*(fastend - slowend) + slowend,2);
{ADAPTIVE MOVING AVERAGE}
am = am[1] + smooth*(price - am[1]);
Adaptive=am;
end;