Используйте функцию StringToTime, значение лучше получить до входа в тело цикла - работать будет значительно быстрее...
mql5, имеете в виду так?
input string buffLimit_Str = "2015.09.05"; // Задаём время граничного бара, диапазон которого о 0-го бара будет записан в массив(Буфер) bool first; datetime buffLimit_Time; // buffLimit_Str в формате datetime //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { first = false; return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if (first == false) { buffLimit_Time = StrToTime (buffLimit_Str); // Переводим тип заданной input-переменной в тип datetime for (int i = 0; i < Bars - 1; i++) { Print ("i = ", i, "; Time[", i, "] = ", Time[i]); // Принтуем порядковый номер выбранного бара и время его появления в формате datetime Print ("Time_T[", i, "] = ", buffLimit_Time); // Принтуем время его появления в формате datetime if (buffLimit_Time >= Time[i]) { break; } } first = true; } }
Гы.
if (time <= "2015.09.05")
eevviill:
А сам какие ошибки по молодости делал?
Гы.
if (time <= "2015.09.05")
Vinin:
А сам какие ошибки по молодости делал?
Страшшшные:))))))
А сам какие ошибки по молодости делал?
Vinin:
А сам какие ошибки по молодости делал?
Все мы делаем периодически ошибки. И чаще долбёмся максимум времени над глупыми ошибками. По-крайне мере, у меня так... А сложнее вещи пушутся более внимательно что-ли.
А сам какие ошибки по молодости делал?
shanty:
Все мы делаем периодически ошибки. И чаще долбёмся максимум времени над глупыми ошибками. По-крайне мере, у меня так... А сложнее вещи пушутся более внимательно что-ли.
Все мы делаем периодически ошибки. И чаще долбёмся максимум времени над глупыми ошибками. По-крайне мере, у меня так... А сложнее вещи пушутся более внимательно что-ли.
Ошибки всегда глупые. Умных ошибок еще не видел.
Хотя есть другой вариант. Когда не ошибка, а понять трудно. Логика другая. Хотя и сам подобным страдаю.
А ещё
"2015.09.05"
нужно записать как datetime
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Появилась надобность создать несколько массивов, которые будут являться буферами. Но использовать индикаторные буферы не подходит по некоторым причинам. Выбран был вариант создания массива структур, как наиболее оптимального и удобного варианта использования и организации кода.
Так вот я, на этапе подготовки, без заполнения массива структур решил реализовать имитацию заполнения массива от текущей даты до заданной. На данный момент, заданная дата прописана в ручную для пробы: 2015.09.05. В общем-то я попался на том, что такой даты не существует в рынке. По ходу это был выходной. Соответственно, оператор break не отработал. Далее я ввёл дату 2015.09.04 и всё отработало как нужно. Возник вопрос. Как по грамотнее осуществлять проверку на признак существования бара, время которого будет проверять в условии:
Ведь это как-то можно компактно проверить.
Если бы я производил выборку в диапазоне цифр, я б сделал так:
Но это строки. А значит здесь такое не применимо. А переводить строки в цифры и обратно тоже не вариант...