C#
2015.04.29 10:24
표준편차 (볼린저밴드 구현을 위한)
조회 수 260481 추천 수 0 댓글 0
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;
}
// 모집단 데이터인 경우의 표준편차 리턴
{
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());
}