커뮤니티

문의드립니다.

프로필 이미지
토루크막토
2019-06-25 13:59:57
309
글번호 129712
답변완료
전에 답변 받은 내용입니다. 아직 많이 부족해서 답변 주신 수식을 이해 못해서 문의드립니다. <<< ?????? 이부분을 (2군데) 주석으로 자세히 설명부탁드립니다. --------------------------------------------------------------- input : P(4); var : cnt(0),Hv(0),Lv(0),avgv(0); Array : WeekH[10](0),WeekL[10](0),WeekC[10](0); if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then << 영업일이 다음주로 바뀌면 { WeekH[0] = H; WeekL[0] = L; for cnt = 1 to 9 { WeeKH[cnt] = WeekH[cnt-1][1]; << ??????? WeeKL[cnt] = WeekL[cnt-1][1]; WeeKC[cnt] = WeekC[cnt-1][1]; } } if WeekH[0] > 0 and H > WeekH[0] Then WeekH[0] = H; // ???????? >>> WeekH[0] > 0 의 조건은 필수 조건인가요? 음수가 나올 수 없을텐데요. 아니면 시가( O )를 말하는건가요? if WeekL[0] > 0 and L < WeekL[0] Then WeekL[0] = L; WeekC[0] = c; if WeekH[P] > 0 and WeekL[P] > 0 then { Hv = WeeKH[1]; Lv = WeeKL[1]; for cnt = 1 to P { if WeekH[cnt] > Hv Then Hv = WeekH[cnt]; if WeekH[cnt] < Lv Then Lv = WeekL[cnt]; } avgv = (Hv+Lv+WeekC[1])/3; plot1(avgv,"전주기준 4주평균"); } ----------------------------------------------------------
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-06-25 15:01:31

안녕하세요 예스스탁입니다. 1. #배열변수 선언 Array : WeekH[10](0),WeekL[10](0),WeekC[10](0); if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then << 영업일이 다음주로 바뀌면 { WeekH[0] = H; WeekL[0] = L; for cnt = 1 to 9 { WeeKH[cnt] = WeekH[cnt-1][1]; << ??????? WeeKL[cnt] = WeekL[cnt-1][1]; WeeKC[cnt] = WeekC[cnt-1][1]; } } weekh,weekl,weekc는 배열변수입니다. 새로운 한주가 시작되면( DayOfWeek(bdate) < DayOfWeek(bdate[1]) ) 각 배열변수의 [0]에는 새로운 이번주에 값을 저장해야 하므로 초기값을 지정해 주고 [1]에는 전주, [2]에는 전전주, [3]에는 전전전주 순으로 값을 저장해 주게 됩니다. for문은 이렇게 새로운 주가 시작되면 전봉(전주마지막봉)기준으로 [0]에 저장된 값은 [1]로 [1]에 저장된 값은 [2]로 [2]에 저장된 값은 [3]로 [3]에 저장된 값은 [4]...로 옮겨 주는 내용입니다. for문의 cnt변수에 1이 저장되면 WeekH[1] = Week[0][1]; 이되어 weekH[1]에 week[0]의 전봉값(전주마지막봉의값)을 가져와 저장하고 for문의 cnt변수에 2가 저장되면 WeekH[2] = Week[1][1]; 이되어 weekH[2]에 week[1]의 전봉값(전주마지막봉의값)을 가져와 저장하고 for문의 cnt변수에 3이 저장되면 WeekH[3] = Week[2][1]; 이되어 weekH[3]에 week[2]의 전봉값(전주마지막봉의값)을 가져와 저장하고 ...... for문의 cnt변수에 9가 저장되면 WeekH[9] = Week[8][1]; 이되어 weekH[9]에 week[8]의 전봉값(전주마지막봉의값)을 가져와 저장되게 합니다. 이렇게 저장값을 옮겨서 항상 현재주에는 [0]이면 이번주, [1]이면 전주, [2]이면 전전주의 값을 리턴받을수 있게 만들게 됩니다. 2 if WeekH[0] > 0 and H > WeekH[0] Then WeekH[0] = H; if WeekL[0] > 0 and L < WeekL[0] Then WeekL[0] = L; 위와 같이 새로운 고가나 새로운저가가 발생시에 값을 갱신하는 수식에 각 변수가 0보다 크다라는 조건이 있는것은 새로운 한주가 시작해서 기초값이 저장된 다음부터 해당 수식으로 계산하라는 의미입니다. 각 배열변수의 기초값은 0입니다. 일주일간의 모든 데이타가 온전히 있어야 해당 주의 최고가와 최저가 계산이 가능하므로 차트상에서 처음으로 한주가 시작되는 if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then 위 조건이 만족하는 봉부터 계산을 시작하라는 의미입니다. 차트의 첫봉부터 처음으로 if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then 조건에 만족하기 전까지의 데이타는 해당 수식에서 계산에 포함하지 않게 됩니다. 즐거운 하루되세요 > 토루크막토 님이 쓴 글입니다. > 제목 : 문의드립니다. > 전에 답변 받은 내용입니다. 아직 많이 부족해서 답변 주신 수식을 이해 못해서 문의드립니다. <<< ?????? 이부분을 (2군데) 주석으로 자세히 설명부탁드립니다. --------------------------------------------------------------- input : P(4); var : cnt(0),Hv(0),Lv(0),avgv(0); Array : WeekH[10](0),WeekL[10](0),WeekC[10](0); if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then << 영업일이 다음주로 바뀌면 { WeekH[0] = H; WeekL[0] = L; for cnt = 1 to 9 { WeeKH[cnt] = WeekH[cnt-1][1]; << ??????? WeeKL[cnt] = WeekL[cnt-1][1]; WeeKC[cnt] = WeekC[cnt-1][1]; } } if WeekH[0] > 0 and H > WeekH[0] Then WeekH[0] = H; // ???????? >>> WeekH[0] > 0 의 조건은 필수 조건인가요? 음수가 나올 수 없을텐데요. 아니면 시가( O )를 말하는건가요? if WeekL[0] > 0 and L < WeekL[0] Then WeekL[0] = L; WeekC[0] = c; if WeekH[P] > 0 and WeekL[P] > 0 then { Hv = WeeKH[1]; Lv = WeeKL[1]; for cnt = 1 to P { if WeekH[cnt] > Hv Then Hv = WeekH[cnt]; if WeekH[cnt] < Lv Then Lv = WeekL[cnt]; } avgv = (Hv+Lv+WeekC[1])/3; plot1(avgv,"전주기준 4주평균"); } ----------------------------------------------------------