커뮤니티

for구문을 이용한 그물망의 표현

프로필 이미지
히말라야
2007-06-12 18:11:15
1513
글번호 12738
답변완료
날씨가 더운 하루네요. 지표식을 구하는 식이 궁금합니다. for 구문을 이용해서 그물망을 구한다음 실제로 지표식은 이동평균의 Min과 Max값만을 polt1 과 plot2에 그리고 싶습니다. 이를 지표식으로 표현 부탁드리겠습니다.
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2007-06-13 15:11:22

안녕하세요 예스스탁입니다. 문의하신 식은 다음과 같습니다. input : N(0),period1(5); Var : tempi(0), tempmax(0), tempindex(0), tempi2(0),NTHindex(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*2); VALUE[2] = ma(c,Period1*3); VALUE[3] = ma(c,Period1*4); VALUE[4] = ma(c,Period1*5); VALUE[5] = ma(c,Period1*6); VALUE[6] = ma(c,Period1*7); VALUE[7] = ma(c,Period1*8); VALUE[8] = ma(c,Period1*9); VALUE[9] = ma(c,Period1*10); VAL[0] = ma(c,Period1); VAL[1] = ma(c,Period1*2); VAL[2] = ma(c,Period1*3); VAL[3] = ma(c,Period1*4); VAL[4] = ma(c,Period1*5); VAL[5] = ma(c,Period1*6); VAL[6] = ma(c,Period1*7); VAL[7] = ma(c,Period1*8); VAL[8] = ma(c,Period1*9); VAL[9] = ma(c,Period1*10); 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]); 즐거운 하루되세요 > 히말라야 님이 쓴 글입니다. > 제목 : for구문을 이용한 그물망의 표현 > 날씨가 더운 하루네요. 지표식을 구하는 식이 궁금합니다. for 구문을 이용해서 그물망을 구한다음 실제로 지표식은 이동평균의 Min과 Max값만을 polt1 과 plot2에 그리고 싶습니다. 이를 지표식으로 표현 부탁드리겠습니다.
프로필 이미지

히말라야

2007-06-15 12:53:47

히말라야 님에 의해 삭제된 답변입니다.
프로필 이미지

히말라야

2007-06-15 16:06:27

우선 좋은 답변 감사드립니다. 검증하는 과정에서 이동평균을 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]);