Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 690

 
Forexman77:

Возникла идея использовать в индикаторе «ENUM_APPLIED_PRICE», то есть использовать различные цены данного перечисления.

Никак не могу найти примеры, как к примеру взять оттуда PRICE_HIGH[i] и подсунуть индикатору в процессе оптимизации, вместо Close[i].

Ну, или хотя бы High[i] вместо Close[i]

несколько индикаторов и необходимые математические действия над ними возможно решат эту проблему
 
_new-rena:
несколько индикаторов и необходимые математические действия над ними возможно решат эту проблему
В стандартном МА есть переключение с клоза на максимум, минимум и пр, только файла с кодом никак не найду в папке.
 
Forexman77:
В стандартном МА есть переключение с клоза на максимум, минимум и пр, только файла с кодом никак не найду в папке.
iMA
 
_new-rena:

Но, там нет параметров где можно воздействовать на параметр, что в рисунке.

Метод сглаживания передается без проблем

extern ENUM_MA_METHOD MA_Method=MODE_SMMA;

А вот если

extern ENUM_APPLIED_PRICE price= PRICE_CLOSE;
for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=price[i];

требует массив «'[' - array required»

 
Forexman77:

Но, там нет параметров где можно воздействовать на параметр, что в рисунке.

Метод сглаживания передается без проблем

А вот если

требует массив «'[' - array required»


Ничего не требует, всё оптимизируется - и метод, и цена. А зачем вам цикл с массивом? Передавайте из советника индикатору перечисления и всё будет как надо.


 
evillive:

Ничего не требует, всё оптимизируется - и метод, и цена. А зачем вам цикл с массивом? Передавайте из советника индикатору перечисления и всё будет как надо.

Елки-палки малость запутался. Мне не нужна МА. Нужно получать в в цикле расчета индикатора цену для вычисления индикатора. Вот кримеру Close[i] - Close[i+5],

а вот как передать в индикатор чтобы вместо Close[i] было к примеру Low[i] , средневзвешенные цены и медианны не так важны их можно посчитать. 

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

 
Forexman77:

Елки-палки малость запутался. Мне не нужна МА. Нужно получать в в цикле расчета индикатора цену для вычисления индикатора. Вот кримеру Close[i] - Close[i+5],

а вот как передать в индикатор чтобы вместо Close[i] было к примеру Low[i] , средневзвешенные цены и медианны не так важны их можно посчитать. 

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


Тогда придётся создавать массив и осваивать CopyClose, CopyOpen, CopyHigh, CopyLow - в массив копировать соответствующую цену.

или осваивать работу с классами и прочими новинками нового языка, инклюдник Indicator.mqh как пример сгодится

 
evillive:

Тогда придётся создавать массив и осваивать CopyClose, CopyOpen, CopyHigh, CopyLow - в массив копировать соответствующую цену.

или осваивать работу с классами и прочими новинками нового языка, инклюдник Indicator.mqh как пример сгодится

Понятно, буду думать, в MQL5 примеры есть. А пока вручную менять. 
 
Forexman77:
Понятно, буду думать, в MQL5 примеры есть. А пока вручную менять. 

Если кому нужно придумал, как без сложных конструкций делать отрисовку идикатора по типу цены:

extern int price=1;//1=Close, 2=High, 3=Low, 4=PRICE_MEDIAN_, 5=PRICE_TYPICAL_, 6=PRICE_WEIGHTED_

for(i=limit1;i>=0;i--) 
   {
   if (price == 1)ExtMapBuffer1[i]=Close[i];//Close
   if (price == 2)ExtMapBuffer1[i]=High[i];//High
   if (price == 3)ExtMapBuffer1[i]=Low[i];//Low
   if (price == 4)ExtMapBuffer1[i]=((High[i]+Low[i])/2);//PRICE_MEDIAN_
   if (price == 5)ExtMapBuffer1[i]=((High[i]+Low[i]+Close[i])/3);//PRICE_TYPICAL_
   if (price ==6){ExtMapBuffer1[i]=((High[i]+Low[i]+Close[i]+Close[i])/4);//PRICE_WEIGHTED_
   }
 
Forexman77:

Если кому нужно придумал, как без сложных конструкций делать отрисовку идикатора по типу цены:

 


Маленько ошиблись: 0=Close, 1=Open, остальное правильно.