//영업일 시작부터 xTime까지만 거래하고
//xTime에 포지션이 있으면 청산.
input : xTime(060000);
var : Tcond(False),ST(0);
//당일청산시간이 첫봉시간보다 작으면(해외선물과 같이 다음날 새벽에 청산을 의미함)
IF xTime < ST Then
{
//0시 이후 첫봉에 당일청산 셋팅
if sDate != sDate[1] Then
SetStopEndofday(xTime);
}
//지정한 xTime이후 첫봉이 발생하면 Tcond는 False
if (sdate != sdate[1] and stime >= xTime) or
(sdate == sdate[1] and stime >= xTime and stime[1] < xTime) Then
Tcond = False;
//영업일 변경
if Bdate != Bdate[1] Then
{
//Tcond는 true
Tcond = true;
//당일 첫봉 시간
ST = sTime;
//당일청산시간이 첫봉시간보다 작으면(해외선물과 같이 다음날 새벽에 청산을 의미함)
IF xTime < ST Then
{
//당일청산 해제
SetStopEndofday(0);
}
Else //아니면(첫봉날짜와 같은날 당일청산)
{
//당일청산 설정
SetStopEndofday(xTime);
}
}
//지정한 시작시간과 종료시간 사이이면
if Tcond == true Then
{
//20이평 상향돌파 매수
if CrossUp(C,ma(C,20)) Then
Buy("b");
//20이평 하향이탈 매도
if CrossDown(C,ma(C,20)) Then
Sell("s");
}
JavaScript
복사
[설명]
#공통
SetStopEndofday는 시간을 지정해 당일청산을 하는 함수입니다.
해당함수에 시간을 지정하면 지정한 시간에 포지션이 있으면 청산하고
당일 밤 0시까지 진입을 제한하게 됩니다.
그러므로 일반적으로 국내 주식과 같이 24시간 거래를 하지 않는 종목인 경우에는
SetStopEndofday(150000);과 같이 지정해 당일 청산을 했습니다.
하지만 24시간 거래되는 종목의 경우에 새벽시간에 당일청산하는 경우가 많은데
SetStopEndofday(060000);과 같이 새벽시간을 지정하면 06시부터 밤 0시까지
진입이 제한되어 의도치 않게 0~6시 사이에만 신호가 발생하게 됩니다.
그러므로 당일청산을 지정할 때는 새벽에 청산할 경우에는
예제와 같이 작성해서 영업일 변경이 될 때 당일청산을 해제하고
밤 0시에 당일청산을 셋팅하게 작성이 되어야 합니다.