커뮤니티

복합장에서 타주기이평

프로필 이미지
바닥차기
2026-02-03 15:32:44
64
글번호 230300
답변완료

안녕하세요

선물 복합장에서 타주기이평을 사용하려고 보면 (30분을 3분으로 본다면)

주간에서 봉완성시 9시15 9시45분인데 기존 타주기이평은 30분단위로

바뀌어서 맞지가 않네요 수정부탁합니다

(이게 야간과 주간이 봉완성시간이 달라서 그런거 같은데 저는

복합장으로 주간만 씁니다)

지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-02-04 12:28:23

안녕하세요 예스스탁입니다. 국내선물 복합장에서는 아래식 이용하시면 됩니다. input : 분주기(30),Period(20); Var : Reschedule(False); Var : S1(0),D1(0),TM(0),TF(0),cnt(0); Var : sum(0),mav(0); Array : CC[100](0); #새로운 영업일이 시작하거나 8시45분 이후 첫봉이면 true 아니면 false Reschedule = Bdate != Bdate[1] or (sDate != sDate[1] and sTime >= 84500) or (sDate == sDate[1] and sTime >= 84500 and sTime[1] < 84500); //새로운 영업일이거나 8시 45분 이후 첫봉이면 //시작시간(S1)과 날짜(D1)를 초기화 if Reschedule == true Then { //첫봉의 stime을 분으로 변환하여 기준에 사용 S1 = TimeToMinutes(stime); //첫봉의 현재 날짜 저장 D1 = sdate; } // D1에 날짜가 저장된 이후(영업일 변경이 되는 봉이 발생 후에) if D1 > 0 then { //같은 날짜인지 판단하여 영업일 변경이후 경과분(TM)계산 if sdate == D1 Then TM = TimeToMinutes(stime)-S1; //첫봉과 동일날짜이면 첫봉부터 경과분계산 Else TM = TimeToMinutes(stime)+1440-S1; //다음날이면 24시간(1440분)을 더해서 보정 //영업일 변경이후 경과분을 분주기로 나누어 나머지를 구함 TF = TM%분주기; //새로운 영업일이 시작하거나 새로운 분이 시작되면 if Reschedule == true or (Reschedule == False and 분주기 > 1 and TF < TF[1]) or (Reschedule == False and 분주기 > 1 and TM >= TM[1]+분주기) or (Reschedule == False and 분주기 == 1 and TM > TM[1]) Then { //배열의 0번방기준으로 최신값순으로 저장하기 위해 //배열의 기존값을 다음방으로 이동 for cnt = 99 downto 1 { CC[cnt] = CC[cnt-1]; } } //0번방에는 최신값(종가)를 저장 CC[0] = C; //지정한 기간을 계산하기 위해 충분한 데이터가 쌓이면 계산 if CC[Period-1] > 0 then { //최근 Period개의 배열에서 CC값을 가져와 합산 sum = 0; for cnt = 0 to Period-1 { sum = sum+CC[cnt]; } //합산값을 Period로 나눔 mav = sum/Period; // 차트에 이동평균 표시 plot1(mav,"이평"); } } 즐거운 하루되세요