커뮤니티

그물망 재질문

프로필 이미지
히말라야
2007-06-18 13:13:41
905
글번호 12786
답변완료
우선 좋은 답변 감사드립니다. 검증하는 과정에서 이동평균을 array를 선언해서 이동평균을 단순곱으로 구하면 실제값과 다르게 나오는점을 수정해보았고, 아래처럼 제 생각으로는 for구문으로 작업을 단순하게 해서 이동평균을 구하고 실제로 지표를 보면 원래작성해주신식과 다르게 값이 나옴니다. 그이유를 일일히 array를 선언해주어야하는지 , 아래처럼 구하면 값이 제대로 안되는 이유를 설명좀 부탁드리겠습니다. input : N(0),period1(20),개수(10),step(5); Var : tempi(0), tempmax(0), tempindex(0), tempi2(0),NTHindex(0),count(0); Var : tempmin(0), tempindex1(0),tempindex2(0),Tempii(0); Array : VALUE[10](0),VAL[10](0),NTHH[10](0),NTHL[10](0); /* VALUE[0] = ma(c,Period1); VALUE[1] = ma(c,Period1+(step*2)); VALUE[2] = ma(c,Period1+(step*3)); VALUE[3] = ma(c,Period1+(step*4)); VALUE[4] = ma(c,Period1+(step*5)); VALUE[5] = ma(c,Period1+(step*6)); VALUE[6] = ma(c,Period1+(step*7)); VALUE[7] = ma(c,Period1+(step*8)); VALUE[8] = ma(c,Period1+(step*9)); VALUE[9] = ma(c,Period1+(step*10)); VAL[0] = ma(c,Period1); VAL[1] = ma(c,Period1+(step*2)); VAL[2] = ma(c,Period1+(step*3)); VAL[3] = ma(c,Period1+(step*4)); VAL[4] = ma(c,Period1+(step*5)); VAL[5] = ma(c,Period1+(step*6)); VAL[6] = ma(c,Period1+(step*7)); VAL[7] = ma(c,Period1+(step*8)); VAL[8] = ma(c,Period1+(step*9)); VAL[9] = ma(c,Period1+(step*10)); */ // n개의 이동평균값을 구함 for count=0 to 개수-1 { value[count]=ma(c,period1+(step*count)); val[count]=ma(c,period1+(step*count)); } // 최고값 최저값을 구함 For tempi2 = 0 to 9 { tempmax = -99999999; tempmin = 999999999; For tempi = 0 to 9 { if VALUE[tempi] > tempmax then { tempmax = VALUE[tempi]; tempIndex1 = tempi; } if VAL[tempi] < tempMin then { tempMin = VAL[tempi]; tempIndex2 = tempii; } } NTHH[tempi2] = tempmax; VALUE[tempIndex1] = -99999999; NTHL[tempi2] = tempMin; VAL[tempIndex2] = 9999999999; } plot1(NTHH[N]); plot2(NTHL[N]);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2007-06-18 15:26:14

안녕하세요 예스스탁입니다. for문안에 기본적으로 ma(c,5)와 같은 함수를 사용하면 같은 값의 C가 횟수만큼 들어와 의도와는 다른 값이 나타납니다. 이를 피하기 위해 보통 함수를 변수로 처리후 그 변수를 가져와 for문안에서 사용하게 작성됩니다. 참고하시기 바랍니다. 즐거운 하루되세요 > 히말라야 님이 쓴 글입니다. > 제목 : 그물망 재질문 > 우선 좋은 답변 감사드립니다. 검증하는 과정에서 이동평균을 array를 선언해서 이동평균을 단순곱으로 구하면 실제값과 다르게 나오는점을 수정해보았고, 아래처럼 제 생각으로는 for구문으로 작업을 단순하게 해서 이동평균을 구하고 실제로 지표를 보면 원래작성해주신식과 다르게 값이 나옴니다. 그이유를 일일히 array를 선언해주어야하는지 , 아래처럼 구하면 값이 제대로 안되는 이유를 설명좀 부탁드리겠습니다. input : N(0),period1(20),개수(10),step(5); Var : tempi(0), tempmax(0), tempindex(0), tempi2(0),NTHindex(0),count(0); Var : tempmin(0), tempindex1(0),tempindex2(0),Tempii(0); Array : VALUE[10](0),VAL[10](0),NTHH[10](0),NTHL[10](0); /* VALUE[0] = ma(c,Period1); VALUE[1] = ma(c,Period1+(step*2)); VALUE[2] = ma(c,Period1+(step*3)); VALUE[3] = ma(c,Period1+(step*4)); VALUE[4] = ma(c,Period1+(step*5)); VALUE[5] = ma(c,Period1+(step*6)); VALUE[6] = ma(c,Period1+(step*7)); VALUE[7] = ma(c,Period1+(step*8)); VALUE[8] = ma(c,Period1+(step*9)); VALUE[9] = ma(c,Period1+(step*10)); VAL[0] = ma(c,Period1); VAL[1] = ma(c,Period1+(step*2)); VAL[2] = ma(c,Period1+(step*3)); VAL[3] = ma(c,Period1+(step*4)); VAL[4] = ma(c,Period1+(step*5)); VAL[5] = ma(c,Period1+(step*6)); VAL[6] = ma(c,Period1+(step*7)); VAL[7] = ma(c,Period1+(step*8)); VAL[8] = ma(c,Period1+(step*9)); VAL[9] = ma(c,Period1+(step*10)); */ // n개의 이동평균값을 구함 for count=0 to 개수-1 { value[count]=ma(c,period1+(step*count)); val[count]=ma(c,period1+(step*count)); } // 최고값 최저값을 구함 For tempi2 = 0 to 9 { tempmax = -99999999; tempmin = 999999999; For tempi = 0 to 9 { if VALUE[tempi] > tempmax then { tempmax = VALUE[tempi]; tempIndex1 = tempi; } if VAL[tempi] < tempMin then { tempMin = VAL[tempi]; tempIndex2 = tempii; } } NTHH[tempi2] = tempmax; VALUE[tempIndex1] = -99999999; NTHL[tempi2] = tempMin; VAL[tempIndex2] = 9999999999; } plot1(NTHH[N]); plot2(NTHL[N]);