...
public OptimProperty StartTimeOpt = new OptimProperty(900, 0000, 2300, 1);
public OptimProperty EndTimeOpt = new OptimProperty(2300, 0000, 2300, 1);
public void Execute(IContext context, ISecurity security) {
var t1 = new TimeSpan(StartTimeOpt/100, StartTimeOpt - StartTimeOpt/100*100, 0);
var t4 = new TimeSpan(EndTimeOpt/100, EndTimeOpt - EndTimeOpt/100*100, 0);
var t3 = t1;
var t2 = t4;
if (t1 > t4) {
t2 = t4;
t3 = t1;
t1 = new TimeSpan(0, 0, 0);
t4 = new TimeSpan(24, 0, 0);
}
...
for (int i = 0; i < count; i++) {
TimeSpan time = security.Bars[i].Date.TimeOfDay;
bool enableTrading = (time >= t1 && time < t2) || (time >= t3 && time < t4);
...
}