Hey swen.... As it's coded , there is not anything between start() and the job .... So yes, it will do the job on every tick....

A frequent method is to count something, on your case here you could count the total orders.... If the count has changed since the last tick,

-- Now do the job....

Else

-- Now do nothing....

//--

When EA starts,all open transactions should be composed to the Array

this has me curious.... All of this information is stored/written currently .... Is there something special your doing with the array.... I can not tell from your code...h