Всё правильно. условие (dateCur != rates[0].time) верно только при появлении нового бара. а при появлении бара O=H=L=C
надо получать с предыдущего бара (1)
void OnTick() { MqlRates rates[]; int count_getted = CopyRates(Symbol(), PERIOD_H4 , 0, 2, rates); if(dateCur != rates[0].time) { Print(TransRateToString(rates[1])); dateCur = rates[0].time; } }
Или вообще всё нули на единицы замените и будет вам счастье
pronych:
pronychВсё правильно. условие (dateCur != rates[0].time) верно только при появлении нового бара. а при появлении бара O=H=L=C
надо получать с предыдущего бара (1)
Или вообще всё нули на единицы замените и будет вам счастье
Совершенно верно
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, вопрос от новичка).
Задача: Получить актуальный объект MqlRates за определенный период (H4):
Всё глупо и примитивно. Запускаем:
Вывод:
Вопрос: Почему цены открытия, закрытия и т.п. одинаковые и как это исправить?