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

 
Rosh:

Может я неправильно понимаю вопрос, но попытаюсь подбросить еще одну идею

indicator_applied_price

int

задает значение по умолчанию для поля "Apply to". Можно задавать одно из значений перечисления ENUM_APPLIED_PRICE. Если свойство не задано, то по умолчанию применяется значение PRICE_CLOSE

Идея хорошая но в сторону (как прыжки в ширину:)

Нужно именно передать значение параметра applied_price которое выбрал пользователь во внешнем индикаторе во внутренний.

Например есть МА которая строится на выбранных данных (это внутренний индикатор), и значение этого МА нужно отнять от прайса.

Соответственно если выбран PRICE_CLOSE то на основе этого прайса должна быть построена МА и этот же прайс должен быть использован в формуле расчёта индикатора.

1 инд
МА(app_price)
2 инд
МА(app_price)-price(app_price)
 

Из вышеописанного видно что app_price просто напрашивается объявить как input, но тогда пользователю придётся дважды указывать нужный параметр.

Один раз в Inputs другой раз в Parametrs. Что сами понимаете не есть гуд.

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

 
Я думаю, это не смертельно. Как часто такая проблема встает в повседневной жизни? Один раз можно и указать при запуске.
 

Я поддерживаю пользователя Urain. Как узнать, что содержится в массиве price[] ? Какая именно цена?

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
{

Если нельзя узнать, то смысл пользоваться массивом price[] тоже пропадает.

Эта проблема встаёт каждый раз при программировании мультивалютного индикатора. Например, мы хотим создать индикатор корреляции между валютами. Массив с ценами у нас уже есть. Это price[]. Загружаем цены второго инструмента. Но какого типа?

Придётся выносить в инпут параметр app_price и загружать два массива с ценами самостоятельно, минуя price[].

Не удобно!

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

Я поддерживаю пользователя Urain. Как узнать, что содержится в массиве price[] ? Какая именно цена?

а в чем логичность ? ведь не подгонкой занимаемся, а просто расчетом на массиве цен.

но если вам нужно точно делать расчет на конкретной цене - то используйте вызов OnCalculate в первой форме с явным выносом app_price наружу

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
sergeev:

а в чем логичность ? ведь не подгонкой занимаемся, а просто расчетом на массиве цен.

но если вам нужно точно делать расчет на конкретной цене - то используйте вызов OnCalculate в первой форме с явным выносом app_price наружу


Алекс название темы посмотри...

вызываешь ты индикатор от индикатора, который в свою очередь вызывает другой индикатор, все индикаторы построены на OnCalculate по схеме с "price",

как в нижние индикаторы при вызове передать какой app_price требуется.

Согласись не экономно таскать за каждым индюком весь набор прайсов если пользователь чётко определил один. Но если выбрать перегрузку OnCalculate с полным набором то так и будет.

Если же применить урезанную версию OnCalculate и и при этом вынести app_price в инпуты то получится неразбериха, тогда у пользователя будет возможность совершить ошибку указав в инпутах один app_price, а в параметрах другой.

 

Чего сильно не хватает, так это возможности вызова внешнего индикатора, использующего буфер текущего индикатора.

Например, в сделаем допущение, что в поставке нет стохастика.

Я посчитал линию %К поместил в буфер.

Далее мне нужно посчитать линию %D.

И вот здесь я бы вызвал бы внешнюю машку.

Мне ответят посчитай сам, используя буфер %К.

Но что делать:

1, если код сей машки мне не известен и я эту машку купил как откомпилированный индикатор

2. встроенные индикаторы считаются существенно быстрее: чем аналоги на MQL

Так же очень полезна была бы возможность вызова индикаторов и на входной буфер.

М.б, это всё уже есть? тогда дайте, пожалуйста ссылку на документацию.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
VladMsk:

Чего сильно не хватает, так это возможности вызова внешнего индикатора, использующего буфер текущего индикатора.

Например, в сделаем допущение, что в поставке нет стохастика.

Я посчитал линию %К поместил в буфер.

Далее мне нужно посчитать линию %D.

И вот здесь я бы вызвал бы внешнюю машку.


вам наверно надо, чтоб та внешняя машка отвечала такой возможности из документации?


 
sergeev:


вам наверно надо, чтоб та внешняя машка отвечала такой возможности из документации?


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

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

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

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

вопрос -

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

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