커뮤니티

지표A, 지표B, 지표C의 (수정)작성 부탁드립니다.

프로필 이미지
원칙투자자
2022-02-23 15:08:13
1258
글번호 156658
답변완료
담당자님, 안녕하세요. 작성해주신 지표 수식을 잘 활용하고 있습니다. 거듭 감사드립니다. 담당자님게서 작성해 주신 (변경전) 지표A, 지표B, 지표C에 아래의 제약조건을 추가(수정)한 변경후 지표의 작성을 부탁드립니다. 제일 하단에는 담당자님께서 작성해주신 (변경전) 지표A, 지표B, 지표C의 수식을 기재하였습니다. =========================================================== =========================================================== <지표 A> (3분봉 차트에서 사용하되 30분봉 기준의 시세를 연산하는 지표입니다) (변경전 요건) 1) 각 일자별 (고가-저가) 값이 최대인 30분봉 중 (D-1)일 부터 소급하여 과거 n일(n=10) 기간 중 (고가-저가) 값이 큰 상위 3개의 30분봉을 총 3개 선택하고 2) 위에서 선택된 상위 3개의 30분봉('고가, 저가'의 값)으로 각각의 '(고가+저가)/2'를 계산하여 그 값을 각각 3개의 수평선 라인으로 표시 (수정후 요건) [추가제약 조건 A] (당일 시가 + 5.0)~(당일 시가-5.0)의 범위 내에 30분봉의 고가, 저가가 모두 위치한 과거 n일(n=10) 기간의 30분봉 중에서 1) 각 일자별 (고가-저가)가 최대인 30분봉 중 (D-1)일 부터 소급하여 과거 n일(n=10) 기간 중 (고가-저가) 값이 큰 상위 3개의 30분봉을 총 3개 선택하고 2) 위에서 선택된 상위 3개의 30분봉('고가, 저가'의 값)으로 각각의 '(고가+저가)/2'를 계산하여 그 값을 각각 3개의 수평선 라인으로 표시하는 지표하는 지표로의 수정을 부탁드립니다. 즉, [ (당일 시가 + 5.0) < 각 일자별 30분봉 고가 < (당일 시가-5.0) and (당일 시가 + 5.0) < 각 일자별 30분봉 저가 < (당일 시가-5.0)]인 30분봉 중에서 1)의 30분봉을 선택하고 연산을 진행하는 것입니다. [추가제약 조건 A] 예시 (1) -> (1), (2), (4), (5)는 선택 대상(선택 pool)에서 제외 고 (2) 저 고 -----------------------------------------------------(당일 시가+5.0) 저 (3) 고 -> (3)에 해당하는 30분봉만 위 연산 과정 1)과 2)를 수행 저 고 --------------------------------------------------------(당일 시가-5.0) 저 고 (4) 저 (5) ============================================================ <지표 B> (3분봉 차트에서 사용하되 30분봉 기준의 시세를 연산하는 지표입니다) (변경전 요건) 1) <지표A>와 동일 2) 위에서 선택된 상위 3개의 30분봉에서 그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 각각 수평선 라인으로 표시 (수정후 요건) [추가제약 조건] (당일 시가 + 5.0)~(당일 시가-5.0)의 범위 내에 30분봉의 고가, 저가가 모두 위치한 과거 n일 기간의 30분봉 중에서 (-> A와 동일) 1) <지표A>와 동일 2) 위 1)에서 선택된 상위 3개의 30분봉에서 그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 각각 수평선 라인으로 표시하는 지표로의 수정을 부탁드립니다. =========================================================== <지표 C> (3분봉 차트에서 사용하되 30분봉 기준의 시세를 연산하는 지표입니다) (변경전 요건) 1) (고가-저가)를 ABS(시가-종가)로 적용하는 것 이외에는 <지표A>와 동일 2) (고가-저가)를 ABS(시가-종가)로, '(고가+저가)/2'를 '(시가+종가)/2'로 적용 이외에는 <지표A>와 동일 (수정후 요건) [추가제약 조건 C] (당일 시가 + 5.0)~(당일 시가-5.0)의 범위 내에 30분봉의 시가, 종가가 모두 위치한 과거 n일 기간의 30분봉 중에서 1) (고가-저가)를 ABS(시가-종가)로 적용하는 것 이외에는 <지표A>와 동일 2) (고가-저가)를 ABS(시가-종가)로, '(고가+저가)/2'를 '(시가+종가)/2'로 적용 하는 것 이외에는 <지표A>과 동일하고, 제약조건C가 추가된 지표로의 수정을 부탁드립니다. [추가제약 조건 C] 예시 (1) -> (1), (2), (4), (5)는 선택 대상(선택 pool)에서 제외 시 종 (2) 종 시 시 종 --------------------------------------------------------------------------(당일 시가+5.0) 종 시 (3) 시 종 -> (3)의 30분봉만 위 연산 과정 1)과 2)를 수행 종 시 시 종 -----------------------------------------------------------------------------(당일 시가-5.0) 종 시 시 종 (4) 종 시 (5) 위와 같이 지표A, B, C 수식의 수정을 부탁드립니다. 담당자님 노고와 답변에 미리 감사드립니다. 코로나 시국에 건강도 잘 챙기시기 바랍니다. =========================================================== =========================================================== =========================================================== 담당자님이 작성해주신 (변경전) <지표 A> input : 타주기분(30),n(10); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0); Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 =true; } if Condition1 == true Then M1[0] = (HH+LL)/2; if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if (tempR1[i2] >= tempmax ) then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); } } ============================================================= 담당자님이 작성해주신 (변경전) <지표 B> input : 타주기분(30),n(10); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0); Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; OO = O; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 = true; } if Condition1 == true Then M1[0] = (OO+CC)/2; if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if (tempR1[i2] >= tempmax ) then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); } } ============================================================= 담당자님이 작성해주신 (변경전) <지표 C> input : 타주기분(30),n(10); var : S1(0),D1(0),TM(0),TF(0),cnt(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0),tR1(0),tM1(0),di(0); Array : R1[50](0),M1[50](0); Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; di = 0; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { OO = O; CC = C; di = di+1; tR1 = R1[0][1]; tM1 = M1[0][1]; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } CC = C; if di == 1 then { R1[0] = abs(OO-CC); M1[0] = (OO+CC)/2; } if di > 1 then { if abs(OO-CC) >= R1[0] Then { R1[0] = abs(OO-CC); M1[0] = (OO+CC)/2; } Else { R1[0] = tR1; M1[0] = tM1; } } if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if (tempR1[i2] >= tempmax ) then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); } } =============================================================
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-24 10:14:38

안녕하세요 예스스탁입니다. 업무상 수식문의는 일정시간이상 요구되는 내용은 저희가 답변을 드리지 않습니다. 이전 여러번의 문의도 시간이 많이 걸리는 내용이지만 저희가 작성을 해드렸습니다. 해당 문의까지만 처리해 드립니다. 1 input : 타주기분(30),n(10),R(5); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0),H1[50](0),L1[50](0); Array : tempR1[50](0),tempM1[50](0),tempH1[50](0),tempL1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; OO = O; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 = true; } if Condition1 == true Then { M1[0] = (HH+LL)/2; H1[0] = HH; L1[0] = LL; } if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; tempH1[ii] = H1[ii]; tempL1[ii] = L1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if TempH1[i2] <= DayOpen+R and TempL1[i2] >= DayOpen-R and tempR1[i2] >= tempmax then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } if NTHVALUE[1] > 0 Then Plot1(NTHVALUE[1]); Else NoPlot(1); if NTHVALUE[2] > 0 Then Plot2(NTHVALUE[2]); Else NoPlot(2); if NTHVALUE[3] > 0 Then Plot3(NTHVALUE[3]); Else NoPlot(3); } } 2 input : 타주기분(30),n(10),R(5); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0),H1[50](0),L1[50](0); Array : tempR1[50](0),tempM1[50](0),tempH1[50](0),tempL1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; OO = O; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 = true; } if Condition1 == true Then { M1[0] = (OO+CC)/2; H1[0] = HH; L1[0] = LL; } if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; tempH1[ii] = H1[ii]; tempL1[ii] = L1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if TempH1[i2] <= DayOpen+R and TempL1[i2] >= DayOpen-R and tempR1[i2] >= tempmax then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } if NTHVALUE[1] > 0 Then Plot1(NTHVALUE[1]); Else NoPlot(1); if NTHVALUE[2] > 0 Then Plot2(NTHVALUE[2]); Else NoPlot(2); if NTHVALUE[3] > 0 Then Plot3(NTHVALUE[3]); Else NoPlot(3); } } 3 input : 타주기분(30),n(10),R(5); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0),H1[50](0),L1[50](0); Array : tempR1[50](0),tempM1[50](0),tempH1[50](0),tempL1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; OO = O; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 = true; } if Condition1 == true Then { M1[0] = (OO+CC)/2; H1[0] = max(CC,OO); L1[0] = Min(CC,OO); } if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; tempH1[ii] = H1[ii]; tempL1[ii] = L1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if TempH1[i2] <= DayOpen+R and TempL1[i2] >= DayOpen-R and tempR1[i2] >= tempmax then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } if NTHVALUE[1] > 0 Then Plot1(NTHVALUE[1]); Else NoPlot(1); if NTHVALUE[2] > 0 Then Plot2(NTHVALUE[2]); Else NoPlot(2); if NTHVALUE[3] > 0 Then Plot3(NTHVALUE[3]); Else NoPlot(3); } } 즐거운 하루되세요 > 원칙투자자 님이 쓴 글입니다. > 제목 : 지표A, 지표B, 지표C의 (수정)작성 부탁드립니다. > 담당자님, 안녕하세요. 작성해주신 지표 수식을 잘 활용하고 있습니다. 거듭 감사드립니다. 담당자님게서 작성해 주신 (변경전) 지표A, 지표B, 지표C에 아래의 제약조건을 추가(수정)한 변경후 지표의 작성을 부탁드립니다. 제일 하단에는 담당자님께서 작성해주신 (변경전) 지표A, 지표B, 지표C의 수식을 기재하였습니다. =========================================================== =========================================================== <지표 A> (3분봉 차트에서 사용하되 30분봉 기준의 시세를 연산하는 지표입니다) (변경전 요건) 1) 각 일자별 (고가-저가) 값이 최대인 30분봉 중 (D-1)일 부터 소급하여 과거 n일(n=10) 기간 중 (고가-저가) 값이 큰 상위 3개의 30분봉을 총 3개 선택하고 2) 위에서 선택된 상위 3개의 30분봉('고가, 저가'의 값)으로 각각의 '(고가+저가)/2'를 계산하여 그 값을 각각 3개의 수평선 라인으로 표시 (수정후 요건) [추가제약 조건 A] (당일 시가 + 5.0)~(당일 시가-5.0)의 범위 내에 30분봉의 고가, 저가가 모두 위치한 과거 n일(n=10) 기간의 30분봉 중에서 1) 각 일자별 (고가-저가)가 최대인 30분봉 중 (D-1)일 부터 소급하여 과거 n일(n=10) 기간 중 (고가-저가) 값이 큰 상위 3개의 30분봉을 총 3개 선택하고 2) 위에서 선택된 상위 3개의 30분봉('고가, 저가'의 값)으로 각각의 '(고가+저가)/2'를 계산하여 그 값을 각각 3개의 수평선 라인으로 표시하는 지표하는 지표로의 수정을 부탁드립니다. 즉, [ (당일 시가 + 5.0) < 각 일자별 30분봉 고가 < (당일 시가-5.0) and (당일 시가 + 5.0) < 각 일자별 30분봉 저가 < (당일 시가-5.0)]인 30분봉 중에서 1)의 30분봉을 선택하고 연산을 진행하는 것입니다. [추가제약 조건 A] 예시 (1) -> (1), (2), (4), (5)는 선택 대상(선택 pool)에서 제외 고 (2) 저 고 -----------------------------------------------------(당일 시가+5.0) 저 (3) 고 -> (3)에 해당하는 30분봉만 위 연산 과정 1)과 2)를 수행 저 고 --------------------------------------------------------(당일 시가-5.0) 저 고 (4) 저 (5) ============================================================ <지표 B> (3분봉 차트에서 사용하되 30분봉 기준의 시세를 연산하는 지표입니다) (변경전 요건) 1) <지표A>와 동일 2) 위에서 선택된 상위 3개의 30분봉에서 그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 각각 수평선 라인으로 표시 (수정후 요건) [추가제약 조건] (당일 시가 + 5.0)~(당일 시가-5.0)의 범위 내에 30분봉의 고가, 저가가 모두 위치한 과거 n일 기간의 30분봉 중에서 (-> A와 동일) 1) <지표A>와 동일 2) 위 1)에서 선택된 상위 3개의 30분봉에서 그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 각각 수평선 라인으로 표시하는 지표로의 수정을 부탁드립니다. =========================================================== <지표 C> (3분봉 차트에서 사용하되 30분봉 기준의 시세를 연산하는 지표입니다) (변경전 요건) 1) (고가-저가)를 ABS(시가-종가)로 적용하는 것 이외에는 <지표A>와 동일 2) (고가-저가)를 ABS(시가-종가)로, '(고가+저가)/2'를 '(시가+종가)/2'로 적용 이외에는 <지표A>와 동일 (수정후 요건) [추가제약 조건 C] (당일 시가 + 5.0)~(당일 시가-5.0)의 범위 내에 30분봉의 시가, 종가가 모두 위치한 과거 n일 기간의 30분봉 중에서 1) (고가-저가)를 ABS(시가-종가)로 적용하는 것 이외에는 <지표A>와 동일 2) (고가-저가)를 ABS(시가-종가)로, '(고가+저가)/2'를 '(시가+종가)/2'로 적용 하는 것 이외에는 <지표A>과 동일하고, 제약조건C가 추가된 지표로의 수정을 부탁드립니다. [추가제약 조건 C] 예시 (1) -> (1), (2), (4), (5)는 선택 대상(선택 pool)에서 제외 시 종 (2) 종 시 시 종 --------------------------------------------------------------------------(당일 시가+5.0) 종 시 (3) 시 종 -> (3)의 30분봉만 위 연산 과정 1)과 2)를 수행 종 시 시 종 -----------------------------------------------------------------------------(당일 시가-5.0) 종 시 시 종 (4) 종 시 (5) 위와 같이 지표A, B, C 수식의 수정을 부탁드립니다. 담당자님 노고와 답변에 미리 감사드립니다. 코로나 시국에 건강도 잘 챙기시기 바랍니다. =========================================================== =========================================================== =========================================================== 담당자님이 작성해주신 (변경전) <지표 A> input : 타주기분(30),n(10); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0); Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 =true; } if Condition1 == true Then M1[0] = (HH+LL)/2; if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if (tempR1[i2] >= tempmax ) then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); } } ============================================================= 담당자님이 작성해주신 (변경전) <지표 B> input : 타주기분(30),n(10); var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : R1[50](0),M1[50](0); Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { HH = H; LL = L; OO = O; Condition1 = False; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH-LL > R1[0] Then { R1[0] = HH-LL; Condition1 = true; } if Condition1 == true Then M1[0] = (OO+CC)/2; if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if (tempR1[i2] >= tempmax ) then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); } } ============================================================= 담당자님이 작성해주신 (변경전) <지표 C> input : 타주기분(30),n(10); var : S1(0),D1(0),TM(0),TF(0),cnt(0),OO(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0),tR1(0),tM1(0),di(0); Array : R1[50](0),M1[50](0); Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; di = 0; for cnt = 1 to 49 { R1[cnt] = R1[cnt-1][1]; M1[cnt] = M1[cnt-1][1]; } } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { OO = O; CC = C; di = di+1; tR1 = R1[0][1]; tM1 = M1[0][1]; if Bdate != Bdate[1] Then { R1[0] = 0; M1[0] = 0; } } CC = C; if di == 1 then { R1[0] = abs(OO-CC); M1[0] = (OO+CC)/2; } if di > 1 then { if abs(OO-CC) >= R1[0] Then { R1[0] = abs(OO-CC); M1[0] = (OO+CC)/2; } Else { R1[0] = tR1; M1[0] = tM1; } } if M1[n] > 0 Then { for ii = 0 to 49 { tempR1[ii] = R1[ii]; tempM1[ii] = M1[ii]; } For i1 = 1 to n { tempmax = -1; For i2 = 1 to n { if (tempR1[i2] >= tempmax ) then { tempmax = tempR1[i2]; tempi = i2; } } NTHVALUE[i1] = tempM1[tempi]; tempR1[tempi] = -1; } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); } } =============================================================