Массивы (Array) - страница 3

 

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

может я и ошибаюсь, код смотрел не внимательно

 

блин...

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

осталось только узнать как... :(

 

MAn=NormalizeDouble(MA, 0);
XCCIn=NormalizeDouble(XCCI, 0);
это выкавыривание чтоли?

номер ячейки массива указать видимо надо например MAn=NormalizeDouble(MA[0], 0);

 

опять я неправильно понят...

то, что Вы написали, это всего лишь приведение значений к целому числу для того, чтобы проще было определять разницу между значениями CCI и MA.

а выковыривание должно происходить как-то так:

//+------------------------------------------------------------------+
//| вычисление значения X_CCI                                        |
//+------------------------------------------------------------------+
   XCCI=iCustom(NULL, 0, "CCI_mql4_com",0,0);
//+------------------------------------------------------------------+
//| вычисление значения Moving Average                               |
//+------------------------------------------------------------------+
   double MA[100], CCI[100];
   int    i,limit=ArraySize(XCCI);
     for(i=0; i<limit; i++)
         {      
            CCI[i]=iCustom(NULL, 0, "CCI_mql4_com",PRICE_CLOSE,0,i);
            MA[i]=iMAOnArray(CCI,0,12,0,MODE_SMA,i);
         }

только вот CCI получается ухватить, а МА не получается... :(

 
Goalkeeper >>:

ОГРОМНОЕ СПАСИБО за индикатор, это действительно то, что я хотел.

Оч. рад.


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

Уже всю голову сломал в поисках буфера...

:'(

Так Вы еще и читаете невнимательно :) .

TheXpert >>:
Нужный буфер имеет индекс 1

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

//Вместо
//CCI[i]=iCustom(NULL, 0, "CCI_mql4_com",CCIPeriod, MAPeriod,0,i);
//надо
  CCI[i]=iCustom(NULL, 0, "CCI_mql4_com",CCIPeriod, MAPeriod,1,i);
 
Goalkeeper >>:

опять я неправильно понят...

то, что Вы написали, это всего лишь приведение значений к целому числу для того, чтобы проще было определять разницу между значениями CCI и MA.

а выковыривание должно происходить как-то так:

только вот CCI получается ухватить, а МА не получается... :(

да етит твоего папу )

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

иначе функция iMAOnArray делает расчет на пустых значениях

буфер CCI не успевает сформироваца и сглаживать нечего

 

ну всё... заклевали... :(((((

я ж говорю - НАЧИНАЮЩИЙ я...

чего сразу ногами пинать-то... :((((((((((((

ща буду всё проверять :)

 

не паникуй )

я тоже еще не КОНЧАЮЩИЙ ))

 

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

сделал всё, как написано, перепроверил насколько раз на разных ТФ и парах...

в итоге болт:

ну что я не так делаю, а?

//+------------------------------------------------------------------+
//| вычисление значения Moving Average                               |
//+------------------------------------------------------------------+
//Вместо
//CCI[i]=iCustom(NULL, 0, "CCI_mql4_com",CCIPeriod, MAPeriod,0,i);
//надо
//  CCI[i]=iCustom(NULL, 0, "CCI_mql4_com",CCIPeriod, MAPeriod,1,i);

   double MA[100], CCI[100];
   int    i,limit=ArraySize(XCCI);
     for(i=0; i<limit; i++)
         {      
            CCI[i]=iCustom(NULL, 0, "CCI_mql4_com",50,12,1,i);
            MA[i]=iMAOnArray(CCI,0,12,0,MODE_SMA,i);
         }
 

to Goalkepper

Возьми в пользовательских индикаторах MACD и делай как там.
а вообще ты
слишком широко замахнулся,, еще ведь не различаешь где те ошибки которые компилятор находит,
а где ошибки твои личные.