PureBytes Links
Trading Reference Links
|
As those of you who have read Club 3000 News issue
#99.02 know, I trade a 100% mechanical system that
I bought from a vendor, called "Aberration". In
the 2.5 years from 1/1/1997 to 5/13/1999, I have
made $+421,000 in net profits using this system,
including commissions, slippage, rollovers,
human blunders, etc.
I trade the system on a portfolio of >20 commodity
futures markets, using the exact same system code
and the exact same parameter values ("ndays=80",
"b_signal=2.00") on all markets. These are the
only parameter values I have used when trading my
real-money account.
I bought the system in the summer of 1995. The
manual I received says "Copyright 1993". This
manual suggests using the parameter settings
"80" and "2" for all markets, and indeed
(after my own testing), that's what I do.
If you have read issue #99.02 you also know that
I bought the system and spent a year testing it
before I began trading it with my own money.
That's not a misprint: a year. Twelve months.
260+ trading days.
How on earth could I take so long? What tests could
I do that required a whole year?
First, I programmed the system four different ways
so I could run it through four different test
packages. (If you care: <1> System Writer Plus;
<2> AWK; <3> Trading Recipes; <4> C). I kept
testing and debugging until all four implementations
gave the exact same trades on the same days at
the same prices. This took a while :-).
Next, I tested the system on two different and
independent data streams. I wanted to be sure that
it worked well on *MY* data, not just on the vendor's.
(If you care: <1> Omega Research Historical Database;
<2> Technical Tools historical data). It didn't
take long to satisfy myself that the good results
I was seeing weren't the result of data anomalies.
Next, I explored different settings for the two
parameter values. I did a huge number of tests
on this, some of which I reported in a message
I'm still kinda proud of, and you can find it
on dejanews in the archives for misc.invest.futures.
It's from December 95 or Jan 96. After all of
that, I settled on "80" and "2.00", because these
gave a large margin of safety on either side.
Next, I chose a portfolio of markets. After doing
a lot of testing and a lot of thinking, I came to
a decision that I expect will be controversial:
I decided to include or exclude entire commodity
GROUPS, rather than individual commodity MARKETS.
Remember, this is *my* choice based on *my* research,
and it makes *me* happy. *You* don't have to
like it, agree with it, or find it sensible.
The groups I include in my trading are:
Energies (Heating Oil, Natural Gas, etc)
Interest Rates (30Yr Bonds, 5Yr Notes, etc)
Softs (Cotton, Lumber, Coffee, OJ, etc)
Currencies (Canadian $, Swiss Franc, USDX, etc)
The groups I don't trade are:
Grains, Meats, Stock Indexes, Precious Metals
Next, I settled upon Trading Recipes as my test vehicle.
Although it is a lowly DOS program, and although it
is not "Y2K compliant", it does perform portfolio level
testing (trading multiple commodity markets out of the
same account) and it even lets you trade several
DIFFERENT systems simultaneously, out of the same account.
I programmed up Aberration and gingerly began to tinker
with betsize selection.
(aside remark: I really dislike the phrase "money management".
That's what trust departments and insurance companies do.
What futures traders do is size their bets. So this is the
final time you'll find the words "money management" in my
note.)
It took me a while to figure out what I wanted.
I struggled with fear and greed, and ultimately,
fear won out. I decided that there was a great
danger that if my drawdown ever exceeded 40% ,
I might become emotionally unstable and deviate
from the mechanical system or even shut down the
account. So I decided my goal was: Maximize
returns with the constraint that (historical!)
drawdown is less than 40%.
I read lots of books, fooled around with differential
equations* on the blackboard, and started to program
up some geometric betting algorithms into Trading
Recipes.
*WARNING: MATH FOLLOWS, THIS IS SCARY AND INTIMIDATING
Suppose Profit is proportional to risk, delta$/deltaT = kR
Suppose we decide we'll take Risks proportional to equity, R = c$
Then Profit will be proportional to equity, delta$/deltaT = kc$
Separate the variables, delta$ / $ = kcdeltaT
Integrate, log($) = const*T
Thus $ = exp(const*T)
Thus our equity ($) will be an EXPONENTIAL function of time, woo hoo
As those of you who have read the other Club 3000
issue (#99.04) know, I finally settled upon a betsize
algorithm that includes dollar-distance-to-my-stoploss
(which I define as my risk per contract, "R1"),
semi-fixed-fractional betting, and variable
aggressiveness which depends upon equity.
THIS IS THE "SECRET" OF HOW I WAS ABLE TO MAKE MONEY
USING A VENDOR-SUPPLIED MECHANICAL SYSTEM: BETSIZE
SELECTION.
In fact, about 18 months ago I wrote a message on the
omega-list that showed test results for three different
mechanical systems, but using identical geometric
betsize selection. All three made huge profits!
One was a good system (Aberration), one was average
(Market Annihilator), and one was below average
but profitable (Virtuoso). The size of the profits
varied a bit, but all of them did very well, handily
beating "buy and hold the S&P 500" by a substantial
margin.
The "magic", if there is any, isn't in the entries
and exits. The magic is in the betsizes. Robert
Hodge said the same thing.
Doing all of the tests detailed above took a year
because not only did I perform the foregoing tests
on Aberration, I also tested several other systems
too. It was kind of a bake-off, and the winner was
Aberration plus the variable-aggressiveness
betsize algorithm.
A side-benefit of all the testing was, that it
produced several notebooks full of test results.
These turn out to be INCREDIBLY VALUABLE. Now
I have a giant database of prior test results,
so if I try out a new betsize algorithm (often)
or a new entry/exit system (seldom), I have a
bunch of data to compare against.
I have discovered that I find it pointless to
try to answer question (1). Instead, I try to
answer question (2). It was a revelation.
(1) Consider systematic approach X. Is X "good" ?
(2) Which is "better," approach X or approach Y ?
I hope you enjoyed reading this,
-Mark Johnson
> I use a fully mechanical system that I bought
> from a vendor. I trade it on >20 different
> commodities, using the exact same code and the
> exact same parameter values (namely, "80" and "2")
> on all markets. It trades Coffee the same as
> Bonds the same as Crude Oil the same as Canadian
> Dollar, the same as all the others.
>
> "80" and "2" are the parameter values in the
> system manual supplied by the vendor; I've
> done research to test out other parameter settings,
> but have only traded my own money using
> "80" and "2".
>
> I've been trading it for quite a while, and reporting
> my actual real-money results in a newsletter called
> _Club_3000_News_. The results of about 100 trades
> (namely, calendar years 1997 and 1998) appear in
> issue #99.02 of the newsletter; they will be glad to
> sell you this backissue for $5.00. Contact info
> is on the Club's website,
>
> http://www.ison.com/club3000/index.html
>
> I *DONT* trade using single contract position
> sizes; instead I use a non-Ralph-Vince betsize
> algorithm that employs a non-fixed-fractional approach.
> This is covered in issue #99.04. I programmed
> it in a dinky little PERL script that's about
> 50 lines of code.
>
> 100% mechanical trading has done pretty well for
> me. From 1/1/1997 to today (5/13/1999), my
> net profits (including commission, slippage,
> rollovers, etc) have achieved a compound annual
> growth rate of 79.6% per year. As of today,
> total net profits are $421K. $118K of the
> profits came in 1997, $102K came in 1998,
> and $200K of the profits have come (so far)
> in 1999.
|