커뮤니티

9:30부터 매매 시작시

프로필 이미지
캣피쉬
2021-02-01 16:42:26
568
글번호 146016
답변완료

첨부 이미지

현재 시뮬창 모습입니다. 그림1은 var : C2(0,Data2); C2 = Data2(c); if crossup(C2,0) then buy(); if crossdown(C2,0) then sell(); 으로 문제가 없습니다. 그림2가 9:30 되면 희안하게 sell 진입이 나오는데 고칠수있을까요? 신규신호만 진입하고 싶습니다. input : StartTime(93000),EndTime(153000); var : Tcond(false,Data1); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { var : C2(0,Data2); C2 = Data2(c); if crossup(C2,0) then buy(); if crossdown(C2,0) then sell(); } SetStopEndofday(EndTime); 감사합니다 !!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-02-02 10:01:18

안녕하세요 예스스탁입니다. 변수선언과 값저장이 if문 안에 있으면 해당 조건이 최초 충족된 이후부터 값을 저장합니다. 그전에는 변수값이 0이므로 9시 30분에 -값이면 바로 진입하게 됩니다. input : StartTime(93000),EndTime(153000); var : Tcond(false,Data1); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { var : C2(0,Data2); C2 = Data2(c); } Plot1(c2); 위 지표 적용해 보시면 C2값의 변화를 보실수 있습니다. 아래와 같이 변수선언이나 할당은 특별한 경우가 아니면 if문에 포함하지 않아야 합니다. input : StartTime(93000),EndTime(153000); var : Tcond(false,Data1); var : C2(0,Data2); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; C2 = Data2(c); if Tcond == true Then { if crossup(C2,0) then buy(); if crossdown(C2,0) then sell(); } SetStopEndofday(EndTime); 즐거운 하루되세요 > 캣피쉬 님이 쓴 글입니다. > 제목 : 9:30부터 매매 시작시 > 현재 시뮬창 모습입니다. 그림1은 var : C2(0,Data2); C2 = Data2(c); if crossup(C2,0) then buy(); if crossdown(C2,0) then sell(); 으로 문제가 없습니다. 그림2가 9:30 되면 희안하게 sell 진입이 나오는데 고칠수있을까요? 신규신호만 진입하고 싶습니다. input : StartTime(93000),EndTime(153000); var : Tcond(false,Data1); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { var : C2(0,Data2); C2 = Data2(c); if crossup(C2,0) then buy(); if crossdown(C2,0) then sell(); } SetStopEndofday(EndTime); 감사합니다 !!