서머타임에 따른 매매 허용 시간에 대한 질문의 답변을 이렇게 주셨었는데요
var : ST(0),ET(0),Tcond(False);
if Bdate != Bdate[1] Then
{
if stime >= 80000 Then
{
ST = 223000;
ET = 053000;
}
else
{
ST = 213000;
ET = 043000;
}
}
if (sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST) Then
Tcond = true;
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if Tcond == true Then
{
진입식
}
여기서 궁금한 단락이 이것입니다
(sdate != sdate[1] and stime >= ST)
(sdate != sdate[1] and stime >= ET)
이 식이 왜 있는것인지 이해하기가 어렵습니다. 자정을 넘긴시점(00시00분)에서 stime값이 ST값보다 크거나 같은 상황이 있을리 없지 않습니까? ET의 경우에도 마찬가지구요.
시뮬레이션에 물려봐도 두가지 경우가 true을 띄는 경우가 없던데 이 식은 왜 들어가있는것인지요?
답변 1
예스스탁
예스스탁 답변
2022-05-16 13:00:12
안녕하세요
예스스탁입니다.
시작시간과 끝시간을 어떤 시간으로 지정해도 해당 수식 하나로 모두 제어하기 위해 있는 내용입니다.
(sdate != sdate[1] and stime >= ST)
(sdate != sdate[1] and stime >= ET)
위와 같은 구문은 지정한 시간 봉이 0시 이후의 첫봉일때를 대비하기 위함입니다.
사용자분이 지정한 시간에서는 해당 케이스가 없을수 있지만
시작시간을 밤 0시로 지정하거나 하면
sdate == sdate[1]로는 조건이 충족할수 없습니다.
시작시간이나 끝시간을 다른 시간으로 조정할때를 대비하기 위함입니다.
즐거운 하루되세요
> 부동여산 님이 쓴 글입니다.
> 제목 : 수식에대한 질문입니다
> 서머타임에 따른 매매 허용 시간에 대한 질문의 답변을 이렇게 주셨었는데요
var : ST(0),ET(0),Tcond(False);
if Bdate != Bdate[1] Then
{
if stime >= 80000 Then
{
ST = 223000;
ET = 053000;
}
else
{
ST = 213000;
ET = 043000;
}
}
if (sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST) Then
Tcond = true;
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if Tcond == true Then
{
진입식
}
여기서 궁금한 단락이 이것입니다
(sdate != sdate[1] and stime >= ST)
(sdate != sdate[1] and stime >= ET)
이 식이 왜 있는것인지 이해하기가 어렵습니다. 자정을 넘긴시점(00시00분)에서 stime값이 ST값보다 크거나 같은 상황이 있을리 없지 않습니까? ET의 경우에도 마찬가지구요.
시뮬레이션에 물려봐도 두가지 경우가 true을 띄는 경우가 없던데 이 식은 왜 들어가있는것인지요?