Too bad life isn't so simple. When you are programming and testing system ideas, sometimes you want to do something in a "grey area" that verges on the unrighteous. A classic example is the Larry Williams / Lee Gettes "volatility breakout"
Code:
bigjump = 1.2 * Average(TrueRange, 5);
Buy at (Open + bigjump) on a Stop;
Is this immoral? (Sometimes called "postdictive" (TBB) or "peeking" (wealth-lab)) You can't know the open before trading begins, so you can't place the order until after trading begins, and by then it might be too late, the market might have moved far beyond your Stop price (imagine if your idea of "bigjump" was 0.1 ATR's rather than 1.2).
Some testing engines try to prevent you from doing the unrighteous; they try to make it impossible for you to accidentally use data-from-the-future to make decisions now. Tradestation 4 did this; and then users found out they couldn't program Volatility Breakout. So somebody went and wrote a DLL called "NextOpen" that allowed this kind of immoral peeking-into-the-future, but no other kind (they claimed).
Another example of a grey area is Maximum Slippage testing. This is a torture test that tells you whether your system works even with the worst possible fill prices. In this kind of testing, you fill all buy orders at the High price of the bar, and you fill all sell orders at the Low price of the bar. The idea is, if your system is still profitable under these miserable circumstances, then it's extremely robust.
But, try to program it! In most software packages this requires you to peek into the future, find the High of the day, and then set your Buy price equal to the High. Which, in most cases, is impossible. The software has prevented you from peeking, and it has also prevented you from doing what you want.
Other software packages allow peeking into the future, all you want. They put all control into the hands of the programmer. They give you enough rope to hang yourself. Whatever you want to do, you can. Even the impossible. If the close is higher than the open, buy on the open. Sure. It's your job to decide whether to use this capability, and if so, how.