Пытаюсь постороить сигнальную DEMA в коде от вычесленных значений индикатора. Не могу понять как подбирается begin, вследствии чего очень часто получаются на выходе сигнальной либо пустые значения, либо нулевые.
intOnCalculate(constint rates_total,
constint prev_calculated,
constint begin,
constdouble &price[])
{
if (rates_total<InpBars) return(0);
int limit;
if(prev_calculated>0) limit=1;
else
limit=ShiftBars; // Кол-во баров для отображения индикатора
for(int i = limit-1; i >=0; i--)
{
//--- Предварительный расчет
.....
.....
.....
//---
OUY[i]=....;//Заполнение масива индикатора
}
//--- calculate EMA
ExponentialMAOnBuffer(rates_total,prev_calculated,1,InpPeriodEMA,OUT,Ema);
//--- calculate EMA on EMA array
ExponentialMAOnBuffer(rates_total,prev_calculated,InpPeriodEMA-1,InpPeriodEMA,Ema,EmaOfEma);
//--- calculate DEMAfor(int i=InpPeriodEMA;i<rates_total && !IsStopped();i++)
DemaBuffer[i]=2*Ema[i]-EmaOfEma[i]; // Сигнальная линияreturn(rates_total);
}
Пытаюсь постороить сигнальную DEMA в коде от вычесленных значений индикатора. Не могу понять как подбирается begin, вследствии чего очень часто получаются на выходе сигнальной либо пустые значения, либо нулевые.