Похоже получилось:
double Price ; // цена закрытия бара
// определяем время.
if (Hour()<1 && Minute()<2){
// начало нового дня, анализируем предыдущий вар дня
Price= iClose("EURUSD",PERIOD_D1,1);
Comment("Время : ",TimeToStr(TimeCurrent()),"\n Цена предыдущего дня=", Price);
}
else{ Comment(" Время анализа прошло" ); }
Похоже получилось:
double Price ; // цена закрытия бара
// определяем время.
if (Hour()<1 && Minute()<2){
// начало нового дня, анализируем предыдущий вар дня
Price= iClose("EURUSD",PERIOD_D1,1);
Comment("Время : ",TimeToStr(TimeCurrent()),"\n Цена предыдущего дня=", Price);
}
else{ Comment(" Время анализа прошло" ); }
Это не надежно. Лучше так:
//+------------------------------------------------------------------+ //| start_day.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //---- datetime new_time; datetime old_time; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { new_time=iTime(Symbol(), PERIOD_D1, 0); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() {return(0);} //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { new_time=iTime(Symbol(), PERIOD_D1, 0); if(new_time!=old_time) { //Исполняется при формировании новаго бара old_time=new_time; } //Исполняется на каждом тике //---- return(0); } //+------------------------------------------------------------------+
Это хорошо, но если этот код запустить в середине дня, первый тик будет отработан неправильно и поэтому нужно все равно проверять время между 00:00 и 00:01. Тем более что время берется не локальное, а по Meta Trader.
//+------------------------------------------------------------------+ //| start_day.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //---- datetime new_time; datetime old_time; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { old_time=iTime(Symbol(), PERIOD_D1, 0); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() {return(0);} //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { new_time=iTime(Symbol(), PERIOD_D1, 0); if(new_time!=old_time) { //Исполняется при формировании новаго бара old_time=new_time; } //Исполняется на каждом тике //---- return(0); } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Только начинаю осваивать MQL4. Мне нужно обработать данные за предыдущий день сразу после закрытия дня - дневную свечу. Как определить что день закончен и начат новый?
В хелпе пока ничего не нашел.
Или просто проверять время между 00:00 и 00:01 минутами ? Только это надо время сервера а не локальное.