Хочу индикатор АТР перенести на график цен. Но никак не соображу как именно. Так что бы показывал максимальное движение в волатильности от средней линии того же периода. Если есть у кого код, спасибо Вам, если поделитесь .
А разве вопрос был в том, чтобы выбрать на каких тайм фреймах отображать объект, а на каких нет?
Допустим на графике есть торговая панель. Затем я вручную строю объекты (торговые уровни, вертикальные линии, прямоугольники).
И все, что я строю вручную, накладывается на торговую панель. Все объекты находятся на одном тайм фрейме.
И как в этом случае поможет "рекомендуемый разработчиками метод" ?
Я принял к сведению Ваше предложение, но у меня при удалении и повторной отрисовке объекта происходило его мерцание.
Метод, предложенный Artyom Trishkin, на самом деле работает!
Теперь перерисовки и мерцания объекта нет и он визуально сохраняется выше всех.
Кстати, в моём случае это тоже торговая панель, которую загораживали стрелки от открытых и закрытых торговых операций.
Как я решил проблему:
// Глобальное объявлениеint last_tick_objects = 0; // количество объектов на прошлом тике// имена графических объектов:string tp_rctngl = "TP Rectangle";
string sl_rctngl = "SL Rectangle";
string vol_rctngl = "Volume Rectangle";
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
long cid = ChartID();
if(ObjectsTotal() != last_tick_objects) // количество объектов поменялось
{
last_tick_objects = ObjectsTotal(); // запоминаем новое количество объектов// выводим на передний план объекты: tp_rctngl, sl_rctngl, vol_rctnglif(ObjectFind(cid, tp_rctngl) > -1) // объект существует
{
ObjectSetInteger(cid, tp_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймахObjectSetInteger(cid, tp_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS); // делаем видимым на всех таймах
}
//---if(ObjectFind(cid, sl_rctngl) > -1) // объект существует
{
ObjectSetInteger(cid, sl_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймахObjectSetInteger(cid, sl_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS); // делаем видимым на всех таймах
}
//---if(ObjectFind(cid, vol_rctngl) > -1) // объект существует
{
ObjectSetInteger(cid, vol_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймахObjectSetInteger(cid, vol_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);// делаем видимым на всех таймах
}
ChartRedraw(cid);// перерисовка графика для применения изменений
}
}
//+------------------------------------------------------------------+
Пишу советник, которому время от времени нужно проводить несколько длительных циклов разных перерасчётов (например раз в 12, 24, 48 часов). Каждый такой перерасчёт длится 1,5-2 часа на одном ядре (то есть в одном потоке) - и само собой приостанавливают обработку новых тиков и торговлю данным советником
... такие расчёты можно делегировать другому советнику в другом потоке и наладить передачу итоговых данных между советниками с помощью функции EventChartCustom и обработчиком событий OnChartEvent
Но мне нужно иметь возможность опубликовать советник в маркете - поэтому делегирование перерасчётов и перерасчёты в одном потоке не подходят. Есть ли аналог библиотеки thread из C++ или какой-то другой вариант для реализации такого специфического советника в MQL5? (я вводил в поисковик на сайте слово "thread" с фильтром "Документация", и ничего нет)
Я принял к сведению Ваше предложение, но у меня при удалении и повторной отрисовке объекта происходило его мерцание.
Метод, предложенный Artyom Trishkin, на самом деле работает!
Теперь перерисовки и мерцания объекта нет и он визуально сохраняется выше всех.
Кстати, в моём случае это тоже торговая панель, которую загораживали стрелки от открытых и закрытых торговых операций.
Как я решил проблему:
дело в том, что мерцание происходит из-за того, что удаление и отрисовка происходит очень часто, нужно только отлавливать появление новых объектов. Если метод работает, то я конечно возьму его тоже на вооружение, но так как в документации про такое полезное свойство не сказано, то я никогда внимания не обращал на него.
Хотя вопрос остается, если использовать собственную торговую панель в сочетании со сторонним индикатором, который тоже строит объекты.
дело в том, что мерцание происходит из-за того, что удаление и отрисовка происходит очень часто, нужно только отлавливать появление новых объектов. Если метод работает, то я конечно возьму его тоже на вооружение, но так как в документации про такое полезное свойство не сказано, то я никогда внимания не обращал на него.
Хотя вопрос остается, если использовать собственную торговую панель в сочетании со сторонним индикатором, который тоже строит объекты.
Метод, как единственный самый приемлемый, рекомендовал Слава. Можете поискать в его сообщениях - это в профиле - публикации/все сообщения.
И, да, а чем же ваш метод пересоздания всех объектов поможет в той же ситуации?
Метод, как единственный самый приемлемый, рекомендовал Слава. Можете поискать в его сообщениях - это в профиле - публикации/все сообщения.
И, да, а чем же ваш метод пересоздания всех объектов поможет в той же ситуации?
я бы сделал следующим образом, со сторонним индикатором нужно отслеживать ObjectsTotal(), и если наибольший индекс объекта моей панели меньше ObjectsTotal()-1, то пересоздаем панель. Нужно сначала поробовать ваш метод во всевозможных ситуациях, но пока что я не вижу большей свободы при использовании Видимости объектов.
Я выше показал чем нужно делать. Зачем столько городить, если есть рекомендуемый разработчиками метод?
А разве вопрос был в том, чтобы выбрать на каких тайм фреймах отображать объект, а на каких нет?
Допустим на графике есть торговая панель. Затем я вручную строю объекты (торговые уровни, вертикальные линии, прямоугольники).
И все, что я строю вручную, накладывается на торговую панель. Все объекты находятся на одном тайм фрейме.
И как в этом случае поможет "рекомендуемый разработчиками метод" ?
Здравствуйте.
Хочу индикатор АТР перенести на график цен. Но никак не соображу как именно. Так что бы показывал максимальное движение в волатильности от средней линии того же периода. Если есть у кого код, спасибо Вам, если поделитесь .
https://www.mql5.com/ru/code/23304
Свойство OBJPROP_TIMEFRAMES:
OBJ_NO_PERIODS - невидимый на всех периодах,
OBJ_ALL_PERIODS - видимый на всех периодах
Спасибо.
Метод действительно оказался рабочим и очень компактным.
Теперь объект остаётся визуально выше всех остальных.
А разве вопрос был в том, чтобы выбрать на каких тайм фреймах отображать объект, а на каких нет?
Допустим на графике есть торговая панель. Затем я вручную строю объекты (торговые уровни, вертикальные линии, прямоугольники).
И все, что я строю вручную, накладывается на торговую панель. Все объекты находятся на одном тайм фрейме.
И как в этом случае поможет "рекомендуемый разработчиками метод" ?
Я принял к сведению Ваше предложение, но у меня при удалении и повторной отрисовке объекта происходило его мерцание.
Метод, предложенный Artyom Trishkin, на самом деле работает!
Теперь перерисовки и мерцания объекта нет и он визуально сохраняется выше всех.
Кстати, в моём случае это тоже торговая панель, которую загораживали стрелки от открытых и закрытых торговых операций.
Как я решил проблему:
Пишу советник, которому время от времени нужно проводить несколько длительных циклов разных перерасчётов (например раз в 12, 24, 48 часов). Каждый такой перерасчёт длится 1,5-2 часа на одном ядре (то есть в одном потоке) - и само собой приостанавливают обработку новых тиков и торговлю данным советником
... такие расчёты можно делегировать другому советнику в другом потоке и наладить передачу итоговых данных между советниками с помощью функции EventChartCustom и обработчиком событий OnChartEvent
Но мне нужно иметь возможность опубликовать советник в маркете - поэтому делегирование перерасчётов и перерасчёты в одном потоке не подходят. Есть ли аналог библиотеки thread из C++ или какой-то другой вариант для реализации такого специфического советника в MQL5? (я вводил в поисковик на сайте слово "thread" с фильтром "Документация", и ничего нет)
Я принял к сведению Ваше предложение, но у меня при удалении и повторной отрисовке объекта происходило его мерцание.
Метод, предложенный Artyom Trishkin, на самом деле работает!
Теперь перерисовки и мерцания объекта нет и он визуально сохраняется выше всех.
Кстати, в моём случае это тоже торговая панель, которую загораживали стрелки от открытых и закрытых торговых операций.
Как я решил проблему:
дело в том, что мерцание происходит из-за того, что удаление и отрисовка происходит очень часто, нужно только отлавливать появление новых объектов. Если метод работает, то я конечно возьму его тоже на вооружение, но так как в документации про такое полезное свойство не сказано, то я никогда внимания не обращал на него.
Хотя вопрос остается, если использовать собственную торговую панель в сочетании со сторонним индикатором, который тоже строит объекты.
А разве вопрос был в том, чтобы выбрать на каких тайм фреймах отображать объект, а на каких нет?
Допустим на графике есть торговая панель. Затем я вручную строю объекты (торговые уровни, вертикальные линии, прямоугольники).
И все, что я строю вручную, накладывается на торговую панель. Все объекты находятся на одном тайм фрейме.
И как в этом случае поможет "рекомендуемый разработчиками метод" ?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Oleg Remizov, 2020.04.26 14:44
Спасибо.
Метод действительно оказался рабочим и очень компактным.
Теперь объект остаётся визуально выше всех остальных.
дело в том, что мерцание происходит из-за того, что удаление и отрисовка происходит очень часто, нужно только отлавливать появление новых объектов. Если метод работает, то я конечно возьму его тоже на вооружение, но так как в документации про такое полезное свойство не сказано, то я никогда внимания не обращал на него.
Хотя вопрос остается, если использовать собственную торговую панель в сочетании со сторонним индикатором, который тоже строит объекты.
Метод, как единственный самый приемлемый, рекомендовал Слава. Можете поискать в его сообщениях - это в профиле - публикации/все сообщения.
И, да, а чем же ваш метод пересоздания всех объектов поможет в той же ситуации?
Метод, как единственный самый приемлемый, рекомендовал Слава. Можете поискать в его сообщениях - это в профиле - публикации/все сообщения.
И, да, а чем же ваш метод пересоздания всех объектов поможет в той же ситуации?