#공통, 전략
[설명]
당일시가에서 전일움직임 폭의 일정%이상 상승해서 처음 터치하면 즉시 매수진입
당일시가에서 전일움직임 폭의 일정%이상 하락해서 처음 터치하면 즉시 매도진입
지정시간에 당일청산하고 거래 종료하는 수식입니다.
input : Rate(30),xTime(153000);
var : Tcond(False),ST(Nan),R(0);
//ST에 값이 저장된 이후
//당일청산시간이 첫봉시간보다 작으면(다음날 새벽에 청산을 의미함)
IF IsNaN(ST) == False and 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);
}
}
//AtStop,AtLimit이 값셋팅되면 다음봉 현재가와 비교해 신호가 발생하므로
//당일 마지막봉이면 다음봉시가(다음날시가)와 오늘폭을 기준으로 값을 셋팅해서
//첫봉에서도 즉시 신호발생할 수 있게하고
//일간 마지막봉이 아닌 경우에는 당일시초가와 전일폭을 이용해 계산해서 진입하게 함
//일간마지막봉일때
if NextBarBdate != Bdate Then
{
//당일폭의 일정%값
R = (dayhigh(0)-dayLow(0))*(Rate/100);
//시초가+R값 터치시 매수진입
buy("매수1", atstop, NextBarOpen+R);
//시초가+R값 터치시 매도진입
Sell("매도1", atstop, NextBarOpen-R);
}
Else //마지막봉이 아닐때(NextBarBdate == Bdate)
{
//전일폭의 일정%값
R = (dayhigh(1)-dayLow(1))*(Rate/100);
//현재 매수포지션이 아니고
//영업일 변경이후 종료시간 직전까지
//당일고가가 시초가+R값보다 작은 상태에서
//가격이 상승해서 처음 시초가+R값을 터치시 매수진입
if MarketPosition <= 0 and Tcond == true and dayhigh < dayopen(0)+R Then
buy("매수", atstop, dayOpen(0)+R);
//현재 매도포지션이 아니고
//영업일 변경이후 종료시간 직전까지
//당일저가가 시초가-R값보다 큰 상태에서
//가격이 하락해서 처음 시초가-R값을 터치시 매도진입
if MarketPosition >= 0 and Tcond == true and daylow > dayopen(0)-R Then
sell("매도",atstop, dayOpen(0)-R);
}
JavaScript
복사
