Открыть сделку вначале торгового дня и закрыть вконце. CFD на акции.

 
Биржа открывается в 17:30 и заканчивает свою работу в 00:00.

Нужно во время открытия быржи открыть сделку, и перед закрытием биржи - закрыть эту сделку (например, за минуту до закрытия рынка).

Что в mql4 символизирует начало торгового дня? К какому параметру привязываться? iTime, или какому-то другому?


если подробнее: советник видит, что "о, торговый день начался", он берет цену открытия дня, и выставляет отложенный ордер на 10 пунктов выше от нее.

потом он видит "о, через минуту  торговый день завершается" - и закрывает этот ордер.

то есть нужно иметь сигнал, что торговый день уже открыт, цену открытия, и как-то понимать, что скоро конец торгового дня...



 

Можно в настройках советника задать время начала и окончания торговли по времени сервера, от заданных значений и плясать.

То есть сравнивать TimeCurrent() с заданным пользователем значением формата input datetime begin=D'17:30', end=D'23:59';

 
evillive:

input datetime begin=D'17:30', end=D'23:59';
что это за функция?

я думал так:

если Hour()=17 и Minute()=0 тогда открываемся

если Hour()=23 и Minute()=59 тогда закрываемся

цену открытия думаю определять так:

iOpen(Symbol(),PERIOD_D1,0)
 
igrok333:
что это за функция?

я думал так:

если Hour()=17 и Minute()=0 тогда открываемся

если Hour()=23 и Minute()=59 тогда закрываемся

цену открытия думаю определять так:

iOpen(Symbol(),PERIOD_D1,0)

 input datetime begin=D'17:30', end=D'23:59'; - это вводный пользовательский параметр, доступный в настройках советника, вернее, там два параметра, разделённых запятой, так тоже синтаксис позволяет. Ну справку-то открыть хоть иногда надо?

Таким образом пользователь получает возможность задавать время начала и окончания торговли советником. Это время надо просто сравнивать с текущим временем сервера:

if(TimeCurrent()>=begin && TimeCurrent()<end) {разрешение торговли}

if(TimeCurrent()>=end || TimeCurrent()<begin) {закрыть ордера, запрет торговли}

цена открытия - double openprice=iOpen(_Symbol,0,iBarShift(_Symbol,0,begin)); - цена открытия свечи, в которую вписывается заданное время начала торгов, чем меньше ТФ - тем точнее.

 
evillive:

 input datetime begin=D'17:30', end=D'23:59'; - это вводный пользовательский параметр, доступный в настройках советника, вернее, там два параметра, разделённых запятой, так тоже синтаксис позволяет. Ну справку-то открыть хоть иногда надо?

Таким образом пользователь получает возможность задавать время начала и окончания торговли советником. Это время надо просто сравнивать с текущим временем сервера:

if(TimeCurrent()>=begin && TimeCurrent()<end) {разрешение торговли}

if(TimeCurrent()>=end || TimeCurrent()<begin) {закрыть ордера, запрет торговли}

цена открытия - double openprice=iOpen(_Symbol,0,iBarShift(_Symbol,0,begin)); - цена открытия свечи, в которую вписывается заданное время начала торгов, чем меньше ТФ - тем точнее.

ясно, спасибо.
Причина обращения: