Скачать MetaTrader 5

Перерисовка индикатора

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Fridrikh Melnychuk
4378
Fridrikh Melnychuk  
Всем привет ) Кто-то знает способ перерисовки индикатора? Чет я не нахожу такой. ChartRedrow() индикатор не перерисовывает. 
Технический анализ: Как мы анализируем?
Технический анализ: Как мы анализируем?
  • 2010.10.06
  • Victor
  • www.mql5.com
Данная статья в краткой форме отражает отношение автора к таким явлениям, как перерисовывающие индикаторы, индикаторы Multi-timeframe и представление котировок при помощи японских свечей. Техника программирования в статье не затрагивается, статья носит общий характер.
Fridrikh Melnychuk
4378
Fridrikh Melnychuk  
Fredik:
Всем привет ) Кто-то знает способ перерисовки индикатора? Чет я не нахожу такой. ChartRedrow() индикатор не перерисовывает. 
Не обращайте внимания на ссылку в посте, она проставилась автоматически и к вопросу отношения не имеет.
Olegs Kucerenko
12101
Olegs Kucerenko  
Пересчитать все вернув return(0);
Fridrikh Melnychuk
4378
Fridrikh Melnychuk  
Karlson:
Пересчитать все вернув return(0);
Не совсем понятно как это помогает, уточните пожалуйста.
Fridrikh Melnychuk
4378
Fridrikh Melnychuk  
в onCalculate производится расчет, onCalculate вызывается при новом тике или инициализации. Получается мне нужно вызвать это событие любое другое время.
gal
250
gal  

Подскажите пожалуйста как вызвать onCalculate принудительно, не дожидаясь прихода нового тика? Нужно пересчитать индикатор, который посчитан от другого индикатора. Или как получить доступ к массиву price[] который получает onCalculate в случае если в параметрах вместо цены выбрано: «Данные предыдущего индикатора» ?

Andrey Khatimlianskii
57085
Andrey Khatimlianskii  
gal:

Подскажите пожалуйста как вызвать onCalculate принудительно, не дожидаясь прихода нового тика? Нужно пересчитать индикатор, который посчитан от другого индикатора. Или как получить доступ к массиву price[] который получает onCalculate в случае если в параметрах вместо цены выбрано: «Данные предыдущего индикатора» ?

Копировать прайс в свой массив и вызывать ОнКалкулейт с ним.

Тут есть статья про мультивалютные индикаторы, там есть пример. 

gal
250
gal  
komposter:

Копировать прайс в свой массив и вызывать ОнКалкулейт с ним.

Если вы имеете ввиду эту статью https://www.mql5.com/ru/articles/83  то она к моему вопросу не имеет никакого отношения. Скопировать цены я могу без проблем с помощью команды Copy, но как скопировать «Данные предыдущего индикатора» ? Я такой команды не нашел. А данные предыдущего индикатора меняются не в результате прихода новой цены, а в результате изменения параметров индикатора после возникновения события с клавиатуры в обработчике OnChartEvent, например как здесь https://www.mql5.com/ru/articles/39  В таком случае текущий индикатор не знает, что исходные данные изменились, и необходимо принудительно вызвать перерисовку индикатора или получить доступ к массиву price[] напрямую по ссылке. Весь вопрос, каким образом?

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
Stanislav Korotky
19835
Stanislav Korotky  
gal:

Скопировать цены я могу без проблем с помощью команды Copy, но как скопировать «Данные предыдущего индикатора» ? Я такой команды не нашел.

Данные предыдущего индикатор доступны в OnCalculate в параметре price. Что мешает копировать его с помощью ArrayCopy
gal
250
gal  
marketeer:
Данные предыдущего индикатор доступны в OnCalculate в параметре price. Что мешает копировать его с помощью ArrayCopy
Для того, чтобы скопировать внутри OnCalculate нужно сначала вызвать OnCalculate, а это возможно только при поступлении нового тика. Мне необходимо получить этот массив не один раз за время жизни индикатора, а каждый раз при нажатии на клавишу и изменении всего массива предыдущего индикатора, т.к. изменился параметр. При этом текущий индикатор не знает, что предыдущий индикатор изменился и OnCalculate не вызывается, т.к. не было прихода нового тика.
Stanislav Korotky
19835
Stanislav Korotky  
gal:
Для того, чтобы скопировать внутри OnCalculate нужно сначала вызвать OnCalculate, а это возможно только при поступлении нового тика. Мне необходимо получить этот массив не один раз за время жизни индикатора, а каждый раз при нажатии на клавишу и изменении всего массива предыдущего индикатора, т.к. изменился параметр. При этом текущий индикатор не знает, что предыдущий индикатор изменился и OnCalculate не вызывается, т.к. не было прихода нового тика.
Я отвечал на конкретный ваш вопрос, который в своем посте процитировал. По поводу вопроса с рефрешем - ничего не писал - это уже другой вопрос. Могу лишь предположить, что МК не предполагает, что параметры индюка могут меняться извне в обход спроектированных ими точек входа: либо диалога параметров, либо передачи параметров программно. Поскольку вы делаете некую вещь по своему усмотрению, то, вероятно, имеет смысл изменить логику работы связки двух индикаторов: главным всегда должен быть тот, который набрасывается на чарт, и именно он должен обрабатывать все команды пользователя по изменению параметров, запрашивая в том числе пересчет подчиненного индикатора.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий