MQL5. Открытие сделки по закрытию бара.

 

Здраствуйте, коллеги! Подскажите, пожалуйста, как реализовать проверку условий для открытия позиции по закрытию бара? Буду очень благодарен за помощь!

 
Temirarious:

Здраствуйте, коллеги! Подскажите, пожалуйста, как реализовать проверку условий для открытия позиции по закрытию бара? Буду очень благодарен за помощь!

Закрытие бара сопровождается открытием нового бара. Поищите на сайте пользовательскую функцию проверки открытия нового бара. У неё было много вариаций. Обычно название у такой функции IsNewBar.

С уважением, Владимир.

 
Temirarious:

Здраствуйте, коллеги! Подскажите, пожалуйста, как реализовать проверку условий для открытия позиции по закрытию бара? Буду очень благодарен за помощь!

Вам нужно не закрытие бара, а открытие нового.

Наберите в поиске по сайту "isnewbar"


и смотрите на результаты поиска.

Можете в левом меню страницы с результатами поиска выбрать раздел "Форум":


 
MrBrooklin #:

Закрытие бара сопровождается открытием нового бара. Поищите на сайте пользовательскую функцию проверки открытия нового бара. У неё было много вариаций. Обычно название у такой функции IsNewBar.

С уважением, Владимир.

Подскажите, пожалуйста, пересечение скользящей линией Chaikin Volatility нулевой линии снизу-вверх как обозначить правильно? Я сделал, но мне сделали замечание.
 
Artyom Trishkin #:

Вам нужно не закрытие бара, а открытие нового.

Наберите в поиске по сайту "isnewbar"


и смотрите на результаты поиска.

Можете в левом меню страницы с результатами поиска выбрать раздел "Форум":


Подскажите, пожалуйста, пересечение скользящей линией Chaikin Volatility нулевой линии снизу-вверх как обозначить правильно? Я сделал, но мне сделали замечание.
 
Temirarious #:
Подскажите, пожалуйста, пересечение скользящей линией Chaikin Volatility нулевой линии снизу-вверх как обозначить правильно? Я сделал, но мне сделали замечание.

Извините, но мне не понятен Ваш вопрос. Сформулируйте свой вопрос несколько иначе или подождите некоторое время, может быть кто-нибудь на Форуме понял о чём идёт речь и ответит на него.

С уважением, Владимир.

 
Temirarious:

Здраствуйте, коллеги! Подскажите, пожалуйста, как реализовать проверку условий для открытия позиции по закрытию бара? Буду очень благодарен за помощь!

несколько хитрее и чуть сложнее чем по открытию :-) 

потому что события "закрытие текущего бара" и "открытие нового бара" не эквивалентны и не совпадают.  Не все отписавшиеся об этом подумали (или вообще в курсе дел)

бар закрывается строго по истечению отпущенного периода и ценой закрытия становится цена последнего тика.

бар открывается по истечению одного или более периодов и приходу тика. Ценой открытия становится цена этого тика.

таким образом "открыть сделку (или вообще что-то делать) по закрытию бара" это всё равно что среагировать на таймер.

datetime barTime;               // время открытия текущего бара
datetime timerNextBar;  // таймер для следующего бара

void OnTick() {
        CheckTimers();
        datetime tmp=iTime(_Symbol,_Period,0);
        if (tmp!=barTime) {
             barTime=tmp;
             OnBar();
        }
}
void OnTimer() {
       CheckTimers();
}
void CheckTimers() {
     if (timerNextBar!=0) {
         if (timerNextBar>TimeCurrent() || timerNextBat> TimeServer()) {
              OnBarClose();     // <--- бар закрылся
              timerNextBar=0;
         }      
     }
}
// событие - открытие бара
void OnBar() {
      datetime nextBarTime=barTime+PeriodSeconds();
}
// событие - закрытие бара
void OnBarClose() {

}

и это если работать с секундами. В большем разрешении несколько совсем сложнее

Причина обращения: