проверка занимает мало времени, так что урезать не стоит.
вот классическая проверка на новый бар:
static datetime prevtime = 0;// вставить в глобальные переменные int init() { //---- prevtime = Time[0]; //**************************остальной инит } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //******************************** код, исполняемый на каждом тике - выше if(Time[0] <= prevtime) return(0);//ждем появления нового бара else prevtime = Time[0];//если появился новый бар, начинаем работу if(IsTradeAllowed()) { RefreshRates(); } else { prevtime = Time[1]; return(0); } //******************************** код, исполняемый на открытии - ниже }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
например, мне надо проверять цену только открытии бара в том тайфрэйме, где тестируется робот.. например, h1.
я реализовал это кодом сверху.. но эффективно ли это? ведь каждый раз при событии вызывается тиковая функция, которая проверяется на наличие нового бара..
может можно как-то упростить это? чтобы не делать лишней проверки каждый раз