Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Торгуй с помощью MetaTarder 5. Скачай прямо сейчас!
albion
80
albion 2011.05.10 12:22 

Всем привет.

Вообщем нужно изменить пару индюков и роботов, где есть котнроль врменных промежутков через функции TimeDay, TimeHour.

А мне нужны более мелкие таймы 1 5 15 30 минут. Хотя и болье высокие тоже нужны типа 120 240 720 минут.

Я так понимаю что в функциях  TimeDay, TimeHour, все упирается в секунды и гдето в тексте эти функций идет деление на 3600 и тд.

Есть ли у кого исходники функций TimeDay, TimeHour, чтобы можно было их переделать, или функции аналоги. 

Dmitry Fedoseev
41267
Dmitry Fedoseev 2011.05.10 17:15  

Если стандартные таймфреймы, можно вычислить номер бара старшего таймфрейма с начала эпохи.

Например, находимся на М5, нужно узнать не начался ли новый бар М15: 

int nbc=Time[i] /900; // номер бара М15 с начала эпохи соответствующий текущему бару М5

На предыдущем баре М5:

int nbp=Time[i+1] /900; // номер бара М15 соответствующей предыдущему бару М5

Если nbc не равно nbp, значит находимся на первом баре М5 начинающем новый бар М15. 

Если не стандартные таймфреймы, можно попробовать через iBarShift(): iBarShift(NULL,11,Time[i],false) не равно iBarShift(NULL,11,Time[i+1],false).

Исходники перевода секунд с начала эпохи в дату, врядли помогут, слишком специфическая функция, узкая и совсем не общая.

TimeHour() - легко:

int h=(TimeCurrent()-86400*(TimeCurrent()/86400))/3600;
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий