https://docs.mql4.com/ru/series/iTime в документации есть
bool New_Bar = false; // Флаг нового бара //-------------------------------------------------------------------- //-------------------------------------------------------------------- int start() // Спец. функция start { Fun_New_Bar(); // Обращение к ф-ии if (New_Bar == false) // Если бар не новый.. return; // ..то уходим ... return; // Выход из start() } //-------------------------------------------------------------------- //-------------------------------------------------------------------- void Fun_New_Bar() // Ф-ия обнаружения .. { // .. нового бара static datetime New_Time=0; // Время текущего бара New_Bar = false; // Нового бара нет if(New_Time != Time[0]) // Сравниваем время { New_Time = Time[0]; // Теперь время такое New_Bar = true; // Поймался новый бар } } //--------------------------------------------------------------------
А если я хочу узнать приход нового бара на N-ном таймфрейме? Подскажите как написать универсальную функцию. Я бы назвал ее TAKT() ? У нее один аргумен определяющий тип таймфрейма а на выходе ИСТИНА если на этом таймфрейме пришел новый бар.
СПАСИБО тем кто откликнется.
Уважаемые форумчане,
посоветуйте как написать советник , учитывающий время начала создания бара,чтобы продажа происходила через каждые 3 бара.
Заранее благодарен!
посоветуйте как написать советник , учитывающий время начала создания бара,чтобы продажа происходила через каждые 3 бара.
Заранее благодарен!
azfaraon:
Вот неугомонный... Я ж тебе готовый код написал в твоей ветке
про толстые свечи. Он открывает сделки именно в начале создания
бара, на первом тике. На какой график повесишь такие бары и будет
считать. Вот только если трэнд вверх, ты все равно будешь продавать?
Уважаемые форумчане,
посоветуйте как написать советник , учитывающий время начала создания бара,чтобы продажа происходила через каждые 3 бара.
Заранее благодарен!
посоветуйте как написать советник , учитывающий время начала создания бара,чтобы продажа происходила через каждые 3 бара.
Заранее благодарен!
Так красивей
int start() { if(!NewBar()) return; ...... return; } bool NewBar() { static datetime NewBarTime=0; if(NewBarTime!=Time[0]) { NewBarTime=Time[0]; return(true); } return(false); }
А так еще проще
int start() { static datetime NewBarTime=0; if(NewBarTime==Time[0]) return; NewBarTime=Time[0]; ...... return; }
Roger:
А так еще проще
int counted; int init(){ counted=Bars; return(0); } int start(){ // код на каждый тик int bar = Bars; if (bar != counted ) { counted= bar; //код по новому бару } return(0); }а так универсальнее :D
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Заранее благодарен!