На одной свечке - одна сделка.

 

Уважаемые специалисты MQL4,нужна ваша помощь.

Не получается написать часть кода советника,отвечающую за ограничение сделок на одной свечке.

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

Пробывал разные подходы,ни один не дал результата.

На форуме находил похожие темы,но проблему решить не удалось.

Предлагаю выложить тут код,советника,который просто покупает на текущей свечке,если на ней ещё не было покупок и продаж.

Заранее всем благодарен. 

 
Kowalski:

Уважаемые специалисты MQL4,нужна ваша помощь.

Не получается написать часть кода советника,отвечающую за ограничение сделок на одной свечке.

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

Пробывал разные подходы,ни один не дал результата.

На форуме находил похожие темы,но проблему решить не удалось.

Предлагаю выложить тут код,советника,который просто покупает на текущей свечке,если на ней ещё не было покупок и продаж.

Заранее всем благодарен.


https://www.mql5.com/ru/forum/113930
 
TEXX,огромное спасибо.
 

Справочник MQL4 Предопределенные переменные Bars

https://docs.mql4.com/ru/predefined/variables/bars => " int Bars: Количество баров на текущем графике."

Значание данной переменной может изменяться в следующих случаях:

1. подкачка истории при открытии графика;

2. изменение смещения графика;

3. изменение масштаба графика;

4. прокрутка графика;

5. начало формирования нового бара.

 
Ais:

Справочник MQL4 Предопределенные переменные Bars

https://docs.mql4.com/ru/predefined/variables/bars => " int Bars: Количество баров на текущем графике."

Значание данной переменной может изменяться в следующих случаях:

1. подкачка истории при открытии графика;

2. изменение смещения графика;

3. изменение масштаба графика;

4. прокрутка графика;

5. начало формирования нового бара.



Т.е. использовать переменную Барс некорректно?

 Ais,пытаюсь разобраться в коде https://forum.mql4.com/30475/page7#287657,спасибо. 

 

А как вообще сделать паузу в работе эксперта после некоторго события на несколько баров.

Будь то сделка,срабатывание ордеров лосс и профит и т.д. 

 
Пробывал "sleep" и различные функции со временем,но не получается.
 

"Т.е. использовать переменную Барс некорректно?"

Ненадежно.

 
Kowalski:



Т.е. использовать переменную Барс некорректно?


bool IsNewChartBar()
{
static int nP=-1,nB=-1;
static datetime nT = 0;
    if(((nT==Time[0])&&(nB==Bars)&&(nP==Period())))
        return(false);
    nT=Time[0];
    nB=Bars;
    nP=Period();
    return(true);
}

int start()
{
    //if(!IsNewChartBar()) return(0);//Для срабатывания эксперта один раз на новом баре.
    if(IsNewChartBar())
    {
    // Делаем то, что нужно при формировании нового бара.
    }
    // Все остальное ...... 
}
Можно еще и символ учесть - по аналогии.
 
Огромное спасибо, VladislavVG!
Причина обращения: