The following code allows to open a position at a preset time.
Code:
extern string OpenTime = "10:00-10:05; 12:20-12:31; 13:40-13:55";
void OpenPosition()
{
string OTA[];
string OTI[];
split(OTA, OpenTime, ";");
datetime tm0 = CurTime();
datetime tm1, tm2;
bool cond = false;
int cnt = ArraySize(OTA);
for (int i=0; i < cnt; i++) {
split(OTI, OTA[i], "-");
if (ArraySize(OTI) != 2) continue;
tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[0]);
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " " + OTI[1]);
cond = cond || (tm1 <= tm0 && tm0 < tm2);
}
if (cond)
{
// Opening a position...
}
}
void split(string& arr[], string str, string sym)
{
ArrayResize(arr, 0);
string item;
int pos, size;
int len = StringLen(str);
for (int i=0; i < len;) {
pos = StringFind(str, sym, i);
if (pos == -1) pos = len;
item = StringSubstr(str, i, pos-i);
item = StringTrimLeft(item);
item = StringTrimRight(item);
size = ArraySize(arr);
ArrayResize(arr, size+1);
arr[size] = item;
i = pos+1;
}
}