大規模なデータセットから取得したデータを使用して、スライディングウィンドウで指数関数的に重み付けされた移動平均を実装しようとしています。
コードは機能しますが、結果は間違いなく本来あるべきものではなく、その理由を理解できないようです。これが私のコードです。私が間違っていることについて詳しく教えてください。
for(unsigned int i = window; i< close_price.size(); i++)
{
double tmp3;
double tmp4;
for(int j = 0; j < window; j++)
{
tmp3 += pow(lambda,j) * pow(close_price[i-j], 2);
tmp4 += pow(close_price[i-j], 2);
if(j == window-1)
{
double temp = (1-lambda) * (pow(close_price[window], 2) + tmp3);
ewma.push_back( sqrt(temp) );
sma.push_back( tmp4/window );
}
tmp3 = 0;
tmp4 = 0;
}
}