The point you seem to be missing is that by using a reverse-engineering
approach, you're building against realistic targets, as opposed to just
trying to maximize or minimize the metrics. Of course I was curve-fitting
MiniMax; that's the whole point. Doing so is much, much less likely to
result in an over-fit strategy precisely because the targets and metrics are
based on good OOS results from a sound strategy.
Mike Bryant
There should be an option when you log in to the group.
Mike Bryant
Subject: RE: Reverse engineering a known system
Where do I unsubscribe from these group emails?
Thanks,
Aaron
Hi Rick,
Sorry for the delay answering. I've been travelling due to family
issues and am just back and getting started on email responses.
First, thanks for your comments. (And to Mike for his responses
also.) I suppose I see this problem a little differently so let's
talk.
1) While I agree conceptually with your comment about OOS data, I
don't personally agree with using a portion of the target system's IS
Data as OOS unless I know the distributions of returns for the first
3/4 vs the last 1/4 are very similar. I suspect that to match Mike's
IS results I should use all the same data he used as IS.
2) In the case of a _specific_ target system like MiniMax in this case
Mike & I would be operating with different data. He can look at those
distributions, I cannot. However he can also see how the system has
operated way OOS also. I cannot do either. Lacking that info my view
is:
a) Attempt to match the IS performance report.
b) See if it works OOS.
c) If it does then consider trading it, if not move on.
3) While Mike suggests that in the case of MiniMax he got similar code
from Builder, I ran the reverse engineering process 5 times and I
didn't get the same code all 5 times. Lacking the real MiniMax code I
have no way of knowing if any one of those is even similar to Mike's
system or whether they are all different. However, if I had MiniMax
code why would I reverse engineer what I already have? Mike did it,
IMO, to explore the reverse engineering idea and not to necessarily
promote that it's the right way to approach system development.
4) Last, for now, this whole process is really just another way to
decide what build metrics to use in Builder. If I start with no
information about a real system then my build metrics are really just
goals I might have. So much profit, so many trades, some values for
other things. They aren't real. They are just things I'd like. On the
other hand, if I start with known results from a real system then, if
Builder is successful, I end up with Builder code that is _possibly_ a
little closer to something other people have developed elsewhere. In
neither case do I really know anything about how it will work OOS.
That's a different problem in my mind.
Anyway, I'll continue to think on the issue and report back results
as I get a chance. Maybe others will want to investigate the idea. (Or
maybe not!) ;-)
Cheers,
Mark
Rick,
I __COMPLETELY__ agree. But on the other hand how is this any
different than doing a system from scratch? I don't think, but it's
just my opinion, that Mike ever suggested that using this process will
cause Builder to duplicate the code in any system. He as much as said
it didn't duplicate his system. Based on that I have to agree with
you. Future performance of a 'reverse engineered' system must
certainly be different from the system itself. Therefore we're left
with the same old problem. When do I trade this system, from code,
from Builder using reverse engineering, from Builder from scratch.
It's always down to that problem in my mind.
Cheers,
Mark
Mike Bryant