커뮤니티

수식 문의드립니다.

프로필 이미지
이뿌니
2008-04-06 14:41:51
987
글번호 15202
답변완료
안녕하세요. 수식 작성중 차트상에 마우스클릭시 보이는 지표값과 시스템에서 읽어들이는 값이 달라서 프린트 문을 이용하여 값을 시스템에서 어떻게 인식하는지 찍어보았습니다. 아래와 같이 테스트를 해 보았는데 종가ema값을 그냥 찍으면 차트화면에서 마우스를 클릭시 상단에 표시되는 지표값과 동일하게 값이 찍히는데 for문을 이용하여 종가ema값을 찍어보면 값이 조금 다르게 나옵니다. 프로그램에서는 배열을 사용하기 때문에 for문을 이용해야 하는데 값이 이상하게 들어와서 어려움을 겪고 있습니다. 확인 부탁드리겠습니다. ※아래 수식은 1분봉에서 테스트를 했습니다. var: spdate(20060623),sptime(135200); if date == spdate && time == sptime then { for idx = 0 to 8 Print("Debug.txt", "5ema 0 : %.2f,idx : %.2f",ema(c[idx],5),idx); Print("Debug0.txt", "5ema 0 : %.2f",ema(c[0],5)); Print("Debug1.txt", "5ema 1 : %.2f",ema(c[1],5)); Print("Debug2.txt", "5ema 2 : %.2f",ema(c[2],5)); Print("Debug3.txt", "5ema 3 : %.2f",ema(c[3],5)); Print("Debug4.txt", "5ema 4 : %.2f",ema(c[4],5)); Print("Debug5.txt", "5ema 5 : %.2f",ema(c[5],5)); Print("Debug6.txt", "5ema 6 : %.2f",ema(c[6],5)); Print("Debug7.txt", "5ema 7 : %.2f",ema(c[7],5)); Print("Debug8.txt", "5ema 8 : %.2f",ema(c[8],5)); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2008-04-07 10:35:03

안녕하세요 예스스탁입니다. 변동주기의 함수를 직접 for문에 넣게되면 참조영역이 줄었다 늘었다하면서 값이 의도와는 다르게 계산됩니다. 이런 함수들은 변수로 대체하여 for문에 사용하시기 바랍니다. var: idx(0); array : emav[10](0); emav[0] = ema(c[0],5); emav[1] = ema(c[1],5); emav[2] = ema(c[2],5); emav[3] = ema(c[3],5); emav[4] = ema(c[4],5); emav[5] = ema(c[5],5); emav[6] = ema(c[6],5); emav[7] = ema(c[7],5); emav[8] = ema(c[8],5); if sdate == 20080407 then { for idx = 0 to 8 Print("Debug.txt", "5ema 0 : %.2f,idx : %.2f",emav[idx],idx); Print("Debug0.txt", "5ema 0 : %.2f",ema(c[0],5)); Print("Debug1.txt", "5ema 1 : %.2f",ema(c[1],5)); Print("Debug2.txt", "5ema 2 : %.2f",ema(c[2],5)); Print("Debug3.txt", "5ema 3 : %.2f",ema(c[3],5)); Print("Debug4.txt", "5ema 4 : %.2f",ema(c[4],5)); Print("Debug5.txt", "5ema 5 : %.2f",ema(c[5],5)); Print("Debug6.txt", "5ema 6 : %.2f",ema(c[6],5)); Print("Debug7.txt", "5ema 7 : %.2f",ema(c[7],5)); Print("Debug8.txt", "5ema 8 : %.2f",ema(c[8],5)); } 즐거운 하루되세요 > 이뿌니 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > 안녕하세요. 수식 작성중 차트상에 마우스클릭시 보이는 지표값과 시스템에서 읽어들이는 값이 달라서 프린트 문을 이용하여 값을 시스템에서 어떻게 인식하는지 찍어보았습니다. 아래와 같이 테스트를 해 보았는데 종가ema값을 그냥 찍으면 차트화면에서 마우스를 클릭시 상단에 표시되는 지표값과 동일하게 값이 찍히는데 for문을 이용하여 종가ema값을 찍어보면 값이 조금 다르게 나옵니다. 프로그램에서는 배열을 사용하기 때문에 for문을 이용해야 하는데 값이 이상하게 들어와서 어려움을 겪고 있습니다. 확인 부탁드리겠습니다. ※아래 수식은 1분봉에서 테스트를 했습니다. var: spdate(20060623),sptime(135200); if date == spdate && time == sptime then { for idx = 0 to 8 Print("Debug.txt", "5ema 0 : %.2f,idx : %.2f",ema(c[idx],5),idx); Print("Debug0.txt", "5ema 0 : %.2f",ema(c[0],5)); Print("Debug1.txt", "5ema 1 : %.2f",ema(c[1],5)); Print("Debug2.txt", "5ema 2 : %.2f",ema(c[2],5)); Print("Debug3.txt", "5ema 3 : %.2f",ema(c[3],5)); Print("Debug4.txt", "5ema 4 : %.2f",ema(c[4],5)); Print("Debug5.txt", "5ema 5 : %.2f",ema(c[5],5)); Print("Debug6.txt", "5ema 6 : %.2f",ema(c[6],5)); Print("Debug7.txt", "5ema 7 : %.2f",ema(c[7],5)); Print("Debug8.txt", "5ema 8 : %.2f",ema(c[8],5)); }