А какое сейчас время в США? во сколько по МСК они сейчас открыватся/закрываются.. какое время в Японии во сколько открытие/закрытие по МСк ? Просто с этой отменой зимнего времени немного не ясно.. и переводят ли Европа, Азия, Сша часы ?
Elenn: Решение действительно оригинальное, надо попробовать. Вот только при переобъявлении массива не потеряются ли данные из-за переинициализации?
При увеличении размера массива данные, внесённые ранее, не теряются. А "захваченные" (новые) ячейки будут содержать мусор оперативной памяти. Если же массив урезать, то данные, которые лежали в урезаемых ячейках будут безвозвратно потеряны. Это азы программирования.
Добрый вечер! Подскажите пожалуйста. Есть два значения индикатора на разных барах. Как провести линию через них и как с ней работать в индикаторе? Спасибо!
Линию провести меж ними можно, при помощи объекта OBJ_TREND. Первая координата - время и цена первого бара, вторая координата - время и цена второго бара.
cl - цвет объекта, nm - имя объекта, t1, p1 - координаты начала, t2, p2 - координаты конца, st - стиль линии, sz - размер.
Можете добавить ещё и ray: 1 - луч, 0 - отрезок. В последней строке данной функции задан отрезок. Вместо 0 можно поставить имя передаваемого параметра.
А вот насчёт того, как с ней (с этой линией) работать в индикаторе - тут нужно знать, чего вам от неё нужно. Но данные о ней (линии) можно брать, используя стандартную функцию
Линию провести меж ними можно, при помощи объекта OBJ_TREND. Первая координата - время и цена первого бара, вторая координата - время и цена второго бара.
Функция:
Надеюсь, тут всё ясно в ней.
cl - цвет объекта, nm - имя объекта, t1, p1 - координаты начала, t2, p2 - координаты конца, st - стиль линии, sz - размер.
Можете добавить ещё и ray: 1 - луч, 0 - отрезок. В последней строке данной функции задан отрезок. Вместо 0 можно поставить имя передаваемого параметра.
А вот насчёт того, как с ней (с этой линией) работать в индикаторе - тут нужно знать, чего вам от неё нужно. Но данные о ней (линии) можно брать, используя стандартную функцию
ObjectGet("имя объекта",нужное свойство объекта);
Большое спасибо! Еще вопрос, если можно. Как работать (нужно знать какое значение принимает трендовая на определенном баре), как работать стрендовой в советнике. iCustom тормозит хочу часть индикатора перенести в советник(расчеты).
Elenn: Решение действительно оригинальное, надо попробовать.
Пожалуй процитирую Вам маленький кусочек текста из учебника по Делфи. Это знать не помешает.
"Динамические массивы " являются динамическими структурами данных, поэтому по окончании работы с ними в программе должно быть предусмотрено явное удаление их из памяти компьютера. Процесс удаления ненужных динамических переменных из памяти компьютера иногда называют уборкой мусора."
Вариант, который подойдёт для языка MQL4 - это изменить размерность динамического массива до нулевой длины с помощью функции ArrayResize() https://docs.mql4.com/ru/array/ArrayResize по окончании работы с ним.
Пожалуй процитирую Вам маленький кусочек текста из учебника по Делфи. Это знать не помешает.
"Динамические массивы " являются динамическими структурами данных, поэтому по окончании работы с ними в программе должно быть предусмотрено явное удаление их из памяти компьютера. Процесс удаления ненужных динамических переменных из памяти компьютера иногда называют уборкой мусора."
Вариант, который подойдёт для языка MQL4 - это изменить размерность динамического массива до нулевой длины с помощью функции ArrayResize() https://docs.mql4.com/ru/array/ArrayResize по окончании работы с ним.
Это всё правильно: мусор за собой подчищать - правило хорошего тона...
Только в данном контексте как определить, что вот сейчас "мусор" подчистить нужно или наоборот: это не мусор - это нужные данные для дальнейших расчётов.
Как я понимаю, выполнять за собой уборку нужно в deinit(), но... он исполняется не только при удалении графика торгового инструмента, снятии с него советника, но и при смене рабочего ТФ. В данном случае все накопленные данные для ТФ будут утеряны и при возврате на прежний таймфрейм, советник начнёт работу заново с нулевым массивом. То же произойдёт и при изменении любого из параметров советника.
Получается, что в некоторых ситуациях "уборка мусора" - сложный логический процесс, а не простое изменение размера массива.
Большое спасибо! Еще вопрос, если можно. Как работать (нужно знать какое значение принимает трендовая на определенном баре), как работать стрендовой в советнике. iCustom тормозит хочу часть индикатора перенести в советник(расчеты).
ObjectGetValueByShift() вам в помощь
А уж как вы там с ней работать собираетесь - только вам и известно...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Решение действительно оригинальное, надо попробовать. Вот только при переобъявлении массива не потеряются ли данные из-за переинициализации?
При увеличении размера массива данные, внесённые ранее, не теряются. А "захваченные" (новые) ячейки будут содержать мусор оперативной памяти. Если же массив урезать, то данные, которые лежали в урезаемых ячейках будут безвозвратно потеряны. Это азы программирования.
через какое время отложенный ордер MODE_TRADE, становиться MODE_HISTORY?
Через никакое. Отложенные ордера в истории не сохраняются.
Как только он преобразуется в рыночный и будет закрыт - вот тогда он и станет в истории, но уже с типом не отложенного, а рыночного.
Например:
Если был OP_BUYSTOP, затем он преобразовался в OP_BUY. После его закрытия он попадёт в историю.
НО, после преобразования из OP_BUYSTOP в OP_BUY, первоначальный OP_BUYSTOP в истории не будет.
Добрый вечер! Подскажите пожалуйста. Есть два значения индикатора на разных барах. Как провести линию через них и как с ней работать в индикаторе? Спасибо!
Линию провести меж ними можно, при помощи объекта OBJ_TREND. Первая координата - время и цена первого бара, вторая координата - время и цена второго бара.
Функция:
Надеюсь, тут всё ясно в ней.
cl - цвет объекта, nm - имя объекта, t1, p1 - координаты начала, t2, p2 - координаты конца, st - стиль линии, sz - размер.
Можете добавить ещё и ray: 1 - луч, 0 - отрезок. В последней строке данной функции задан отрезок. Вместо 0 можно поставить имя передаваемого параметра.
А вот насчёт того, как с ней (с этой линией) работать в индикаторе - тут нужно знать, чего вам от неё нужно. Но данные о ней (линии) можно брать, используя стандартную функцию
ObjectGet("имя объекта",нужное свойство объекта);
Линию провести меж ними можно, при помощи объекта OBJ_TREND. Первая координата - время и цена первого бара, вторая координата - время и цена второго бара.
Функция:
Надеюсь, тут всё ясно в ней.
cl - цвет объекта, nm - имя объекта, t1, p1 - координаты начала, t2, p2 - координаты конца, st - стиль линии, sz - размер.
Можете добавить ещё и ray: 1 - луч, 0 - отрезок. В последней строке данной функции задан отрезок. Вместо 0 можно поставить имя передаваемого параметра.
А вот насчёт того, как с ней (с этой линией) работать в индикаторе - тут нужно знать, чего вам от неё нужно. Но данные о ней (линии) можно брать, используя стандартную функцию
ObjectGet("имя объекта",нужное свойство объекта);
Большое спасибо! Еще вопрос, если можно. Как работать (нужно знать какое значение принимает трендовая на определенном баре), как работать стрендовой в советнике. iCustom тормозит хочу часть индикатора перенести в советник(расчеты).
Решение действительно оригинальное, надо попробовать.
Пожалуй процитирую Вам маленький кусочек текста из учебника по Делфи. Это знать не помешает.
"Динамические массивы " являются динамическими структурами данных, поэтому по окончании работы с ними в программе должно быть предусмотрено явное удаление их из памяти компьютера. Процесс удаления ненужных динамических переменных из памяти компьютера иногда называют уборкой мусора."
Вариант, который подойдёт для языка MQL4 - это изменить размерность динамического массива до нулевой длины с помощью функции ArrayResize() https://docs.mql4.com/ru/array/ArrayResize по окончании работы с ним.
Пожалуй процитирую Вам маленький кусочек текста из учебника по Делфи. Это знать не помешает.
"Динамические массивы " являются динамическими структурами данных, поэтому по окончании работы с ними в программе должно быть предусмотрено явное удаление их из памяти компьютера. Процесс удаления ненужных динамических переменных из памяти компьютера иногда называют уборкой мусора."
Вариант, который подойдёт для языка MQL4 - это изменить размерность динамического массива до нулевой длины с помощью функции ArrayResize() https://docs.mql4.com/ru/array/ArrayResize по окончании работы с ним.
Это всё правильно: мусор за собой подчищать - правило хорошего тона...
Только в данном контексте как определить, что вот сейчас "мусор" подчистить нужно или наоборот: это не мусор - это нужные данные для дальнейших расчётов.
Как я понимаю, выполнять за собой уборку нужно в deinit(), но... он исполняется не только при удалении графика торгового инструмента, снятии с него советника, но и при смене рабочего ТФ. В данном случае все накопленные данные для ТФ будут утеряны и при возврате на прежний таймфрейм, советник начнёт работу заново с нулевым массивом. То же произойдёт и при изменении любого из параметров советника.
Получается, что в некоторых ситуациях "уборка мусора" - сложный логический процесс, а не простое изменение размера массива.
Большое спасибо! Еще вопрос, если можно. Как работать (нужно знать какое значение принимает трендовая на определенном баре), как работать стрендовой в советнике. iCustom тормозит хочу часть индикатора перенести в советник(расчеты).
ObjectGetValueByShift() вам в помощь
А уж как вы там с ней работать собираетесь - только вам и известно...