첨부 이미지
그림1
안녕하세요.
특정시간 09:00~13:00의 고점 저점을 16:00이후에
돌파시 진입하도록 작성했는데 제대로 신호가 나오지 않는데
제가 작성한 코드 점검 부탁드립니다.
종목은 나스닥 입니다
var: ST(160000), ET(060000), baselineST(090000), baselineET(130000);
var: HH(0), LL(0), Tcond(False), BlineCond(false);
if sTime >= baselineST && sTime <= baselineET && BlineCond == false then
{
HH = TimeHigh(baselineST,baselineET);
LL = Timelow(baselineST,baselineET);
}
else
{
BlineCond = false;
}
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;
Condition1 = CrossUp(C,HH) ;
Condition2 = CrossDown(C,LL) ;
If Tcond && condition1 && MarketPosition != 1 Then
{
Buy();
}
If Tcond && condition2 && MarketPosition != -1 Then
{
Sell();
}
SetStopEndOfday(ET);
답변 1
예스스탁
예스스탁 답변
2025-04-21 15:02:40
안녕하세요
예스스탁입니다.
당일청산은 지정한 시간에 포지션이 있으면 청산을 하고
이후 밤 0시까지 진입을 막게 됩니다.
해외선물에서 새벽에 청산할 경우
날짜가 넘어가는 0시봉에 셋팅하고
영업일 변경시간에 해제되게 해주셔야 합니다.
아래수식 하단에 변경된 내용 참고하시기 바랍니다.
var: ST(160000), ET(060000), baselineST(090000), baselineET(130000);
var: HH(0), LL(0), Tcond(False), BlineCond(false);
if sTime >= baselineST && sTime <= baselineET && BlineCond == false then
{
HH = TimeHigh(baselineST,baselineET);
LL = Timelow(baselineST,baselineET);
}
else
{
BlineCond = false;
}
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;
Condition1 = CrossUp(C,HH) ;
Condition2 = CrossDown(C,LL) ;
If Tcond && condition1 && MarketPosition != 1 Then
{
Buy();
}
If Tcond && condition2 && MarketPosition != -1 Then
{
Sell();
}
#0시 당일청산 셋팅
if sDate != sDate[1] Then
SetStopEndOfday(ET);
#영업일 변경되면 해제
if Bdate != Bdate[1] Then
SetStopEndofday(0);
즐거운 하루되세요
> eiger 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
특정시간 09:00~13:00의 고점 저점을 16:00이후에
돌파시 진입하도록 작성했는데 제대로 신호가 나오지 않는데
제가 작성한 코드 점검 부탁드립니다.
종목은 나스닥 입니다
var: ST(160000), ET(060000), baselineST(090000), baselineET(130000);
var: HH(0), LL(0), Tcond(False), BlineCond(false);
if sTime >= baselineST && sTime <= baselineET && BlineCond == false then
{
HH = TimeHigh(baselineST,baselineET);
LL = Timelow(baselineST,baselineET);
}
else
{
BlineCond = false;
}
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;
Condition1 = CrossUp(C,HH) ;
Condition2 = CrossDown(C,LL) ;
If Tcond && condition1 && MarketPosition != 1 Then
{
Buy();
}
If Tcond && condition2 && MarketPosition != -1 Then
{
Sell();
}
SetStopEndOfday(ET);