- как определить начало новой свечи
- Первый шаг MQL4
- Закрьiтие ордера
в OnTick, OnTrade, OnTimer (вообще во всех без исключения OnXXX)
засекать текущее время (можно даже WinAPI с милисекундами) и проверять не открылась ли свечка.
Всем привет. А как можно определить время наступления новой свечи? Знаю что есть время открытия, но тут именно нужно время начала, даже если тика ещё не было, именно первую секунду, через OnTimer. Например если M5 то 20:15:01 или 16:30:01. Это по MQL4
Нет тика, нет и свечи. Новая свеча начинает рисоваться только по появлению первого тика времени этой свечи.
Если-же вы хотите делить минуту на 3-4 части, то-есть по 15-20 секунд, то OnTimer не подходит. В этом случае надо действовать так-же как с определением новой свечи.
Нет тика, нет и свечи. Новая свеча начинает рисоваться только по появлению первого тика времени этой свечи.
Если-же вы хотите делить минуту на 3-4 части, то-есть по 15-20 секунд, то OnTimer не подходит. В этом случае надо действовать так-же как с определением новой свечи.
Точнее мне даже нужно время наступления нового "отрезка", в течение которого будет формироваться свеча
Прибавляйте к дате последней свечи длительность текущего периода в секундах. Получится время наступления нового отрезка. Только там где есть перерывы во времени могут быть нюансы
Прибавляйте к дате последней свечи длительность текущего периода в секундах. Получится время наступления нового отрезка. Только там где есть перерывы во времени могут быть нюансы
Прибавлять можно, но дата последней свечи не всегда точная. Вот думаю как её округлять
посчитать время начала дня и прибавить сколько нужно отрезков. Только календарные функции
Вот думаю как её округлять
при инициализации (или при первом вызове)
- получите необходимое время (открытие дня? открытие бара №1 ?)
- конвертируйте в MqlDateTime и обнулите поля min и sec
- конвертируйте в datetime и прибавляйте в дальнейшем необходимое количество секунд - округлять через MqlDateTime больше не нужно
при инициализации (или при первом вызове)
- получите необходимое время (открытие дня? открытие бара №1 ?)
- конвертируйте в MqlDateTime и обнулите поля min и sec
- конвертируйте в datetime и прибавляйте в дальнейшем необходимое количество секунд - округлять через MqlDateTime больше не нужно
Зачем правое ухо чесать левым мизинцем? Ведь проще разделить текущее время на 3600 и откинуть дробную часть. Типа так int(TimeCurrent()/PeriodSeconds(PERIOD_M1));
del
не хочу очередного бессмысленного холивара без примеров в коде, времени много занимает обсуждение не реализации, а просто чужого мнения
прочитайте еще раз первое сообщение топика, Вы предлагаете чесать левое ухо правым мизинцем.... делать то, что будете со своим округлением если период будет кратен 5 или 15 ? - в моем способе автор должен будет просто заполнить поле min структуры MqlDateTime необходимым значением (0 или 5 или 15)
UPD: забыл =- еще ТФ может быть кратен 30 мин и в MQL5 еще куча минутных ТФ - все равно все решаемо в одной пользовательской функции при инициализации ЕА
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования