커뮤니티
질문입니다.
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일전의 시각까지 봉의 갯수를 구하는 수식도 예시로 부탁드리겠습니다.
감사합니다.