When optimizing/testing systems we're supposed to either 1) optimize the system on as much past data as possible, or 2) optimize the system on a sample of past data, then test it on "out of sample" data.
Also, there is no rule that says that the rules and variables for the buy side of a system have to be the mirror opposite of the sell side.
Here's the premise, then the idea: markets don't go up as fast as they go down. Buying decisions are usually made carefully, and selling decisions are usually made quickly - stop losses. Fear is usually a more powerful and immediate driving force than greed.
So, why not break up your data into two parts - a bullish, or uptrending part, and a bearish, or downtrending part? It's always easy to see these parts in retrospect. You could define the trend in a number of simple ways - two moving averages crossing, or simple price change momentum, or even RSI (above or below 50 RSI).
Then, you test/optimize your system separately on the two data sets - so you end up with two systems. One for up market action, and one for down market action. You switch between the systems when your "trigger" (the above mentioned screening techniques) kicks in.
Hope this one doesn't keep you up all night, as it did me.
---Tom Loffman
Copyright, 1997
Tom Loffman, Equity Systems