커뮤니티

시간을 정해서 시스템을 적용하는데 문의드립니다.

프로필 이미지
kwon0718
2016-08-05 05:38:24
129
글번호 100740
답변완료
안녕하세요. 수고 많으십니다. 제가 처음이어서 모르는 것이 많습니다. 아래와 같이 while문을 써서 "[3010]전략실행차트(실시간)"에서 시스템적용을 눌렀는데 멈추지 않고 계속 돌아가고 있습니다. WHILE STIME >= 시작시간 OR STIME <= 종료시간 { 시스템매매수식내용~~~ } 원래의도는 정한 시간 사이에서만 작동하도록 하고 의도였고 처음 작성해서 시스템성능보고서를 볼려고 했는데 시스템적용 후 멈추질 않는 상태입니다. 나름 이유를 생각해보니 실시간시스템은 계속 동작중인 상태여서 조건이 만족하면 멈추지 않고 계속 돌아가는 것이 아닌가 합니다. 그렇다면 실시간차트에서 시스템성능보고서를 볼려면 위 특정한 날짜의 기간을 정한다음 시스템적용을 해야 하는지요? xxxx년xx월xx일부터 xxxx년xx월xx일까지의 기간에 대해서만 시스템적용을 해라 이러한 조건문을 맨 위에 작성해 놔야 하는지요. 아니면 시물레이션차트에서 시스템적용을 해보아야 하는지... 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-08-05 11:45:38

안녕하세요 예스스탁입니다. 1 현재봉의 시간이 지정한 시간에 포함되는지 체크하는 부분이므로 WHILE와 같은 루프문으로 처리할 내용은 아닙니다. 수식은 차트에 적용되면 차트 첫봉부터 현재봉쪽으로 오면서 수식이 계산됩니다. 현재봉에서 과거봉의 특정값을 가져와 어떤 값을 찾거나 계산할때 WHILE이 사용됩니다. 현재봉의 시간이 지정한 시간사이인지 판단하는 내용이므로 if문으로 처리하시면 됩니다. 아래 내용 참고하시기 바랍니다. 지정한 시작시간이 되면 tcond가 true가 되고 지정한 종료시간이 되면 false가 됩니다. tcond가 true일때만 지정한 신호가 발생하도록 하시면 됩니다. input : 시작시간(90000), 종료시간(130000); var : Tcond(false); if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then Tcond = true; if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then Tcond = false; if Tcond == true then{ 시스템매매수식내용~~~ } 2 WHILE문은 지정한 조건이 만족하면 계속 수행됩니다. 조건상 WHILE문을 빠져나가는 조건이 충족되지 않으면 무한루프가 되므로 작성시 주의하시기 바랍니다. WHILE STIME >= 시작시간 OR STIME <= 종료시간 { 지정하신 조건은 현재 시간이 시작시간보다 크거나 작으면 조건이 충족되므로 해당 봉에서 무한으로 루프를 돌게 되고 빠져나가지 못하게 됩니다. 3 실시간 차트는 국내종목의 경우 최대 1만개, 해외선물은 5000개 까지 조회가 됩니다. 긴기간을 시뮬레이션 해서 보고자 하시면 시뮬레이션 차트에서 기간지정해 데이터를 부른후 시스템을 적용해야 합니다. 수식안에서는 차트의 기간이나 조회갯수등은 지정할수 없습니다. 사용자가 설정해 열은 차트에 시스템은 적용이 되어 데이터를 사용해 계산해 신호를 발생합니다. 차트를 여신후에 수식을 적용하는데 차트 전체 기간에서 지정한 날짜 사이에만 신호를 발생하고자 하시면 아래와 같이 수식에 날짜 조건을 추가하시면 됩니다. input : 시작시간(90000), 종료시간(130000); input : 시작날짜(20160101), 종료날짜(20160730); var : Tcond(false),Dcond(false); if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then Tcond = true; if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then Tcond = false; if sdate == 시작날짜 or (sdate > 시작날짜 and sdate[1] < 시작날짜) Then Dcond = true; if sdate == 종료날짜 or (sdate > 종료날짜 and sdate[1] < 종료날짜) Then Dcond = false; if Tcond == true and Dcond == true then{ 시스템매매수식내용~~~ } 즐거운 하루되세요 > kwon0718 님이 쓴 글입니다. > 제목 : 시간을 정해서 시스템을 적용하는데 문의드립니다. > 안녕하세요. 수고 많으십니다. 제가 처음이어서 모르는 것이 많습니다. 아래와 같이 while문을 써서 "[3010]전략실행차트(실시간)"에서 시스템적용을 눌렀는데 멈추지 않고 계속 돌아가고 있습니다. WHILE STIME >= 시작시간 OR STIME <= 종료시간 { 시스템매매수식내용~~~ } 원래의도는 정한 시간 사이에서만 작동하도록 하고 의도였고 처음 작성해서 시스템성능보고서를 볼려고 했는데 시스템적용 후 멈추질 않는 상태입니다. 나름 이유를 생각해보니 실시간시스템은 계속 동작중인 상태여서 조건이 만족하면 멈추지 않고 계속 돌아가는 것이 아닌가 합니다. 그렇다면 실시간차트에서 시스템성능보고서를 볼려면 위 특정한 날짜의 기간을 정한다음 시스템적용을 해야 하는지요? xxxx년xx월xx일부터 xxxx년xx월xx일까지의 기간에 대해서만 시스템적용을 해라 이러한 조건문을 맨 위에 작성해 놔야 하는지요. 아니면 시물레이션차트에서 시스템적용을 해보아야 하는지... 감사합니다.