Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Устанавливай программы из библиотеки прямо в MetaTrader. Это просто!
Виталий
14
Виталий 2012.09.29 11:09 

есть стандартная MA в MT4

в ней есть функция для расчета SSMA:

void smma()
{
double sum=0;
int i,k,pos=Bars-ExtCountedBars+1;
//---- main calculation loop
pos=Bars-MA_Period;
if(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars;
while(pos>=0)
{
if(pos==Bars-MA_Period)
{
//---- initial accumulation
for(i=0,k=pos;i<MA_Period;i++,k++)
{
sum+=Close[k];
//---- zero initial bars
ExtMapBuffer[k]=0;
}
}
else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos];
ExtMapBuffer[pos]=sum/MA_Period;
pos--;
}

}


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

в смысле с такой строкой для отображения: SetIndexBuffer(0,ExtMapBuffer);

то рисует всё отлично.

Если же я пытаюсь в функции в последних строчках сделать так:

else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos];

ExtMapBuffer[pos]=sum/MA_Period;

SSMA[pos]=ExtMapBuffer[pos];

pos--;
}

и уже вывожу SetIndexBuffer(0,SSMA); - то ничего не отображается!!!

совершенно не пойму причину....?

Подскажите пожалуйста

Alexander
2441
Alexander 2012.09.29 16:12  
ПОкажите участок кода, где Вы назначаете линии индикатора
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий