Trading systems are at the heart of mechanical trading. Usually a process of creating a system looks the same: start with some idea for market inefficiency, code up rules, add stop losses and position sizing. Then start trading. But how do we know we are not a victim of survivorship bias? To illustrate the point let's take two traders: Trader A assumes markets are more likely to go in the same direction as before. Trader B assumes markets are more likely to go in opposite direction than before. Both traders test their rules on historical data. Trader A finds his idea confirmed. Trader B's idea is wrong. Trader A keeps developing his system based on his rules. Trader B, meantime, keeps looking for a profitable idea.
The only problem with this approach is that Trader A system is a victim of survivorship bias. After all, if his rules didn't work in the past, he also would be looking for another idea. Right now Trader A takes knowledge from the present and applies it to data in the past.
A better way to do it would be to create two trading systems. Both systems have the same rules (as in parameters and logic) but their signals are interpreted in opposite way (after all we don't know how to interpret signals upfront). For example, system A buys when market's price is above Simple Moving Average of 200 days (SMA200) and system B sells when market's price is above SMA200. Then, backtest both systems on the same market. In this case, when one system is losing, the other is winning. At first glance it makes no sense - our total profit would be zero minus commissions. But we can take information about each system's profit to decide how to proceed in real trading. We take more profitable system as deciding factor when opening a position. So if system A is profitable - buy when market is above SMA200, if, on the other hand, system B is in black: sell when market is above SMA200.
Wisdom of the Crowd
Wisdom of the crowd is interesting phenomena when average guess of a group is better than individual guesses of the group's members. The reason is rooted deeply in mathematics. Traders can use wisdom of the crowd to get better chance to trade profitably. If a traders has a population of systems, he can use them (using their hypothetical profit in the past as each system's weight) to calculate cumulative prediction for the next trading day. Later, when outcome of the prediction is known, systems' weight needs to be updated. The trader can remove bad systems (that is the ones with profit around zero, as very bad systems are actually useful - we'll just do opposite to what they say). Trader is free to add new systems to his population. The new system's weight would be zero and would change with each prediction.
It's time to introduce Genotick - a open source software that does exactly this: creates, tests and updates a population of systems. Although the software is in its infancy, it boasts very promising results and you're strongly encouraged to check it out. It's free - as in "beer" and in "speech".