커뮤니티

문의드립니다

프로필 이미지
시고르시고르
2025-10-13 13:53:26.0
50
글번호 194569
답변완료
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ET1(0),XT1(0),ET2(0),XT2(0),Tcond(False),entry(0); ET1 = 223000; XT1 = 050000; var : cnt(0); Array : DO[20](0),DH[20](0),DL[20](0),DC[20](0); if (sDate != sDate[1] and sTime >= XT1) or (sDate == sDate[1] and sTime >= XT1 and sTime[1] < XT1) Then { Tcond = False; } if (sDate != sDate[1] and sTime >= ET1) or (sDate == sDate[1] and sTime >= ET1 and sTime[1] < ET1) Then { Tcond = true; } //if (sDate != sDate[1] and sTime >= XT1) or // (sDate == sDate[1] and sTime >= XT1 and sTime[1] < XT1) Then //{ // Tcond = False; //} if Tcond == True Then { if //DO[0]>DC[1] and MarketPosition == 0 and entry == 0 Then { then Buy("매수1",AtStop,25360); } 이런 식으로 진입식을 하면 나스닥 10월 9일 새벽 다섯시가 넘어서 5시30분봉에 진입하는 경우가 생기는 것 같습니다. 잘 이해가 안되서 그런데 설명 부탁드리겠습니다. 메시지 로그 해보니 정상으로 트루 폴스 바뀌는것으로 보입니다. 그리고 Tcond = false 만드는 부분이 앞에 있지 않고 뒤로 갔을경우(//친부분처럼) 또 뭔가 바뀔때가 있는데(원래는 시간대별 시종고저 잡는 파트였음) 순서변화가 어떤 차이를 일으키는 경우가 있는지 이유를 잘 모르겠습니다. 감사합니다.
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2025-10-13 10:42:10.0

안녕하세요 예스스탁입니다. 1 XT1과 ET1사이에 신호가 발생하면 Tcond가 false가 안되거나 혹은 시간조건이 동시충족되어 false후 바로 true가 된 경우인데 올려주신 수식 내용만으로 정확히 답변드리기 어렵습니다. 시스템식에 messagelog로 Tcond값을 찍어서 확인해 보셔야 할 것 같습니다. 확인이 어려우시면 02-3453-1060으로 전화주시기 바랍니다. 2 수식은 지정한 시간이후 첫봉을 조건으로 합니다. 시작시간과 종료시간이 동시충족되면 Tcond = false로 만드는 구문이 true로 만드는 구분보다 위이 있을 때와 아래에 있을 때 다르게 됩니다. 수식은 위에서 아래로 읽어내려갑니다. 장이 조기 종료되거나 거래가 없어 봉이 생기지 않으면 0시 이후 첫봉이 종료시간과 시작시간이 동시충족될때 false구분이 위에 있으면 Tcond가 먼저 false가 되고 바로 true로 변경되어 진입이 가능하게 되지만 아래에 있으면 true가 먼저 되고 false가 되므로 해당일에 더이상 진입을 못하게 됩니다. 이런 이유로 보통 false구분을 위에 위치하게 작성합니다. 즐거운 하루되세요 > 시고르시고르 님이 쓴 글입니다. > 제목 : 문의드립니다 > var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ET1(0),XT1(0),ET2(0),XT2(0),Tcond(False),entry(0); ET1 = 223000; XT1 = 050000; var : cnt(0); Array : DO[20](0),DH[20](0),DL[20](0),DC[20](0); if (sDate != sDate[1] and sTime >= XT1) or (sDate == sDate[1] and sTime >= XT1 and sTime[1] < XT1) Then { Tcond = False; } if (sDate != sDate[1] and sTime >= ET1) or (sDate == sDate[1] and sTime >= ET1 and sTime[1] < ET1) Then { Tcond = true; } //if (sDate != sDate[1] and sTime >= XT1) or // (sDate == sDate[1] and sTime >= XT1 and sTime[1] < XT1) Then //{ // Tcond = False; //} if Tcond == true Then Buy(); 이런 식으로 진입식을 했는데 새벽 다섯시가 넘어서 5시30분봉에 진입하는 경우가 생기는 것 같습니다. 잘 이해가 안되서 그런데 설명 부탁드리겠습니다. 그리고 Tcond = false 만드는 부분이 앞에 있지 않고 뒤로 갔을경우(//친부분처럼) 또 뭔가 바뀔때가 있는데(원래는 시간대별 시종고저 잡는 파트였음) 순서변화가 어떤 차이를 일으키는 경우가 있는지 이유를 잘 모르겠습니다. 감사합니다.
프로필 이미지

예스스탁 예스스탁 답변

2025-10-13 16:48:45.0

안녕하세요 예스스탁입니다. if Tcond == True Then { if //DO[0]>DC[1] and MarketPosition == 0 and entry == 0 Then { then Buy("매수1",AtStop,25360); } atstop은 봉완성시에 if문이 만족하면 값이 셋팅되고 다음봉 시세와 셋팅된 값을 비교해 신호가 발생합니다. 그러므로 XT1 = 050000; 종료시간을 사용하시는 주기에서 한봉전의 시간으로 지정해 주셔야 합니다. 30분봉이면 XT1 = 043000;으로 지정하시면 4시30분봉 완성시까지 if조건이 충족되면 값이 셋팅되고 5시00분봉까지 신호가 발생할 수 있습니다. 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드립니다 > 안녕하세요 예스스탁입니다. 1 XT1과 ET1사이에 신호가 발생하면 Tcond가 false가 안되거나 혹은 시간조건이 동시충족되어 false후 바로 true가 된 경우인데 올려주신 수식 내용만으로 정확히 답변드리기 어렵습니다. 시스템식에 messagelog로 Tcond값을 찍어서 확인해 보셔야 할 것 같습니다. 확인이 어려우시면 02-3453-1060으로 전화주시기 바랍니다. 2 수식은 지정한 시간이후 첫봉을 조건으로 합니다. 시작시간과 종료시간이 동시충족되면 Tcond = false로 만드는 구문이 true로 만드는 구분보다 위이 있을 때와 아래에 있을 때 다르게 됩니다. 수식은 위에서 아래로 읽어내려갑니다. 장이 조기 종료되거나 거래가 없어 봉이 생기지 않으면 0시 이후 첫봉이 종료시간과 시작시간이 동시충족될때 false구분이 위에 있으면 Tcond가 먼저 false가 되고 바로 true로 변경되어 진입이 가능하게 되지만 아래에 있으면 true가 먼저 되고 false가 되므로 해당일에 더이상 진입을 못하게 됩니다. 이런 이유로 보통 false구분을 위에 위치하게 작성합니다. 즐거운 하루되세요 > 시고르시고르 님이 쓴 글입니다. > 제목 : 문의드립니다 > var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ET1(0),XT1(0),ET2(0),XT2(0),Tcond(False),entry(0); ET1 = 223000; XT1 = 050000; var : cnt(0); Array : DO[20](0),DH[20](0),DL[20](0),DC[20](0); if (sDate != sDate[1] and sTime >= XT1) or (sDate == sDate[1] and sTime >= XT1 and sTime[1] < XT1) Then { Tcond = False; } if (sDate != sDate[1] and sTime >= ET1) or (sDate == sDate[1] and sTime >= ET1 and sTime[1] < ET1) Then { Tcond = true; } //if (sDate != sDate[1] and sTime >= XT1) or // (sDate == sDate[1] and sTime >= XT1 and sTime[1] < XT1) Then //{ // Tcond = False; //} if Tcond == true Then Buy(); 이런 식으로 진입식을 했는데 새벽 다섯시가 넘어서 5시30분봉에 진입하는 경우가 생기는 것 같습니다. 잘 이해가 안되서 그런데 설명 부탁드리겠습니다. 그리고 Tcond = false 만드는 부분이 앞에 있지 않고 뒤로 갔을경우(//친부분처럼) 또 뭔가 바뀔때가 있는데(원래는 시간대별 시종고저 잡는 파트였음) 순서변화가 어떤 차이를 일으키는 경우가 있는지 이유를 잘 모르겠습니다. 감사합니다.