Массивы (Array)

 

Один из сложнейших для изучения и применения инструментов.

Самое подробное описание что встретил тут:

https://book.mql4.com/ru/variables/arrays

но увы не полное...

*

Например там нет упоминания что строковые массивы не сортируются:

...: ArraySort function does not process string arrays
*

В общем пусть живёт эта тема, со временем дополню чего узнал или освоил... :)))

 

Можно сортировать, только собственными силами

int start()
  {
//----

   string str[]={"a","c","b"};
   
   ArrayBubbleSortUp_string(str);
   
   for(int i=0;i<3;i++)Alert(str[i]);
   
      
//----
   return(0);
  }
//+------------------------------------------------------------------+

void ArrayBubbleSortUp_string(string & aArray[]){
   for(int ti=ArraySize(aArray)-1;ti>0;ti--){
      for(int tj=0;tj<ti;tj++){
         if(aArray[tj]>aArray[tj+1]){
            string tmp=aArray[tj];
            aArray[tj]=aArray[tj+1];
            aArray[tj+1]=tmp;
         }
      }
   }
}
 
kombat писал (а) >>

Один из сложнейших для изучения и применения инструментов.

Уважаемые программисты!

Подскажите, плиз, новичку, как быть...

У функции iMA есть такие константы: MODE_SMA, _EMA, _SMMA, _LWMA...
А как можно прописать, чтобы значение МА в шорт-нейм было по Previous Indicator's Data в случае, когда МА прикреплен, допустим, к CCI?

Похоже надо как-то к какому-то массиву обращаться, да? Только вот никак не пойму, к какому и вообще, где у МА буферы... :'(


 

шорт-нейм это просто строковое имя индюкатора

Вам я так понял нужно смотреть текущее значение в Data windows ?

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

MODE_SMA.. это просто метод расчета буфера

а к чужому буферу можно обращаца через икастом

 

минуточку...

ща рисунками продемонстрирую...

 

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

итак, что же у меня получается? я присоединяю экспоненциальную МА из стандартного набора МТ4 к своему индюку X_CCI и в доп.окне индикаторов вижу значения МА, но они разные для каждой константы MQL4, а именно:

для PRICE_CLOSE:

для PRICE_OPEN:

для PRICE_HIGH:

для PRICE_LOW:

для PRICE_MEDIAN:

для PRICE_TYPICAL:

для PRICE_WEIGHTED:

а мне надо, чтобы значение МА было по Previous Indicator's Data:

вопрос: как этого добиццо в коде?

пытаюсь сделать что-то наподобие

//+------------------------------------------------------------------+
//| параметры индикаторов                                            |
//+------------------------------------------------------------------+
double      M_A_1;             // полное значение MА
double      X_C_1;             // полное значение X_CCI
double      M_A;               // округлённое значение MА до целого
double      X_C;               // округлённое значение X_CCI до целого
 
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   X_C_1=iCustom(NULL, 0, "X_CCI_start",0,0);
   double M_A_1[100], CCI[100];
   int    i,limit=ArraySize(X_C_1);
     
     for(i=0; i<limit; i++)
         {      
            CCI[i]=iCustom(NULL, 0, "X_CCI_start",0,PRICE_CLOSE,i);
            M_A_1[i]=iMAOnArray(CCI,0,12,0,MODE_SMA,i);
         }
 
// приведение значений МА и X_CCI к целому числу 
   M_A=NormalizeDouble(M_A_1, 0);
   X_C=NormalizeDouble(X_C_1, 0);
   Scalp=(ProfitPlay-10);
   Comment("M_A_1: ", M_A_1, "  M_A: ", M_A, "  X_C_1: ", X_C_1, "  X_C: ", X_C);
//----
   return(0);
  }
//+------------------------------------------------------------------+

но я ещё слишком зелёный, чтобы понять все свои ошибки...

может подскажит хто, а?

 

нужно в разных циклах построить по очереди графики

и не правильно икастом

CCI[i]=iCustom(NULL, 0, "X_CCI_start",0,PRICE_CLOSE,i);

местами попутаны два параметра 0,PRICE_CLOSE

а если есть исходники индюка то внутри него и добавьте МА 

 

неа... не получаеццо...

я так понимаю, рано мне ещё в эти игрища ввязываццо...

просто у меня есть 2 варианта этого индюка: start - исходный,

Файлы:
 

второй со встроенной скользящей...

скажите, плиз, как мне прописать код, а?

ну тупой я, каюсь, просто очень хоцца научиццо...

Файлы:
x_cci.mq4  5 kb
 

да я тоже начинающий )

в чужом коде глаза разбегаюца..

возникает вопрос нужно ли вам это ваще? CCI т е индекс товарного канала насколько я знаю является высокочастотной составляющей а вы ее хотите отутюжить

и нада еще учитывать что наслоения скользящих средних добавляет запаздывания сигнала

 

может и не нужно... только я, как истинный ламер, при выборе индикаторов для торговли исхожу не из смысловой нагрузки инструмента, а из фактических картинок, отображаемых в терминале... а картинки по МА и CCI получаются весьма и весьма...

так что буду дальше карпеть на кодом... жалко только, что куда не обращусь - везде отсылают к учебникам или просто не хотят в кодах копаццо...

но есть надежда, что в мире ещё остались добрые и бескорыстные волшебники, к коим в какой-то степени я и себя отношу...

в любом случае, спасибо!!! ;)