Помогите!Выскакивает ошибка несоответствия присваемых форматов данных :zero divide.Все обыскал, найти не могу.Вот фрагмент кода который все запарывает.Помогите пож.

[Удален]  

#property indicator_buffers 2

double TrixBuf[];
double signalBuf[];
double first[];
double second[];
double third[];

extern int TRIX_Period=15;
extern int Signal_Period=9;

int start()
{

//----
for(int i=Bars-TRIX_Period-1;i>=0;i--)
{
first[i]=iMA(Symbol(),0,TRIX_Period,0,MODE_EMA,PRICE_CLOSE,i);
}
for(i=Bars-2*TRIX_Period-1;i>=0;i--)
{
second[i]=iMAOnArray(first,0,TRIX_Period,0,MODE_EMA,i);
}
for(i=Bars-3*TRIX_Period-1;i>=0;i--)
{
third[i]=iMAOnArray(second,0,TRIX_Period,0,MODE_EMA,i);
TrixBuf[i]=100*((third[i]-third[i+1])/third[i]);
}
for(i=Bars-3*TRIX_Period-Signal_Period-1;i>=0;i--)
signalBuf[i]=iMAOnArray(TrixBuf,0,Signal_Period,0,MODE_EMA,i);

if (TrixBuf[1]<0&&TrixBuf[2]>=0)
{
Alert("XXX");
return(0);
}

//----
return(0);
}

 

TrixBuf[i]=100*((third[i]-third[i+1])/third[i];



Если third[i] близок к 0 или равен 0, то выскочит сабжевая ошибка

 
//---
TrixBuf[i]=100*((third[i]-third[i+1])/third[i]);
//----

Здесь посмотрите:

'Помогите разобраться (индикаторы TRIX, TSI, CMI)'