커뮤니티

질문입니다.

프로필 이미지
yanartas
2016-10-25 11:22:23
87
글번호 103314
답변완료
틱 복합장 차트에서 현재시각으로부터 전거래일의 시각까지 봉의 갯수를 구하는 지표를 아래와 같이 작성해 주셨습니다. var : S1(0),S2(0),TM(0),T(0); var : idx(0),idx1(0); var : cnt(0),count(0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); S2 = stime; idx = 0; idx1 = idx[1]; } if S1 > 0 Then{ idx = idx+1; if Stime >= S2 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; } if idx1 > 0 then{ count = 0; for cnt = idx to idx+idx1{ if bdate[cnt] < bdate and TM[cnt] <= TM Then{ count = cnt; cnt = idx+idx1+10; } } plot1(count); } 제가 이해가 잘 되지 않아서 그러는데, 각 줄에 주석으로 설명을 부탁드리겠습니다. 그리고 한가지 더 질문할 것이, 전거래일까지의 봉의 갯수가 아니라 현재시각으로부터 x일전의 시각까지 봉의 갯수를 구하는 수식도 예시로 부탁드리겠습니다. 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-10-25 11:39:32

안녕하세요 예스스탁입니다. var : S1(0),S2(0),TM(0),T(0); var : idx(0),idx1(0); var : cnt(0),count(0); #영업일 변경 if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime);#0시 이후 경과된 분수 S2 = stime;#시간 idx = 0; #당일봉수 초기화 idx1 = idx[1];#전일봉수 } #S1에 값 저장된 이후에 if S1 > 0 Then{ idx = idx+1; #당일 봉수 카운트 #영업일 변경시간 이후에 경과된 분수를 계산하기 위한 내용입니다. #현재시간이 영업일 변경시간보다 크면 if Stime >= S2 Then #현재 TimeToMinutes에서 영업일 변경시 TimeToMinutes을 뺌 TM = TimeToMinutes(stime)-S1; #현재시간이 영업일 변경시간보다 작으면(영업일 변경후 0시를 넘어감) Else #현재 TimeToMinutes에 1440분(24시)을 더한값에서 영업일 변경시 TimeToMinutes을 뺌 TM = TimeToMinutes(stime)+1440-S1; } #전일 봉수에 값 저장된 상태에서 if idx1 > 0 then{ #for문전 초기화 count = 0; #idx봉 전부터 idx+idx1까지 1씩 증가하면 루프 수행 #즉 당일봉수전부터이므로 전일마지막봉부터 전일 첫봉까지 수향 for cnt = idx to idx+idx1{ #오늘 영업일보다는 작고 영업일변경이후시간으로 현재봉값보다 작거나 같은 같이 나오면 if bdate[cnt] < bdate and TM[cnt] <= TM Then{ #봉수 저장 count = cnt; #cnt에 for문의 최종값보다 큰값을 지정해 for문에서 빠져나감 cnt = idx+idx1+10; } } plot1(count); } 즐거운 하루되세요 > yanartas 님이 쓴 글입니다. > 제목 : 질문입니다. > 틱 복합장 차트에서 현재시각으로부터 전거래일의 시각까지 봉의 갯수를 구하는 지표를 아래와 같이 작성해 주셨습니다. var : S1(0),S2(0),TM(0),T(0); var : idx(0),idx1(0); var : cnt(0),count(0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); S2 = stime; idx = 0; idx1 = idx[1]; } if S1 > 0 Then{ idx = idx+1; if Stime >= S2 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; } if idx1 > 0 then{ count = 0; for cnt = idx to idx+idx1{ if bdate[cnt] < bdate and TM[cnt] <= TM Then{ count = cnt; cnt = idx+idx1+10; } } plot1(count); } 제가 이해가 잘 되지 않아서 그러는데, 각 줄에 주석으로 설명을 부탁드리겠습니다. 그리고 한가지 더 질문할 것이, 전거래일까지의 봉의 갯수가 아니라 현재시각으로부터 x일전의 시각까지 봉의 갯수를 구하는 수식도 예시로 부탁드리겠습니다. 감사합니다.