C#

표준편차 (볼린저밴드 구현을 위한)

by LionHeart posted Apr 29, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
public class CHisto
{
private double sum, sum2;
private int n;

public CHisto() // 클래스 생성자, 변수 초기화
{
n = 0;
sum=0.0;
sum2=0.0;
}

public Add(double x)
{
n++;
sum += x;
sum2 += x*x;
}

// 수집된 데이터의 평균을 리턴
public double mean()
{
return sum / (double)n;
}

// 모집단 데이터인 경우의 표준편차 리턴

public double stdevp()
{
return Math.Sqrt(((double)n * sum2 - sum * sum) / ((double)n * (double)n));
}

// 모집단에서 추출된 샘플 데이터인 경우의 표준편차 리턴
public double stdev()
{
return Math.Sqrt(((double)n * sum2 - sum * sum) / ((double)n * (double)(n-1)));
}
}
=====================================================
// 위 클래스의 사용방법
public void main()
{
CHisto histo = new CHisto();

double[] x = new double[] { 1, 2, 3, 4, 5 };

for (int i=0;i<5;i++)
histo.Add(x[i]);

Console.WriteLine("stdevp = {0}", histo.stdevp());
Console.WriteLine("stdev = {0}", histo.stdev());
}