проблемма в сглаживании при написании пользовательского индикатора... ПОМОГИТЕ!!!

 

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

вот допустим такой код:

#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Blue

#property indicator_level1 50
#property indicator_level2 -50
#property indicator_levelcolor Silver
#property indicator_levelwidth 1
#property indicator_levelstyle 2

extern double
Period_R=100,
Period_S=5,
Period_SL=3;

double MainBuffer[];
double SignalBuffer[];
double HLM[1000];
double HMU[1000];
double LMD[1000];
double EMA_R[1000];
double EMA_S[1000];

int init()
{

//---- indicator lines
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Lime);
SetIndexBuffer(0, MainBuffer);
SetIndexStyle(1,DRAW_LINE,STYLE_DOT,1,Blue);
SetIndexBuffer(1, SignalBuffer);
//----
return(0);
}

int start()
{
int i, k, p=0,
counted_bars=IndicatorCounted();
double Min, DMin, DMax,
Max;
//----
ArraySetAsSeries( EMA_R, true);
ArraySetAsSeries( HLM, true);

i=Bars-counted_bars-1;
while(i>=0)
{
//---------Сложный моментум HLM------------------------

//-HMU---------------------------------
if ((High[i]-High[(i+1)])>0) HMU[i]=High[i]-High[(i+1)]; else HMU[i]=0;
//-LMD---------------------------------
if ((Low[i]-Low[(i+1)])<0) LMD[i]=-(Low[i]-Low[(i+1)]); else LMD[i]=0;
//-HLM------------------------------------
HLM[i]=HMU[i]-LMD[i];
i--;
}
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;

for(i=0; i<limit; i++) EMA_R[i]=iMAOnArray(HLM,Bars,Period_R,0,MODE_EMA,i);
for(i=0; i<limit; i++) MainBuffer[i]=iMAOnArray(EMA_R,Bars,Period_S,0,MODE_EMA,i)*100000;
for(i=0; i<limit; i++) SignalBuffer[i]=iMAOnArray(MainBuffer,Bars,Period_SL,0,MODE_EMA,i);

return;
}

мне надо сгладить данные массива HLM[i] и т.п

почему мне приходиться задавать размер массивам

double HLM[1000];
double HMU[1000];
double LMD[1000];
double EMA_R[1000];
double EMA_S[1000];

если этого не делать то значений в массиве MainBuffer и SignalBuffer нету.

и еще....

при использовании функции вызова пользовательского индикатора например: DTI=iCustom(NULL,0,"DTI",0,1); когда я обращаюсь вот к этому индикатору (код выше) значения DTI не верное.

 
после рюмки чая трудно понять в чем вопрос, т.е. .... раззмести в SRC и ткни знающих носом блин в свою проблему.
А иначе никак.
Знания мешают, ПанимаешЬ!
 
Что любопытно, принятие каждых последующих 100 гр. прогрессивно приближает уровень автора ответа к уровню автора вопроса.
 
granit77 писал(а) >>
Что любопытно, принятие каждых последующих 100 гр. прогрессивно приближает уровень автора ответа к уровню автора вопроса.

Дак какой тогда у тебя ответ то будет? уМНЫЙ ты нашь???

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