индикатор MACD

 

Привет всем, хочу получить два последних значения индикатора MACD

int handle_macd;
double macd[];
int OnInit()
  {
//---
   handle_macd = iMACD(NULL, PERIOD_H1, 12, 26, 9, PRICE_CLOSE);
//---
   return(0);
  }
void OnTick()
  {
//---
   CopyBuffer(handle_macd, 0, 0, 4, macd);
   ArraySetAsSeries(macd,true);

   ArrayPrint(macd);
}

В каждом тике 2 значения - главное и дополнительное - потому 4. В результате, получаю 4 числа каждый тик(но меняется только первое), но о чем они - хз. Как будет правильно?

 
cheater.wot:

Привет всем, хочу получить два последних значения индикатора MACD

В каждом тике 2 значения - главное и дополнительное - потому 4. В результате, получаю 4 числа каждый тик(но меняется только первое), но о чем они - хз. Как будет правильно?

Так какой буфер всё-таки нужен? У iMACD два индикаторных буфера. Читайте справку: iMACD и пользуйте предопределённые переменные  MAIN_LINE и SIGNAL_LINE.

Причина обращения: