В общих чертах алгоритм таков:
- Найти бар с нужным временем. Для этого запросить некоторое количество истории через функцию CopyRates. По полученному массиву пройтись и найти нужное или ближайшее время. Запомнить индекс элемента массива.
- Взять котировку Open по сохраненному индексу.
double GetOpenPriceByTime(datetime time) { MqlRates rates[]; int arraySize = CopyRates(_Symbol, PERIOD_CURRENT, time, time, rates); if (arraySize < 0) return 0.0; for (int i = 0; i < arraySize; i++) if (rates[i].time == time) return rates[i].open; return 0.0; }
В данном случае функция GetOpenPriceByTime вернет 0.0, если в терминале нет сведений о баре с запрашиваемым временем открытия, но эти данные еще могут быть подгружены, или же если в принципе нет такого бара. Функцию еще можно доработать так, чтобы она возвращала цену открытия ближайшего бара.
Пользоваться так:
datetime needTime = D'2015.12.15 16:00'; Alert("Цена: ", GetOpenPriceByTime(needTime));
Круто! Спасибо)
А какой функцией можно получить время закрытия последнего ордера?
Ордера или позиции? В MT5 ордерами называется то, что в МТ4 - отложенные ордера, а позиции - это рыночные ордера МТ4. Выходит, что закрыть ордер в МТ5 нельзя. Можно только отменить его. Или еще говорят "удалить".
Посмотреть была ли сегодня торговля можно? Т.е. не хочу торговать если депозит сегодня менялся) Ну или как то так
Посмотреть была ли сегодня торговля можно? Т.е. не хочу торговать если депозит сегодня менялся) Ну или как то так
Тогда нужно смотреть список позиций. Смотрите в сторону функций HistoryDealsTotal(), HistoryDealSelect().
Смысл в том, чтобы перебрать список закрытых сделок за текущий день и выбрать самую последнюю.
Ihor Herasko:
Тогда нужно смотреть список позиций. Смотрите в сторону функций HistoryDealsTotal(), HistoryDealSelect().
Смысл в том, чтобы перебрать список закрытых сделок за текущий день и выбрать самую последнюю.
Большое спасибо! Все получилось =)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ребят, не удалось найти отдельную ветку для вопросов =(
Подскажите, как в советнике на MQL5 получить open котировки, взятой скажем из 15:43 ("сейчас", например, 17:00)? Не получается разобраться...