커뮤니티

배열의 값을 지수이평할려면 어떻게 하나요?

프로필 이미지
미니후니아빠
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은 안되나요?