Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Запусти агентов на свободном компьютере. Это принесет доход!
Fridrikh Melnychuk
4161
Fridrikh Melnychuk 2013.02.06 12:23 
Всем привет ) Кто-то знает способ перерисовки индикатора? Чет я не нахожу такой. ChartRedrow() индикатор не перерисовывает. 
Технический анализ: Как мы анализируем?
Технический анализ: Как мы анализируем?
  • 2010.10.06
  • Victor
  • www.mql5.com
Данная статья в краткой форме отражает отношение автора к таким явлениям, как перерисовывающие индикаторы, индикаторы Multi-timeframe и представление котировок при помощи японских свечей. Техника программирования в статье не затрагивается, статья носит общий характер.
Fridrikh Melnychuk
4161
Fridrikh Melnychuk 2013.02.06 12:27  
Fredik:
Всем привет ) Кто-то знает способ перерисовки индикатора? Чет я не нахожу такой. ChartRedrow() индикатор не перерисовывает. 
Не обращайте внимания на ссылку в посте, она проставилась автоматически и к вопросу отношения не имеет.
Olegs Kucerenko
12044
Olegs Kucerenko 2013.02.06 13:00  
Пересчитать все вернув return(0);
Fridrikh Melnychuk
4161
Fridrikh Melnychuk 2013.02.06 13:20  
Karlson:
Пересчитать все вернув return(0);
Не совсем понятно как это помогает, уточните пожалуйста.
Fridrikh Melnychuk
4161
Fridrikh Melnychuk 2013.02.06 13:30  
в onCalculate производится расчет, onCalculate вызывается при новом тике или инициализации. Получается мне нужно вызвать это событие любое другое время.
gal
249
gal 2014.11.15 23:09  

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

Andrey Khatimlianskii
56183
Andrey Khatimlianskii 2014.11.16 00:58  
gal:

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

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

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

gal
249
gal 2014.11.16 08:18  
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
17924
Stanislav Korotky 2014.11.16 20:51  
gal:

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

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