jcl, thanks for your input.
I analyzed the error further and found, that the dayHigh(int zone,int day)
is the problem, in particular the call of:
int morning = timeOffset(zone,day,StartMarket/100,StartMarket%100);

The first time the dayHigh function is called, the timeOffset is wrong, after that it calculated it correct.
Here is the script to demonstrate that:

the result of the script below looks like that (please watch for the morning value).

before DH = mydayHigh(ET,0)evening 0, morning 1, StarMarket 830,timeOffset(zone,day,StartMarket/100,StartMarket mod 100) 1, zone: -5, vHH 1.178200, day 0
before dh_1 = mydayHigh(ET,0)evening 0, morning 24, StarMarket 830,timeOffset(zone,day,StartMarket/100,StartMarket mod 100) 24, zone: -5, vHH 1.179920, day 0
before 2nd time: DH = mydayHigh(ET,0)evening 0, morning 24, StarMarket 830,timeOffset(zone,day,StartMarket/100,StartMarket mod 100) 24, zone: -5, vHH 1.179920, day 0

Code:
#include <profile.c>
int g_count;
int skipWeekend(int day) 
{
	int d = dow(0)-day;
	while(d < 0) d += 7;
	if(d == SATURDAY) day += 1;
	if(d == SUNDAY) day += 2;
	return day;
} 
 
var mydayHigh(int zone,int day)
{
 
	if(is(INITRUN)) return 0;
	day = skipWeekend(day);
 
	int evening = timeOffset(zone,day,EndMarket/100,EndMarket%100);
	int morning = timeOffset(zone,day,StartMarket/100,StartMarket%100);
print(TO_LOG, "evening %d, morning %d, StarMarket %d,timeOffset(zone,day,StartMarket/100,StartMarket mod 100)  %d,    zone: %d", evening, morning, StartMarket,timeOffset(zone,day,StartMarket/100,StartMarket%100), zone);
	if(evening >= morning) { 
print(TO_LOG,", evening >= morning %d",evening >= morning);
	return priceHigh(evening);}
	var vHH = 0;
	for(g_count = evening; g_count <= morning; g_count++)
		vHH = max(vHH,priceHigh(g_count));
print(TO_LOG, ", vHH %f, day %d", vHH, day);
	return vHH;
}

var mydayLow(int zone,int day)
{
	if(is(INITRUN)) return 0;
	day = skipWeekend(day);
	int evening = timeOffset(zone,day,EndMarket/100,EndMarket%100);
	int morning = timeOffset(zone,day,StartMarket/100,StartMarket%100);
	if(evening >= morning) return priceLow(evening);
	var vLL = 999999;
	for(g_count = evening; g_count <= morning; g_count++)
		vLL = min(vLL,priceLow(g_count));
	return vLL;
}
 
int debug  = 1;
 double DH , DL, atr_avg;
function run()
{
	 
	set(LOGFILE);
	
	BarPeriod =5;
	LookBack  = 100;//40*24+1;
	UnstablePeriod=10;
	Hedge = 0;
	//Stop = 15 * PIP;
	//Trail = 10 * PIP;
	Spread=0.0;
	Lots=100;
	
	StartDate = 20150101;
	EndDate   = 20150202;
	///////////////////////////////////////////////////////////////////////////////////////////////////////
	int marketstart 	= 930;
	int marketend=1600; 
	
	vars Price = series(priceClose()); 	
	
	StartMarket = 830; // open_range_start
	EndMarket = 1030;    // end	
	
 
	static int cur_day = 0 ,is_new_day = 1;
 	 
	static bool is_after_or;
  
   
 	bool is_week_day=ldow(ET,0) <= FRIDAY;
 	vars crosses = series(0);
 	
 	
 /// EVERY RUN
 //	asset("APPL");
 
 	TimeFrame=24;
	atr_avg = ATR(1);//(0.05 *((ATR(1) + ATR(2))/2));
	TimeFrame=1;
 
 	
 	/////////////////// / N E W - D A Y //////////////////////////////////////////////////////
 
	if ( is_week_day && ldow(ET,0) != cur_day){ // new day
	cur_day = ldow(ET,0);
		is_new_day = 1;
		is_after_or = false;
	} 

////////////////////// Market Open range/////////////////////////////////////////////////////////////////////////////////
 
	if( !is_after_or and ltod(ET,0) > EndMarket and Bar > LookBack ) {
		
		
		
		print (TO_LOG, "\nbefore DH = mydayHigh(ET,0)");
		
		DH = mydayHigh(ET,0); 
		DL = mydayLow(ET,0);
		print (TO_LOG, "\nbefore dh_1 = mydayHigh(ET,0)");
	    double dh_1 = mydayHigh(ET,0);
	
	    
	    print (TO_LOG, "\nbefore 2nd time: DH = mydayHigh(ET,0)");
		
		DH = mydayHigh(ET,0); 
		
 	  is_new_day = 0;
  	  is_after_or = true;
  	  
  	  string msg_text = strf( "\n*** Debug INSIDE market open range: Bar Date %s  \nDH: %f,dh_1 %f, DL: %f, dayLow(ET,0) %f, ,StartMarket %d, EndMarket %d   ", 
  	  datetime(), DH,dh_1 ,DL, dayLow(ET,0), StartMarket, EndMarket );

	  if( debug ) print(TO_LOG,msg_text);
 
  	 
	}
}