да я сам в шоке тож с таким столкнулся iTime создали для определения времени открытия бара а для того что бы скопировать все тики бара поленились создать стандартную функцию iTimeClose ... дичь полная ковыряйся как хошь
Antoniuk Oleg:
Приветствую! Мне нужна функция, которая бы возвращала время закрытия i-ого бара на указанном периоде и графике. Что-то похожее на это:
Если кто-то писал такую, поделитесь пожалуйста.
---------------------- добавил:
Тема закрыта. Нужно было сначала поиском воспользоваться 'Как узнать время закрытия предпоследнего бара'
Да и вообще решение такое очевидное...
Приветствую! Мне нужна функция, которая бы возвращала время закрытия i-ого бара на указанном периоде и графике. Что-то похожее на это:
Если кто-то писал такую, поделитесь пожалуйста.
---------------------- добавил:
Тема закрыта. Нужно было сначала поиском воспользоваться 'Как узнать время закрытия предпоследнего бара'
Да и вообще решение такое очевидное...
попробуй так
datetime barTime = iTime(Pair, Period_TF, i); datetime barTimeStart = barTime; Print(i," barTimeStart", barTimeStart); datetime barTimeEnd = barTime + PeriodSeconds(); Print(i," barTimeEnd", barTimeEnd);// Определение конца бара
что то у меня не получается все тики проанализировать на заданном баре говит их нет
// Обработка каждого бара по отдельности for (int i = BarsTotalInput - 1; i >= 0; i--) { datetime barTime = iTime(Pair, Period_TF, i); datetime barTimeStart = barTime; Print(i," barTimeStart", barTimeStart); datetime barTimeEnd = barTime + PeriodSeconds(); Print(i," barTimeEnd", barTimeEnd);// Определение конца бара MqlTick ticks[]; long ticksCopied = CopyTicksRange(Pair,ticks,COPY_TICKS_ALL,barTimeStart,barTimeEnd); // Копируем тики для диапазона времени if (ticksCopied < 0) { int errorCode = GetLastError(); Print("Ошибка при копировании тиков для бара с временем ", TimeToString(barTime), ". Код ошибки: ", errorCode); ResetLastError(); continue; // Переход к следующему бару } else if (ticksCopied == 0) { Print("Нет доступных тиков для бара с временем ", TimeToString(barTime)); continue; // Переход к следующему бару }
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) 2 barTimeStart2024.08.30 15:00:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) 2 barTimeEnd2024.08.30 16:00:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) Нет доступных тиков для бара с временем 2024.08.30 15:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) 1 barTimeStart2024.08.30 16:00:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) 1 barTimeEnd2024.08.30 17:00:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) Нет доступных тиков для бара с временем 2024.08.30 16:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) 0 barTimeStart2024.08.30 17:00:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) 0 barTimeEnd2024.08.30 18:00:00
2024.08.30 17:20:22.360 O_v2 (EURUSD,H1) Нет доступных тиков для бара с временем 2024.08.30 17:00
Может кто то подсказать почему нельзя скопировать все тики хотя бы 3 последних баров и почему они не копируются?
Может кто то подсказать почему нельзя скопировать все тики хотя бы 3 последних баров и почему они не копируются?
Время последнего тика это не время закрытия бара. Точно так же и время первого тика не значит время открытия бара.
Время закрытия бара и время открытия следующего ВСЕГДА равны.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если кто-то писал такую, поделитесь пожалуйста.
---------------------- добавил:
Тема закрыта. Нужно было сначала поиском воспользоваться 'Как узнать время закрытия предпоследнего бара'
Да и вообще решение такое очевидное...