커뮤니티

도움 부탁드립니다.

프로필 이미지
예스모어
2020-08-31 03:22:01
575
글번호 141916
답변완료
조건1) time1~time2 시간동안 open<close 이며 단기이평 > 장기이평 이라면 time2 시간에 매수 22:59에 청산을 하는 로직을 구현하고자 하는데 해보니 해당 건 이외에 많은 거래가 일어나고 있습니다. 어떻게해야 하루에 한건만 거래가 발생하게 할 수 있을까요...? ----------------------------------------------------------------- input : time1(080000),time2(100000),time3(225900),shortperiod(20),longperiod(120); var : Summer(False),Year(0); var : v1(0),v2(0),v3(0),v4(0),T1(0),T2(0),T3(0); if bdate != bdate[1] Then { var1 = 0; //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { t1 = time1; t2 = time2; t3 = time3; } Else { t1 = time1+10000; t2 = time2+10000; t3 = time3+10000; } } if timeopen(t1,t2) < timeclose(t1,t2) and ema(C,shortperiod)>ema(C,longperiod) then buy("b",AtMarket); if MarketPosition == 1 then { SetStopEndofday(t3); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-08-31 18:05:38

안녕하세요 예스스탁입니다. input : time1(080000),time2(100000),time3(225900),shortperiod(20),longperiod(120); var : Summer(False),Year(0); var : v1(0),v2(0),v3(0),v4(0),T1(0),T2(0),T3(0); var : O1(0); if bdate != bdate[1] Then { //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { t1 = time1; t2 = time2; t3 = time3; } Else { t1 = time1+10000; t2 = time2+10000; t3 = time3+10000; } O1 = open; } var1 = ma(C,shortperiod); var2 = ma(C,longperiod); if (sdate != sdate[1] and stime >= t1) or (sdate == sdate[1] and stime >= t1 and stime[1] > t1) then { O1 = O; } if (sdate != sdate[1] and stime >= t2) or (sdate == sdate[1] and stime >= t2 and stime[1] > t2) then { if O1 > 0 and C > O1 and var1 > var2 Then buy(); } if time3 > time2 Then SetStopEndofday(t3); else { if sdate != sdate[1] Then SetStopEndofday(t3); if bdate != bdate[1] Then SetStopEndofday(0); } 즐거운 하루되세요 > 예스모어 님이 쓴 글입니다. > 제목 : 도움 부탁드립니다. > 조건1) time1~time2 시간동안 open<close 이며 단기이평 > 장기이평 이라면 time2 시간에 매수 22:59에 청산을 하는 로직을 구현하고자 하는데 해보니 해당 건 이외에 많은 거래가 일어나고 있습니다. 어떻게해야 하루에 한건만 거래가 발생하게 할 수 있을까요...? ----------------------------------------------------------------- input : time1(080000),time2(100000),time3(225900),shortperiod(20),longperiod(120); var : Summer(False),Year(0); var : v1(0),v2(0),v3(0),v4(0),T1(0),T2(0),T3(0); if bdate != bdate[1] Then { var1 = 0; //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { t1 = time1; t2 = time2; t3 = time3; } Else { t1 = time1+10000; t2 = time2+10000; t3 = time3+10000; } } if timeopen(t1,t2) < timeclose(t1,t2) and ema(C,shortperiod)>ema(C,longperiod) then buy("b",AtMarket); if MarketPosition == 1 then { SetStopEndofday(t3); }