커뮤니티

지표 수식(지표1, 지표2, 지표3) 작성 부탁드립니다.

프로필 이미지
원칙투자자
2022-02-13 23:29:02
1225
글번호 156193
답변완료
담당자님, 안녕하세요. 작성해주신 지표 수식을 너무나 잘 활용하고 있습니다. 거듭 감사드립니다. (KOSPI200 주가지수 선물) 분봉 차트에서, 예를 들면 3분봉 차트에서 적용하는 지표라고 가정하고 다음과 같은 지표1, 지표2, 지표3 수식의 작성을 부탁드립니다. =========================================================== =========================================================== <지표 1> (3분봉 차트에서 적용) 1) 매일의 30분봉(장시작~09:30, 09:30~10:00.....15:30~장마감의 30분 단위 구간)의 (고가-저가) 중에서 각 해당일의 30분 구간 (고가-저가)가 최대인 30분봉(30분 구간)을 각 일자별로 1개씩 선택 (즉, 각 일자별로 그날의 30분봉 중에서 고점과 저점 사이의 봉길이가 최대인 30분봉을 1개씩 선택함) cf. 어떤 날에 (고가-저가)의 최대값이 같은 봉이 2개 이상이면(즉, 같은 수치의 최대봉이 2개 이상이면) 그 날 가장 먼저 발생한 봉을 선택 또는 담당자님이 정하는 원칙으로 각 일자에서는 1개씩만 선정함. 2) 위에서 계산된 각 일자별 (고가-저가)가 최대인 30분봉 중 (D-1)일 부터 소급하여 과거 n일(n=10) 기간 중 (고가-저가) 값이 큰 상위 3개의 30분봉(30분 구간)을 총 3개 선택 * 당일(D)의 수치(가격)는 계산에 반영(포함)되지 않으며 (D-1)일 부터 (D-10)일 까지의 10일간의 수치(가격)를 반영하여 산출함. 3) 위에서 선택된 상위 3개의 30분봉('고가-저가'의 값)으로 각각의 '(고가+저가)/2'를 계산하여 그 값을 각각 3개의 수평선 라인으로 표시 [=> 최종 결과값은 총 3개의 수평라인 산출] * [중요] 위의 조건 충족한 당일(D)의 3개 수평라인은 '당일(D)의 장시작 ~ 장마감'의 기간에만 표시함. (cf. 실시간 차트에서는 당일(D) 장시작 하면서(첫봉 만들어지면서) 바로 라인이 표시되며 그 이후 장중 분봉이 형성되면서 순차적으로 동일한 라인이 장마감까지 표시될 것으로 예상) 또한, 당일 보다 과거 기간에는 당일 조건에 의한 라인은 표시되지 않고 각 해당일의 조건에 의해 선정된 수평라인만 표시되므로 과거 각 일자에 해당하는 차트 구간에도 최대 3개 라인이 표시됨. (추가 요건1) [중요] 최종 결과물인 수평라인 3개를 plot1, plot2, plot3로 산출할 때, (최종 수치인 '(고가+저가)/2'를 sort, 정렬하여) plot1, 2, 3가 최종수치인 '(고가+저가)/2'의 크기대로 올림차순 또는 내림차순이 되도록 배열 (cf. plot1, 2, 3가 [고가-저가]의 크기 순대로의 배열이 아님) (추가 요건2) n일(n=10) 기간의 수치는 외부입력 변수로 하여 지표속성창에서 변경 입력이 가능 하도록 구현 =============================================================================== (예시) D-10일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 360.00 359.00 1.00 09:30 ~10:00 361.00 358.10 2.90 (=> 선택2) 359.55(-> 당일(D) 구간에 라인 표시) ..... 15:00~ 장마감 360.00 359.60 0.40 ---------------------------------------------------------------------------------------- ................. D-7일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 358.50 357.00 1.50 (=> 선택3) 357.75(-> 당일(D) 구간에 라인 표시) 09:30 ~10:00 359.20 358.00 1.20 ..... 15:00~ 장마감 359.40 359.00 0.40 ---------------------------------------------------------------------------------------- ................. D-5일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 380.50 376.40 3.60 (=> 선택1) 378.45(-> 당일(D) 구간에 라인 표시) 09:30 ~10:00 378.00 375.00 3.00 ..... 15:00~ 장마감 377.00 356.40 0.60 ---------------------------------------------------------------------------------------- ................. D-2일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 358.40 357.00 1.40 (=> 미선택) 357.70 (D-2일의 최대 30분봉 '고가-저가'값이 상위 3개에 미포함 되므로 1.40은 미선택됨) 09:30 ~10:00 359.10 358.00 1.10 ..... 15:00~ 장마감 359.50 359.00 0.50 ---------------------------------------------------------------------------------------- ................. D일(당일) 시가 : 361.00 ------------------------------------------------------------ <최종 구현되는 결과(plot 1,2,3의 값을 올림차순 또는 내림차순 정렬)> plot1 : 357.75 plot1 : 378.45 plot2 : 359.55 또는 plot2 : 359.55 plot3 : 378.45 plot3 : 357.75 (올림차순) (내림차순) ============================================================ 위와 같이 지표1의 수식 작성을 부탁드립니다. =========================================================== =========================================================== <지표 2> (3분봉 차트에서 적용) 1) <지표1>과 동일 2) <지표1>과 동일 3) 위에서 선택된 '고가-저가'의 값이 큰 상위 3개의 30분봉에서 그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 각각 수평선 라인으로 표시 [=> 총 3개의 수평라인 산출] cf. <지표1>과의 차이는 '(고가+저가)/2'가 아니고 선택된 30분봉의 '(종가+시가)/2'를 적용하는 것임. (추가 요건1) <지표1>과 동일 (추가 요건2) <지표1>과 동일 ============================================================= ============================================================= 위와 같이 지표2의 수식 작성을 부탁드립니다. =========================================================== =========================================================== <지표 3> (3분봉 차트에서 적용) 1) (고가-저가)를 절대값(종가-시가)로 적용하는 것 이외에는 <지표1>과 동일 2) (고가-저가)를 절대값(종가-시가)로 적용하는 것 이외에는 <지표1>과 동일 3) (고가-저가)를 절대값(종가-시가)로, '(고가+저가)/2'를 '(종가+시가)/2'로 적용 이외에는 <지표1>과 동일 (추가 요건1) plot1, 2, 3가 최종수치인 '(종가+시가)/2'의 크기대로 올림차순 또는 내림차순이 되도록 배열 (추가 요건2) <지표1>과 동일 ============================================================= ============================================================= 위와 같이 지표3의 수식 작성을 부탁드립니다. 담당자님 노고와 답변에 미리 감사드립니다. 코로나 시국에 건강도 잘 챙기시기 바랍니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-14 09:35:15

안녕하세요 예스스탁입니다. 올림차순 또는 내림차순으로 지정해 드리기는 어렵습니다. 최근 n일 값을 계산해서 NTHVALUE에 오름차순으로 값이 저장됩니다. 10일 중 가장작은값 3개는 NTHVALUE[8],NTHVALUE[9],NTHVALUE[10]으로 지정해 출력하시면 됩니다. 1 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; if Bdate != Bdate[1] Then { R1[0] = HH-LL; M1[0] = (HH+LL)/2; } } if H > HH Then HH = H; if L < LL Then LL = L; if HH-LL > R1[0] Then { R1[0] = HH-LL; 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]); } } 2 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; if Bdate != Bdate[1] Then { R1[0] = HH-LL; M1[0] = (HH+LL)/2; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH-LL > R1[0] Then { R1[0] = HH-LL; 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]); } } 3 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); 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 { OO = O; CC = C; if Bdate != Bdate[1] Then { R1[0] = abs(OO-CC); M1[0] = (OO+CC)/2; } } CC = C; if abs(OO-CC) > R1[0] Then { R1[0] = abs(OO-CC); 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]); } } 즐거운 하루되세요 > 원칙투자자 님이 쓴 글입니다. > 제목 : 지표 수식(지표1, 지표2, 지표3) 작성 부탁드립니다. > 담당자님, 안녕하세요. 작성해주신 지표 수식을 너무나 잘 활용하고 있습니다. 거듭 감사드립니다. (KOSPI200 주가지수 선물) 분봉 차트에서, 예를 들면 3분봉 차트에서 적용하는 지표라고 가정하고 다음과 같은 지표1, 지표2, 지표3 수식의 작성을 부탁드립니다. =========================================================== =========================================================== <지표 1> (3분봉 차트에서 적용) 1) 매일의 30분봉(장시작~09:30, 09:30~10:00.....15:30~장마감의 30분 단위 구간)의 (고가-저가) 중에서 각 해당일의 30분 구간 (고가-저가)가 최대인 30분봉(30분 구간)을 각 일자별로 1개씩 선택 (즉, 각 일자별로 그날의 30분봉 중에서 고점과 저점 사이의 봉길이가 최대인 30분봉을 1개씩 선택함) cf. 어떤 날에 (고가-저가)의 최대값이 같은 봉이 2개 이상이면(즉, 같은 수치의 최대봉이 2개 이상이면) 그 날 가장 먼저 발생한 봉을 선택 또는 담당자님이 정하는 원칙으로 각 일자에서는 1개씩만 선정함. 2) 위에서 계산된 각 일자별 (고가-저가)가 최대인 30분봉 중 (D-1)일 부터 소급하여 과거 n일(n=10) 기간 중 (고가-저가) 값이 큰 상위 3개의 30분봉(30분 구간)을 총 3개 선택 * 당일(D)의 수치(가격)는 계산에 반영(포함)되지 않으며 (D-1)일 부터 (D-10)일 까지의 10일간의 수치(가격)를 반영하여 산출함. 3) 위에서 선택된 상위 3개의 30분봉('고가-저가'의 값)으로 각각의 '(고가+저가)/2'를 계산하여 그 값을 각각 3개의 수평선 라인으로 표시 [=> 최종 결과값은 총 3개의 수평라인 산출] * [중요] 위의 조건 충족한 당일(D)의 3개 수평라인은 '당일(D)의 장시작 ~ 장마감'의 기간에만 표시함. (cf. 실시간 차트에서는 당일(D) 장시작 하면서(첫봉 만들어지면서) 바로 라인이 표시되며 그 이후 장중 분봉이 형성되면서 순차적으로 동일한 라인이 장마감까지 표시될 것으로 예상) 또한, 당일 보다 과거 기간에는 당일 조건에 의한 라인은 표시되지 않고 각 해당일의 조건에 의해 선정된 수평라인만 표시되므로 과거 각 일자에 해당하는 차트 구간에도 최대 3개 라인이 표시됨. (추가 요건1) [중요] 최종 결과물인 수평라인 3개를 plot1, plot2, plot3로 산출할 때, (최종 수치인 '(고가+저가)/2'를 sort, 정렬하여) plot1, 2, 3가 최종수치인 '(고가+저가)/2'의 크기대로 올림차순 또는 내림차순이 되도록 배열 (cf. plot1, 2, 3가 [고가-저가]의 크기 순대로의 배열이 아님) (추가 요건2) n일(n=10) 기간의 수치는 외부입력 변수로 하여 지표속성창에서 변경 입력이 가능 하도록 구현 =============================================================================== (예시) D-10일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 360.00 359.00 1.00 09:30 ~10:00 361.00 358.10 2.90 (=> 선택2) 359.55(-> 당일(D) 구간에 라인 표시) ..... 15:00~ 장마감 360.00 359.60 0.40 ---------------------------------------------------------------------------------------- ................. D-7일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 358.50 357.00 1.50 (=> 선택3) 357.75(-> 당일(D) 구간에 라인 표시) 09:30 ~10:00 359.20 358.00 1.20 ..... 15:00~ 장마감 359.40 359.00 0.40 ---------------------------------------------------------------------------------------- ................. D-5일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 380.50 376.40 3.60 (=> 선택1) 378.45(-> 당일(D) 구간에 라인 표시) 09:30 ~10:00 378.00 375.00 3.00 ..... 15:00~ 장마감 377.00 356.40 0.60 ---------------------------------------------------------------------------------------- ................. D-2일 고가 저가 고가-저가 (고가+저가)/2 장시작~09:30 358.40 357.00 1.40 (=> 미선택) 357.70 (D-2일의 최대 30분봉 '고가-저가'값이 상위 3개에 미포함 되므로 1.40은 미선택됨) 09:30 ~10:00 359.10 358.00 1.10 ..... 15:00~ 장마감 359.50 359.00 0.50 ---------------------------------------------------------------------------------------- ................. D일(당일) 시가 : 361.00 ------------------------------------------------------------ <최종 구현되는 결과(plot 1,2,3의 값을 올림차순 또는 내림차순 정렬)> plot1 : 357.75 plot1 : 378.45 plot2 : 359.55 또는 plot2 : 359.55 plot3 : 378.45 plot3 : 357.75 (올림차순) (내림차순) ============================================================ 위와 같이 지표1의 수식 작성을 부탁드립니다. =========================================================== =========================================================== <지표 2> (3분봉 차트에서 적용) 1) <지표1>과 동일 2) <지표1>과 동일 3) 위에서 선택된 '고가-저가'의 값이 큰 상위 3개의 30분봉에서 그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 각각 수평선 라인으로 표시 [=> 총 3개의 수평라인 산출] cf. <지표1>과의 차이는 '(고가+저가)/2'가 아니고 선택된 30분봉의 '(종가+시가)/2'를 적용하는 것임. (추가 요건1) <지표1>과 동일 (추가 요건2) <지표1>과 동일 ============================================================= ============================================================= 위와 같이 지표2의 수식 작성을 부탁드립니다. =========================================================== =========================================================== <지표 3> (3분봉 차트에서 적용) 1) (고가-저가)를 절대값(종가-시가)로 적용하는 것 이외에는 <지표1>과 동일 2) (고가-저가)를 절대값(종가-시가)로 적용하는 것 이외에는 <지표1>과 동일 3) (고가-저가)를 절대값(종가-시가)로, '(고가+저가)/2'를 '(종가+시가)/2'로 적용 이외에는 <지표1>과 동일 (추가 요건1) plot1, 2, 3가 최종수치인 '(종가+시가)/2'의 크기대로 올림차순 또는 내림차순이 되도록 배열 (추가 요건2) <지표1>과 동일 ============================================================= ============================================================= 위와 같이 지표3의 수식 작성을 부탁드립니다. 담당자님 노고와 답변에 미리 감사드립니다. 코로나 시국에 건강도 잘 챙기시기 바랍니다.