Условия.

 

Привет всем!
В первую очередь большое спасибо всем за отзывчивость! НА ВСЕ ВОПРОСЫ ПОСТОЯННО ЗДЕСЬ НАХОЖУ ОТВЕТЫ.
Сейчас у меня очередной вопрос к Вам!
Проблема в следующем:
Моя МТС основана на
1. Открытии позиции по времени (к примеру в 12:00 GMT)
2. МТС должна смотреть предыдущий бар.(к примеру бар черный или белый)

Если пишу условие
if (Hour==12)
{
Условие выполняется - но время не соответствует !
}

Пожалуйста, просто приведите простой пример для выполнения этих двух условий. Или подскажите где можно об этом почитать.
Спасибо!

 
int Hour( )
Возвращает текущий час (0,1,2,..23) последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).
Замечание: при тестировании последнее известное время сервера моделируется.
Пример:
  bool is_siesta=false;
if(Hour()>=12 || Hour()<17)
is_siesta=true;

С каким временем не совпадает? С серверным?

Можно сделать так (для серверного времени):
if ( TimeHour( CurTime() ) == 12 )
{
...
}

Или так (для локального):
if ( TimeHour( LocalTime() ) == 12 )
{
...
}
 
со временем разобрался немного по другому, не знаю верно или нет но работает:

TimeToStr(iTime("EURUSD",PERIOD_M1,0),TIME_MINUTES);

Осталось - как обратиться к параметрам предыдущего бара (Close,Open и т.д....)
 
Может чего не понял? но может речь об этом:

. . .
int WorkHour=12;
. . .
if(TimeHour(Time[Shift])==WorkHour)
{
if(Close[Shift+1]>Open[Shift+1])
. . . . . .
}

(чего-то вставка кодов не работает)

Но при этом условие проверки заданного часа =WorkHour будет работать на всех барах этого часа.
Если надо только первый раз каждый день, то так (может быть :)

if(TimeHour(Time[Shift])==WorkHour && TimeHour(Time[Shift+1])!=WorkHour)
{
if(Close[Shift+1]>Open[Shift+1])
. . . . . .
}