Уважаемые специалисты MQL4,нужна ваша помощь.
Не получается написать часть кода советника,отвечающую за ограничение сделок на одной свечке.
Например,на часовом графике,сегодня я совершил сделку (купил),потом она закрылась по по ордеру или с рынка (не важно),дальнейшие сделки на этой свечке должны быть запрещены.
Пробывал разные подходы,ни один не дал результата.
На форуме находил похожие темы,но проблему решить не удалось.
Предлагаю выложить тут код,советника,который просто покупает на текущей свечке,если на ней ещё не было покупок и продаж.
Заранее всем благодарен.
https://www.mql5.com/ru/forum/113930
Справочник MQL4 Предопределенные переменные Bars
https://docs.mql4.com/ru/predefined/variables/bars => " int Bars: Количество баров на текущем графике."
Значание данной переменной может изменяться в следующих случаях:
1. подкачка истории при открытии графика;
2. изменение смещения графика;
3. изменение масштаба графика;
4. прокрутка графика;
5. начало формирования нового бара.
Справочник 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,спасибо.
А как вообще сделать паузу в работе эксперта после некоторго события на несколько баров.
Будь то сделка,срабатывание ордеров лосс и профит и т.д.
"Т.е. использовать переменную Барс некорректно?"
Ненадежно.
Т.е. использовать переменную Барс некорректно?
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()) { // Делаем то, что нужно при формировании нового бара. } // Все остальное ...... }
Можно еще и символ учесть - по аналогии.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые специалисты MQL4,нужна ваша помощь.
Не получается написать часть кода советника,отвечающую за ограничение сделок на одной свечке.
Например,на часовом графике,сегодня я совершил сделку (купил),потом она закрылась по по ордеру или с рынка (не важно),дальнейшие сделки на этой свечке должны быть запрещены.
Пробывал разные подходы,ни один не дал результата.
На форуме находил похожие темы,но проблему решить не удалось.
Предлагаю выложить тут код,советника,который просто покупает на текущей свечке,если на ней ещё не было покупок и продаж.
Заранее всем благодарен.