закрыть сделку за пять минут до закрытия дневной свечи ? - страница 2

 
gfm73:

))) Вообще я невнимательно прочитал пост, сорри!!!!

Из кода уберите  TimeDayOfWeek(time[0]) == 5, тогда будет работать как хотел Stells

Там не только это править надо
 
Vinin:
Там не только это править надо

Как правильно будет ?
 
Stells:

Как правильно будет ?

С моей точки зрения о закрытии нужно думать много раньше. Если стоите в шортах, то расширение спреда сожрет все, чего вы сможете добиться в следующие часы. Кроме того, можно нарваться на уменьшение плеча при первой попытке совершить торговую операцию.

У некоторых ДЦ рынок бывает закрыт с 23.55 до 00.05. Так что, закрыться будет не судьба.

Это на реале. 

 
Stells:

Как правильно будет ?
Нельзя задавать точное время, его может и не быть. нужен интервал
 
Vinin:
Нельзя задавать точное время, его может и не быть. нужен интервал

Столько сложностей из ничего!

См.

int OnInit(){
   ...
   //выставляет флаг в нужное значение
   Event_Not_Close = false;
   ...
}

if((TimeMinute(time[0]) >= 55 && TimeHour(time[0]) == 23)||(Event_Not_Close)){
   //Тут делаете то что планировали!!!
   ...
   //Если получилось, выставляет флаг в нужное значение
   Event_Not_Close = false;
   //Если не получилось, выставляет флаг в нужное значение
   Event_Not_Close = true;
}

 Минуты подберете сами, задача какая была??? Закрыть сделку за 5 минут до закрытия дневки, что вы тут все усложняете.

Этот код данную задачу позволяет сделать, а вот позволит ли Вам текущая ситуация выполнить то что вы хотите, это уже другая история. В любом случая, сделка будет закрыта, после назначенного времени, произойдет ли это в 23.55 или позже, тут Вам решать как быть.

Под ситуациями понимаю:

- обрыв интернет соединения;

- падение сервера брокера(всех);

- отключение света; 

- тупое зависание Вашего компа.

и т.д. 

Во всех этих случая, к сожалению данный алгоритм никак Вам не поможет. )))) 

 
Scriptong:

К сожалению, не поможет. Ведь индикатор не может выполнять торговые операции. Поэтому речь должна идти только о советнике. А там уже OnTick() или OnTimer().

Еще раз: IsTradeAllowed() не отслеживает состояние рынка. В документации четко написано: Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false. Есть здесь упоминание о том, что осуществляется проверка состояния рынка?

При чём тут индикатор?

Ну проверите в выходные что возвратит. 

 
Stells:

Как правильно будет ?
Только через OnTimer()
 
eevviill:

При чём тут индикатор?

Ну проверите в выходные что возвратит. 

В том то и дело, что перед тем, как писать (воскресенье было), проверил. Теперь Ваш ход )))
Причина обращения: