커뮤니티
이동평균의 평균
2017-04-06 01:27:34
207
글번호 108520
안녕하세요. 특정구간의 모든 ema에 대해서 평균을 구하려고 합니다.
아래와 같이 작성했는데, 평균이 구해지지 않네요.
무엇이 잘못됬을까요? ema대신 ma를 사용하면 평균이 잘 구해집니다..
value1 = 0;
For count = StartMaPeriod to StartMaPeriod+NumPeriod-1 {
value1 = value1 + ema(Close, count);
}
value1 = value1 / NumPeriod;
답변 2
예스스탁 예스스탁 답변
2017-04-07 09:55:34
안녕하세요
예스스탁입니다.
EMA = 금일 종가 * EP + 전일의 지수 이동평균 * (1-EP)
※ EP(평활계수) = 2/(기간 + 1)
지수이평은 계산방식이 과거로 부터 현재까지 순차적으로 계산하게 하셔야 합니다.
단순이평과 같이 현재시점에서 과거N개봉만이 요구되는 평균방식이 아닙니다.
아래와 같이 배열변수에 각 지수이평값을 나열해서 할당후 사용해야 합니다.
input : StartMaPeriod(5),NumPeriod(10);
var : count(0);
Array : emav[100](0),emavv[100](0);
emav[0] = ema(C,StartMaPeriod);
emav[1] = ema(C,StartMaPeriod+1);
emav[2] = ema(C,StartMaPeriod+2);
emav[3] = ema(C,StartMaPeriod+3);
emav[4] = ema(C,StartMaPeriod+4);
.
.
.
.
emav[n] = ema(C,StartMaPeriod+n);
#배열방의 값을 가져와 평균
value1 = 0;
For count = 0 to NumPeriod-1 {
value1 = value1 + emav[count];
}
value1 = value1 / NumPeriod;
즐거운 하루되세요
> 시지푸스 님이 쓴 글입니다.
> 제목 : 이동평균의 평균
> 안녕하세요. 특정구간의 모든 ema에 대해서 평균을 구하려고 합니다.
아래와 같이 작성했는데, 평균이 구해지지 않네요.
무엇이 잘못됬을까요? ema대신 ma를 사용하면 평균이 잘 구해집니다..
value1 = 0;
For count = StartMaPeriod to StartMaPeriod+NumPeriod-1 {
value1 = value1 + ema(Close, count);
}
value1 = value1 / NumPeriod;
시지푸스
2017-04-08 04:02:51
답변 감사합니다. 이평 계산식을 for-loop에서 빼내니 잘 계산되네요.
그런데, n이 변수이거나 매우 크다면, 이평대입식을 무수히 쓰는 것 외에 방법은 없나요?
왜 차이가 발생하는지 이해가 잘 안됩니다. 매뉴얼 어디를 봐야 이해할 수 있을까요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 이동평균의 평균
>
안녕하세요
예스스탁입니다.
EMA = 금일 종가 * EP + 전일의 지수 이동평균 * (1-EP)
※ EP(평활계수) = 2/(기간 + 1)
지수이평은 계산방식이 과거로 부터 현재까지 순차적으로 계산하게 하셔야 합니다.
단순이평과 같이 현재시점에서 과거N개봉만이 요구되는 평균방식이 아닙니다.
아래와 같이 배열변수에 각 지수이평값을 나열해서 할당후 사용해야 합니다.
input : StartMaPeriod(5),NumPeriod(10);
var : count(0);
Array : emav[100](0),emavv[100](0);
emav[0] = ema(C,StartMaPeriod);
emav[1] = ema(C,StartMaPeriod+1);
emav[2] = ema(C,StartMaPeriod+2);
emav[3] = ema(C,StartMaPeriod+3);
emav[4] = ema(C,StartMaPeriod+4);
.
.
.
.
emav[n] = ema(C,StartMaPeriod+n);
#배열방의 값을 가져와 평균
value1 = 0;
For count = 0 to NumPeriod-1 {
value1 = value1 + emav[count];
}
value1 = value1 / NumPeriod;
즐거운 하루되세요
> 시지푸스 님이 쓴 글입니다.
> 제목 : 이동평균의 평균
> 안녕하세요. 특정구간의 모든 ema에 대해서 평균을 구하려고 합니다.
아래와 같이 작성했는데, 평균이 구해지지 않네요.
무엇이 잘못됬을까요? ema대신 ma를 사용하면 평균이 잘 구해집니다..
value1 = 0;
For count = StartMaPeriod to StartMaPeriod+NumPeriod-1 {
value1 = value1 + ema(Close, count);
}
value1 = value1 / NumPeriod;