커뮤니티
배열의 값을 지수이평할려면 어떻게 하나요?
2018-04-25 09:32:09
211
글번호 118431
검색하다 보니까 지수이평 하는 식이 있긴 있는데
저는 배열에다가 값을 넣고 지수이평을 구해야 됩니다.
예를 들자면
for i=0 to 15
{
CC[i]=C[i]
}
이렇게 15일치 종가를 배열에 넣고
생각같아서는 ema(CC,5) 이런 식으로 지수이평 함수에 넣어봤는데 안되네요 ㅎㅎㅎ
종가만 할 거면 배열까지 만들어서 할 필욘 없는데 가공한 지표를 배열에 넣고
지수이평할려고 합니다. 배열을 써서 새로운 봉이 생길때마다 새로 계산을 해야 되더라고요.
안그러면 과거의 값에 오염이 되어서 별 쓸모가 없습니다.
대략 이렇게 만들어봤는데 안되네요.
Input : Period(5);
array : CC[100](0),JISU[100](0);
Var : Ep(0), DINDEX(0), PreJISU(0),i(0),ii(0);
ii=14;
for i=0 to 14
{
cc[i]=c[i]; //종가를 CC 배열에 넣기
}
for i=0 to 14
{
ii=ii-i;
Ep = 2/(Period+1); //평활계수
if ii==14 Then
jisu[ii]=CC[ii]; //첫 값일 경우
else if ii<14 then
{
JISU[ii] = Cc[ii]* EP + jisu[ii+1] * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다.
}
}
plot1(jisu[0],"지수이동평균"); //지수이동평균을 출력한다.
for문에서 step -1은 안되나요?
답변 1
예스스탁 예스스탁 답변
2018-04-25 14:06:11
안녕하세요
예스스탁입니다.
Input : Period(5);
Var : Ep(0), jisu(0),i(0);
array : CC[100](0);
Ep = 2/(Period+1);
for i =0 to 14
{
cc[i] = c[i];
}
for i = 14 downto 0
{
if i == 14 Then
jisu = CC[i];
else
JISU = CC[i]* EP + jisu * (1-EP);
}
plot1(jisu,"지수이동평균");
즐거운 하루되세요
> 미니후니아빠 님이 쓴 글입니다.
> 제목 : 배열의 값을 지수이평할려면 어떻게 하나요?
> 검색하다 보니까 지수이평 하는 식이 있긴 있는데
저는 배열에다가 값을 넣고 지수이평을 구해야 됩니다.
예를 들자면
for i=0 to 15
{
CC[i]=C[i]
}
이렇게 15일치 종가를 배열에 넣고
생각같아서는 ema(CC,5) 이런 식으로 지수이평 함수에 넣어봤는데 안되네요 ㅎㅎㅎ
종가만 할 거면 배열까지 만들어서 할 필욘 없는데 가공한 지표를 배열에 넣고
지수이평할려고 합니다. 배열을 써서 새로운 봉이 생길때마다 새로 계산을 해야 되더라고요.
안그러면 과거의 값에 오염이 되어서 별 쓸모가 없습니다.
대략 이렇게 만들어봤는데 안되네요.
Input : Period(5);
array : CC[100](0),JISU[100](0);
Var : Ep(0), DINDEX(0), PreJISU(0),i(0),ii(0);
ii=14;
for i=0 to 14
{
cc[i]=c[i]; //종가를 CC 배열에 넣기
}
for i=0 to 14
{
ii=ii-i;
Ep = 2/(Period+1); //평활계수
if ii==14 Then
jisu[ii]=CC[ii]; //첫 값일 경우
else if ii<14 then
{
JISU[ii] = Cc[ii]* EP + jisu[ii+1] * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다.
}
}
plot1(jisu[0],"지수이동평균"); //지수이동평균을 출력한다.
for문에서 step -1은 안되나요?