커뮤니티
ema 함수 호출에 문제가...
2005-09-26 23:07:48
1244
글번호 8391
아래와 같이 Loop 를 실행 시켜 보았습니다.
var : shortN(0),longN(0),dateN(0),shortMA(0),longMA(0);
if(index() == 100) then
{
ClearDebug();
for shortN = 0 to 9 1
for longN = 0 to 14 1
for dateN = 50 downto 1 1
{
// shortMA = ma(C[dateN], shortN + 4);
// longMA = ma(C[dateN], longN + 16);
shortMA = ema(C[dateN], shortN + 4);
longMA = ema(C[dateN], longN + 16);
}
MessageLog("shortN %f, longN %f",shortN,longN);
}
그런데 MA() 를 적용할 때는 잘 동작하는데
EMA() 를 사용했더니 바깥 Loop 가 한번 밖에 동작하지 않습니다.
확인을 부탁드립니다.
답변 2
예스스탁 예스스탁 답변
2005-09-27 16:11:32
안녕하세요
예스스탁입니다.
안녕하세요
예스스탁입니다.
for문 내에서 ma나 ema를 호출하게 되면 한봉에서 지정된 횟수만큼 종가가 누적되어
평균가격을 산출하므로 의도와는 다른 값이 나옵니다.
for문 밖에서 ma(c,p)를 변수 처리하는 방법으로 작성하시기 바랍니다.
즐거운 하루되세요
> 기태 님이 쓴 글입니다.
> 제목 : ema 함수 호출에 문제가...
> 아래와 같이 Loop 를 실행 시켜 보았습니다.
var : shortN(0),longN(0),dateN(0),shortMA(0),longMA(0);
if(index() == 100) then
{
ClearDebug();
for shortN = 0 to 9 1
for longN = 0 to 14 1
for dateN = 50 downto 1 1
{
// shortMA = ma(C[dateN], shortN + 4);
// longMA = ma(C[dateN], longN + 16);
shortMA = ema(C[dateN], shortN + 4);
longMA = ema(C[dateN], longN + 16);
}
MessageLog("shortN %f, longN %f",shortN,longN);
}
그런데 MA() 를 적용할 때는 잘 동작하는데
EMA() 를 사용했더니 바깥 Loop 가 한번 밖에 동작하지 않습니다.
확인을 부탁드립니다.
기태
2005-09-29 07:23:29
Loop 밖으로 꺼내고 싶지만
C[dateN] 과 같이 종가의 기준일을 Loop 안에서 변화시키며
동작시키기 때문에 꼭 Loop 안으로 넣고 싶습니다.
혹시나 해서 디버그를 사용해 확인한 결과
MA 함수의 값은 문제가 없는 것으로 판단되며 전체 Loop 를 잘 돌아가는데
EMA는 바깥루프 한번만 돌아갑니다.
왜 두함수가 차이가 나는 건가요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : ema 함수 호출에 문제가...
> 안녕하세요
예스스탁입니다.
안녕하세요
예스스탁입니다.
for문 내에서 ma나 ema를 호출하게 되면 한봉에서 지정된 횟수만큼 종가가 누적되어
평균가격을 산출하므로 의도와는 다른 값이 나옵니다.
for문 밖에서 ma(c,p)를 변수 처리하는 방법으로 작성하시기 바랍니다.
즐거운 하루되세요
> 기태 님이 쓴 글입니다.
> 제목 : ema 함수 호출에 문제가...
> 아래와 같이 Loop 를 실행 시켜 보았습니다.
var : shortN(0),longN(0),dateN(0),shortMA(0),longMA(0);
if(index() == 100) then
{
ClearDebug();
for shortN = 0 to 9 1
for longN = 0 to 14 1
for dateN = 50 downto 1 1
{
// shortMA = ma(C[dateN], shortN + 4);
// longMA = ma(C[dateN], longN + 16);
shortMA = ema(C[dateN], shortN + 4);
longMA = ema(C[dateN], longN + 16);
}
MessageLog("shortN %f, longN %f",shortN,longN);
}
그런데 MA() 를 적용할 때는 잘 동작하는데
EMA() 를 사용했더니 바깥 Loop 가 한번 밖에 동작하지 않습니다.
확인을 부탁드립니다.
이전글