Greetings --

I'd like to add a comment on multivalued objective functions, particularly
as they relate to Monte Carlo analysis and walk-forward testing.

As your trading system development moves to the stage of having a
walk-forward process performed automatically, it needs to be guided by an
objective function that incorporates all of the features that are important
to you and can be expressed as a single scalar value.

As you know, the walk-forward process divides the entire time series being
used into a sequence of in-sample periods, each followed by an out-of-sample
period.   A search procedure picks the single Best set of values for the
trading system's optimizable variables for a given in-sample period, then
records the results of using those values to simulate trading over the
out-of-sample period.  Then it slides the starting dates for both the
in-sample period and out-of-sample period forward, usually by the length of
the out-of-sample period, and does the search over again.  This process
continues until all of the data has been processed.  The results from the
out-of-sample periods are concatenated together and are used to decide
whether the trading system is a good one or not.

The key point here is this:  the search procedure must make its decision on
which set of variables is Best based on a single value -- the value of the
objective function.  By the time the development reaches this stage, we, as
system developers or programmers, will not have an opportunity to look down
the list of alternative trading systems to see if we would have picked one
other than the one at the top of the list.  So, as we are working with
multivalued objective functions, we must incorporate them into a
single-valued objective function that fits our trading requirements or
personality and that we trust to sort the alternatives into the order we
prefer.

AmiBroker has the capability to creating custom objective functions.  There
is an extensive discussion in my book about objective functions.  The
discussion includes an example of using AmiBroker's custom backtester to
create a single-valued objective function by starting with a central
objective function, then applying penalties (which can be positive or
negative) to it to take secondary goals into account.

In fact, I think that objective functions are so important that selection of
the objective function should be the First step in trading system design.
If the objective function fits the trader, most of the problems related to
the difficulty of following a trading system and of the psychology of
trading disappear.

Thanks for listening,
Howard
www.quantitativetradingsystems.com






On 17 Mar 2007 03:06:02 -0700, thomasdrewyallop <[EMAIL PROTECTED]> wrote:

  Hello all,

I have been working on the MCP technique described in Aronson's book
for some time now. I have just completed conversion of the C++ code on
the web site to C# plus some associated utlities to massage AB data
into the required format yet. No test yet; I will update under this
thread.

A few words on the theoretical underpinnings. There has been new
information since the book was published and the code written. I
believe an update is in the works. Also you need to be cautious when
running MCP on IS data. This is only valid under certain conditions.
Otherwise you must run OOS. I had an email from Aronson explaining all
this but can't find it. You might want to contact David directly - a
good guy and willing to talk with readers.

Finally, I would not reject walk forward. A very useful technique
despite Aronson's reservations. Well integrated with AB too via Fred
Tonetti's IO add-in.

Best regards,

Drew Yallop

p.s. just remebered that there is discussion on MCP as a possible
future addition to AB. Look in the AB suggestions section of the web site.

Reply via email to