input : 미국시작(223000),미국종료(060000);
if (sdate != sdate[1] and stime >= 미국종료) or
(sdate == sdate[1] and stime >= 미국종료 and stime[1] < 미국종료) Then
{
Tcond1 = False;
}
라고 하셨는데요, 이해가 가지 않는 부분이 있어 여쭤봅니다.
Tcod1= False라는 의미는 해당 조건이 만족되면 매매를 하지 않겠다는 의미인 것은 이해했습니다.
근데 제일 첫번째 문단,
봉의 시작날짜와 봉[1]의 시작날짜가 같지 않으면서 <-- 즉 자정 12시 넘어서 시작되는 첫봉
and
봉의 시작 시간이 미국 종료시간인 060000보다 같거나 클때 라고 적혀있는데요,
이부분이 이해가 안갑니다.
자정 12시가 지나면 01시 부터 시작이니까 봉 시작 시간이 미국 종료시간보다 같거나 큰게 아니라 같거나 작어야하지 않나요??
답변 1
예스스탁
예스스탁 답변
2021-05-10 16:02:33
안녕하세요
예스스탁입니다.
input : 미국시작(223000),미국종료(060000);
var : Tcond1(False);
#0시 이후의 첫봉이 미국종료시간이상이거나
#0시 이후의 첫봉이 아닌경우 현재봉은 미국종료시간이후이고 전봉은 미국종료시간이전이면
#Tcond1은 False
if (sdate != sdate[1] and stime >= 미국종료) or
(sdate == sdate[1] and stime >= 미국종료 and stime[1] < 미국종료) Then
{
Tcond1 = False;
}
#0시 이후의 첫봉이 미국시작시간이후이거나
#0시 이후의 첫봉이 아닌경우 현재봉은 미국시작시간이후이고 전봉은 미국시작시간이전이면
#Tcond1은 False
if (sdate != sdate[1] and stime >= 미국시작) or
(sdate == sdate[1] and stime >= 미국시작 and stime[1] < 미국시작) Then
{
Tcond1 = True;
}
#지정한 시작시간~종료시간 사이에
if Tcond1 == true then
{
진입청산
}
해당 구분은 각 시작시간과 종료시간 이후의 첫봉을 지정하기 위함입니다.
지정한 시작시간이후의 첫봉이 발생하면 Tcond1은 true가 되고
계속 변경없이 유지되다가 지정한 종료시간이후의 첫봉이 발생하면 false가 되는 구조입니다.
즉 변수에 true를 저장하고 유지하다가 지정한 종료시간이 되면 false로 만드는 것이므로 같거나 작다로 넣으시면 안됩니다.
해당 조건에 같거나 작다로 넣으시면 0시 이후의 첫봉에 바로 false가 되어서
시작시간~0시까지만 진입청산이 발생하게 됩니다.
즐거운 하루되세요
> 이만스닥 님이 쓴 글입니다.
> 제목 : 시스템 작동 기간 관련 질문 있습니다.
> input : 미국시작(223000),미국종료(060000);
if (sdate != sdate[1] and stime >= 미국종료) or
(sdate == sdate[1] and stime >= 미국종료 and stime[1] < 미국종료) Then
{
Tcond1 = False;
}
라고 하셨는데요, 이해가 가지 않는 부분이 있어 여쭤봅니다.
Tcod1= False라는 의미는 해당 조건이 만족되면 매매를 하지 않겠다는 의미인 것은 이해했습니다.
근데 제일 첫번째 문단,
봉의 시작날짜와 봉[1]의 시작날짜가 같지 않으면서 <-- 즉 자정 12시 넘어서 시작되는 첫봉
and
봉의 시작 시간이 미국 종료시간인 060000보다 같거나 클때 라고 적혀있는데요,
이부분이 이해가 안갑니다.
자정 12시가 지나면 01시 부터 시작이니까 봉 시작 시간이 미국 종료시간보다 같거나 큰게 아니라 같거나 작어야하지 않나요??