Even setting Slippage = 0 does not eliminate the differences. The two trades from the logs above that started on 19.01.15 did indeed result in almost the same loss but one was stopped out two days earlier than the other. I don't think that can be because of slippage.

I've modified the example. Now I count the number of trades opened. When TradeNum is even I go long, otherwise I go short.

With BarPeriod 1440 i get 7 Trades. With BarPeriod 60 i get 18 Trades. This is a big difference.

Maybe that is because even though the entry time is the same the logs report a different entry price between the 1440 and 60 version. Why is that?

Code:
function run()
{
	Slippage = 0;
	
	set(TICKS + LOGFILE);
	LookBack = 0;
	
	StartDate = 20150105;
	EndDate = 20160105;
	StartWeek = 10000;
	
	if (1)
	{
		BarPeriod = 1440;
		TimeFrame = 1;		
	}
	else
	{
		BarPeriod = 60;
		TimeFrame = frameSync(24);		
	}
	
	asset("EUR/USD");
	
	static int TradeNum = 0;
	
	Stop = 20 * PIP;
	if (NumOpenTotal == 0)
	{
		if (TradeNum++ % 2 == 0)
			enterLong();
		else
			enterShort();
	}
}