커뮤니티

질문 드립니다.

프로필 이미지
아침식사됩니다
2024-11-13 21:24:54
609
글번호 185241
답변완료
안녕하세요! 오늘도 질문드립니다. 아래는 일전에 예스스탁에서 질문에 대한 답으로 써주셨던 구문 중 일부입니다.(https://www.yesstock.com/Board/View.asp?db=board100036&Ext=0&startpage=1&pageno=1&num=185283&ref=185261&Sort=&KeyField=Content&KeyWord=%BE%C6%C4%A7%BD%C4&SystemName=) 다름이 아니라, 독해를 해보던 중, 첫번째줄부터 헷갈려서 글을 씁니다. 첫번째 줄의 "if (sdate != sdate[1] and stime >= StartTime1)"는 분봉기준으로 날짜가 넘어갔음을 의미하는 한편(sdate != sdate[1]), 현재 시간이 특정 시간을 넘어섰는지 확인하는 부분입니다. 이해가 가지 않는 점은, 분봉기준에서 날짜가 넘어갔다면 다음날의 09시 00분일텐데, 외부변수인 StartTime1(140000)보다 현재시간이 큰지를 확인하는 목적입니다. 두 조건이 'or' 조건으로 묶여있다면 의미가 있겠지만 'and'조건이라면 해당 부분의 의미자체가 없지 않나 싶어서요. 혹시 해당 구문의 의미를 알려주실 수 있으실까요..? 매번 답답한 질문만하여 정말 죄송합니다...... - 아 래 - 1)input : StartTime1(140000),EndTime1(150000); input : StartTime2(90000),EndTime2(120000); var : Tcond1(False),Tcond2(False); var : HH1(0),preHH1(0),HH2(0); if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then .... 이하생략
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-11-14 14:25:47

안녕하세요 예스스탁입니다. if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then 항상 당일 첫봉이 9시 일수는 없습니다. 차트의 종목이 거래가 많이 없는 종목이거나 하면 당일 첫봉이 140000시봉일 수도 있습니다. 이때는 sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1 조건으로는 체크가 되지 않습니다. 왜냐하면 전봉이 전일봉이므로 sdate == sdate[1]가 충족되지 않고 또한 stime >= StartTime1 and stime[1] < StartTime1도 충족되지 않습니다. 즉 해당 특정시간봉을 지정하는 수식은 거래가 많이 없는 봉이일때 지정한 시각이후 첫봉이 그날의 첫봉일때도 대비하기 위함입니다. 즐거운 하루되세요 > 아침식사됩니다 님이 쓴 글입니다. > 제목 : 질문 드립니다. > 안녕하세요! 오늘도 질문드립니다. 아래는 일전에 예스스탁에서 질문에 대한 답으로 써주셨던 구문 중 일부입니다.(https://www.yesstock.com/Board/View.asp?db=board100036&Ext=0&startpage=1&pageno=1&num=185283&ref=185261&Sort=&KeyField=Content&KeyWord=%BE%C6%C4%A7%BD%C4&SystemName=) 다름이 아니라, 독해를 해보던 중, 첫번째줄부터 헷갈려서 글을 씁니다. 첫번째 줄의 "if (sdate != sdate[1] and stime >= StartTime1)"는 분봉기준으로 날짜가 넘어갔음을 의미하는 한편(sdate != sdate[1]), 현재 시간이 특정 시간을 넘어섰는지 확인하는 부분입니다. 이해가 가지 않는 점은, 분봉기준에서 날짜가 넘어갔다면 다음날의 09시 00분일텐데, 외부변수인 StartTime1(140000)보다 현재시간이 큰지를 확인하는 목적입니다. 두 조건이 'or' 조건으로 묶여있다면 의미가 있겠지만 'and'조건이라면 해당 부분의 의미자체가 없지 않나 싶어서요. 혹시 해당 구문의 의미를 알려주실 수 있으실까요..? 매번 답답한 질문만하여 정말 죄송합니다...... - 아 래 - 1)input : StartTime1(140000),EndTime1(150000); input : StartTime2(90000),EndTime2(120000); var : Tcond1(False),Tcond2(False); var : HH1(0),preHH1(0),HH2(0); if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then .... 이하생략