Обсуждение статьи "Индикатор от индикатора в MQL5" - страница 3

 
paul.necsoiu:

Здравствуйте,

Это очень хорошая статья, но у меня есть несколько вопросов.

1. только индикаторы, которые используют короткую форму вызова функцииOnCalculate(), могут быть применены к другому индикатору или индикаторы, которые используют длинную форму вызова функцииOnCalculate() тоже могут быть применены? Если да, то как можно применить один индикатор с длинной формой вызова функцииOnCalculate() к другому индикатору?

2. При наложении одного индикатора на другой (TSI на RSI) возникают проблемы с отображением (см. приложенное изображение). В то время как RSI строится от 0 до 100, второй индикатор (TSI) также имеет значения ниже 0, значения, которые не видны на графике. В чем проблема и почему график не настраивается должным образом для корректного отображения обоих индикаторов. Можно ли решить эту проблему или это ошибка MetaTrader?

1. Да, только индикатор, использующий короткую форму OnCalculate, может быть применен к данным другого индикатора.

2. Вам необходимо зайти в свойства индикатора RSI и изменить "Фиксированный минимум" на вкладке Scale на -50 вместо 0.

 
Прилагаемые файлы исходного кода и вставки исходного кода в HTML-коде теперь полностью переведены на португальский язык для вашего удобства.
MQL5.community - User Memo
MQL5.community - User Memo
  • 2010.02.25
  • MetaQuotes Software Corp.
  • www.mql5.com
You have just registered and most likely you have questions such as, "How do I insert a picture to my a message?" "How do I format my MQL5 source code?" "Where are my personal messages kept?" You may have many other questions. In this article, we have prepared some hands-on tips that will help you get accustomed in MQL5.community and take full advantage of its available features.
 
Я новичок в программировании mql... мой вопрос в том, как мне сделать индикатор, который проверяет значение верхней полосы Боллинджера на определенном баре, находится ли в этот момент значение полосы Боллинджера между открытием и закрытием этого бара, после чего он строит стрелку вниз над текущим баром. если close[1]>upperbollingvalue[1]>open[1] ... Я пытался искать вокруг, но безуспешно.
 
Вот и я решил освоить способы построения индикатора от индикатора и столкнулся с некоторыми проблемами решение которых не нашёл даже в этой статье. Проблемы уже озвученные


Vladislav Eremeev:
Алексей,
Спасибо за потраченное время.
По документации нужно передавать Хэндл ДРУГОГО индикатора,
а я высказался за возможность обрабатывать буфер ТЕКУЩЕГО индикатора.
Далее.
Хэндл ДРУГОГО индикатора возможность передать есть, а вот где указать какой из буферов нужно использовать я не нашёл.


o_O:

я представляю себе кучу вариантов, что именно вам надо. нужны уточнения. много уточнений.

у вас есть индикатор, в буфере которого записаны Close цены баров

вы хотите из этого индикатора вызвать другой индикатор (Например МА) и скормить ему буфер Close

вопрос -

- вы на каком этапе расчета Close это планируете сделать?

- куда вы планируете полувчить результат того второго индикатора?

Много уточнений:

Чтобы было более понятно моё пояснение обратимся к написанию индикатора MACD при условии что его в поставке МТ5 нету... Но зато есть iMA с возможностью передать в качестве ценовой константы хендл индикатора. Но вот незадача, для этого нам потребуется написать индикатор разницы значений МА и отдельно к нему, получив хендл, делать сигнальную линию. А вот внутри, как в mql4 использовать iMAOnArray() возможности нет.

Ещё уточнения:

По какой либо формуле, получили значения индикаторного буфера 0. Затем надо вычислить среднюю этих значений. Иных вариантов как считать по собственной формуле нет? В инклюднике MovingAverages.mqh те-же самые формулы. Это не тот вариант который хотелось-бы выяснить.


Другие много уточнений:

Имеем пользовательский индикатор с двумя или тремя буферами. Задача посчитать среднюю буферов 1 и 2 по отдельности. Получив хендл такого индикатора, есть возможность посредством CopyBuffer() получить значения этих буферов, но нет возможности отправить их в iMA. Как быть?


Если Вас не затруднит... Вопрос не получить результат, а понять как пользоваться возможностью в некоторые технические индикаторы передавать хендл другого индикатора и что можно получить, а чего нельзя.

 

Alexey Viktorov:

Имеем пользовательский индикатор с двумя или тремя буферами. Задача посчитать среднюю буферов 1 и 2 по отдельности. Получив хендл такого индикатора, есть возможность посредством CopyBuffer() получить значения этих буферов, но нет возможности отправить их в iMA. Как быть?

Сделать обертку вокруг этого индикатора, которая копирует определенный буфер, под номером заданным дополнительным параметром в свойствах.

И вот именно его хендл и передавать.

 
Комбинатор:

Сделать обертку вокруг этого индикатора, которая копирует определенный буфер, под номером заданным дополнительным параметром в свойствах.

И вот именно его хендл и передавать.

А поподробней не затруднит?

Как я понял, на основании этого скопированного буфера сделать индикатор, и потом, получив его хендл, уже в следующем индикаторе можно попользовать полученные данные. Или не так?
 
Alexey Viktorov:
Как я понял, на основании этого скопированного буфера сделать индикатор, и потом, получив его хендл, уже в следующем индикаторе можно попользовать полученные данные.
Да, вроде того.
 
Комбинатор:
Да, вроде того.
По сравнению с iMAOnArray() из mql4 это танцы с бубном.



А вот такая бредовая идея: Если индикатор прицепить в качестве ресурса, можно-ли получить его хендл? Не получится-ли скрестить. Чтобы не таскать два индикатора, сам индикатор и индикатор от этого индикатора. Я не практиковал ресурсы, потому мне трудно проверить, вот и спрашиваю.
 
Alexey Viktorov:
По сравнению с iMAOnArray() из mql4 это танцы с бубном.



А вот такая бредовая идея: Если индикатор прицепить в качестве ресурса, можно-ли получить его хендл? Не получится-ли скрестить. Чтобы не таскать два индикатора, сам индикатор и индикатор от этого индикатора. Я не практиковал ресурсы, потому мне трудно проверить, вот и спрашиваю.

По-моему это реально танцы с бубном, в текущей реализации :)
 
А как добавить уже готовому индикатору функцию что бы он строился на значениях другого индикатора? К примеру ADX или MACD или ZigZag... Я не могу понять как это сделать