[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 401
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как из "double" значения получить время в формате datetime? И можно ли прозводить операции между 2 переменными в формате datetime? Просто TimeCurrent() возращает datetime, а остальные функции int значения.
Цель, получить отрезок начало и конец предыдущего дня по текущему времени, и на этом отрезки найти high и low.
Цель iHigh("SYMBOL",PERIOD_D1,1); Это High предыдущего дня
Подскажите, пожалуйста, в чем тут загвоздка? Даю два куска кода, которые закрывают все сделки одного направления:
и второй:
Вроде бы все тоже самое, только второй должен закрывать сделки, начиная с последней, а первый - начиная с первой.
Так вот, первый работает правильно, все сделки закрываются, а вот второй закрывает только самую последнюю сделку, а остальные - нет. Почему?
'' Список ордеров в терминале является динамическим, в то время как проход в цикле for() будет статическим – если было сказано пройти от 0(нуля) до total-1 (количество ордеров в списке до начала удаления ордеров минус один), то так и будет. Если ордеров было 10, и мы начнем с начала списка (с нулевого ордера по списку), то после прохода от 0 до 4, в списке ордеров останется 5 ордеров, и размещаться они будут опять на позициях от 0 до 5. И проход в цикле от 5 до 9 будет выдавать холостые выстрелы, оставшиеся ордера не будут закрыты или удалены. Правильным будет удаление с конца списка, тогда не будет эффекта обвала. На рисунке показан порядок удаления ордеров с конца списка, размер списка после каждого удаления/закрытия будет уменьшаться, при этом ни один ордер не будет пропущен." - Отрывок из статьи Закрытие и удаление ордеров https://www.mql5.com/ru/articles/mt4
Спасибо за помощь, но все равно интересно как привести к формату datetime обычное числовое значение.
datetime TimeCurrent( )
Возвращает последнее известное время сервера (время прихода последней котировки) в виде количества секунд, прошедших после 00:00 1 января 1970 года.
Это и есть числовое значение с ним можно манипулировать как с форматом int .Но чтобы понять ?что за data или time надо выполнить :
string TimeToStr( datetime value, int mode=TIME_DATE|TIME_MINUTES)
Преобразование значения, содержащего время в секундах, прошедшее с 01.01.1970, в строку формата "yyyy.mm.dd hh:mi".
Как из "double" значения получить время в формате datetime? И можно ли прозводить операции между 2 переменными в формате datetime? Просто TimeCurrent() возращает datetime, а остальные функции int значения.
Цель, получить отрезок начало и конец предыдущего дня по текущему времени, и на этом отрезки найти high и low.
просто присвойте переменной типа datetime или int значение переменной double, дробная часть будет отброшена ..
используйте iBarShift чтобы определить номер бара, который соответствует времени, по которому нужно получить ценовые данные
Доброго времени суток. Есть у меня один вопрос по оператору if. Представим, что в программе идет следующий оператор - if (A && B) { ... }, где A и B - некоторые условия. Понятно, что вся логическая формула истинна только тогда, когда истин каждый его компонент. Вопрос - MQL проверяет каждый оператор на истинность или все таки проверяет истинность каждой компоненты слева направо и если есть хоть одна ложная компонента, то прерывает работу и возвращает значение истинности - ложь?
https://docs.mql4.com/ru/basis/operations/bool
Вычисление условий полное.
Сократить то можно, но проблемы это не решает. Пробовал и OrdersTotal()-1, но это без разницы. Непонятно, почему при ii++ все работает, как надо, закрываются все ордера, например 2, 5, 6 и 10, а при ii-- только 10, а остальные остаются работать. Где тут собака зарыта?
Для начала глянь https://docs.mql4.com/ru/basis/operators/return
В любом случае у тебя должен закрываться один ордер за весь проход цикла. Открой десять селов без баев и глянь на результаты. Фигня скорее всего не в этих циклах, так что копай в другом месте.
https://docs.mql4.com/ru/basis/operations/bool
Вычисление условий полное.
Большое спасибо за ответ. Не увидел данный раздел в справочнике.
Добрый день! Помогите пожалуйста! Как из координат x,y получить время и цену?
Я с помощью dll модуля IdleLib получаю координаты x,y в декартовой системе координат. Надо получить координаты время цена что бы создать текстовый объект (OBJ_TEXT). Есть ли у кого то пример
как по клику мышки создавать в этом месте текстовый объект? Очень надо!