커뮤니티

문의 드립니다.~~~~

프로필 이미지
예스요
2021-11-01 22:15:51
796
글번호 153304
답변완료
11월 1일 장에서 아래 시간 변수로는 16시 부터 작동되어야 하는데 오전 7시 부터 17시까지 시스템이 작동되었는데 왜 그런지 궁금합니다~~ input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort();
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2021-11-03 12:53:20

안녕하세요 예스스탁입니다. if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } StartTime3이 03시인데 10월 30일에 06시 장종료 후에 다음영업일이 11월 1일 7시라 sdate != sdate[1] and stime >= StartTime3 조건에 충족이 되어 Tcond가 true가 됩니다. 월요일은 제외하고 체크하게 수정해 드립니다. input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 11월 1일 장에서 아래 시간 변수로는 16시 부터 작동되어야 하는데 오전 7시 부터 17시까지 시스템이 작동되었는데 왜 그런지 궁금합니다~~ input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort();
프로필 이미지

예스요

2021-11-03 15:01:57

도움주신 식을 대입해 실행해보니 첨부파일과 같이 실행됩니다~~ 시간별로 나누어서 수식을 구현하는 것이 참 어렵네요~~ 근본적인 해결 방법을 알고 싶네요~~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다.~~~~ > 안녕하세요 예스스탁입니다. if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } StartTime3이 03시인데 10월 30일에 06시 장종료 후에 다음영업일이 11월 1일 7시라 sdate != sdate[1] and stime >= StartTime3 조건에 충족이 되어 Tcond가 true가 됩니다. 월요일은 제외하고 체크하게 수정해 드립니다. input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 11월 1일 장에서 아래 시간 변수로는 16시 부터 작동되어야 하는데 오전 7시 부터 17시까지 시스템이 작동되었는데 왜 그런지 궁금합니다~~ input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort();
프로필 이미지

예스스탁 예스스탁 답변

2021-11-03 15:35:04

안녕하세요 예스스탁입니다. 1 올려주신 내용에 진입식이 없어 해당부분까지 검증해 드리기 어렵습니다. 아래식을 별도의 시스템으로 작성해 차트에 적용해 보시기 바랍니다. 진입식이 모두 지정한 시간사이에만 발생합니다. 해당 시간이외에 발생하면 진입수식에서 Tcond == true라는 조건이 정상적으로 적용되어 있는지 확인하셔야 할것 같습니다. 2 이전답변에 누락된 부분이 있어 추가해 드립니다. 시간은 240000이 없습니다. 0시로 지정하셔야 합니다. 3 input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if Tcond == true Then { if c > O Then Buy(); if C < O Then Sell(); } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다.~~~~ > 도움주신 식을 대입해 실행해보니 첨부파일과 같이 실행됩니다~~ 시간별로 나누어서 수식을 구현하는 것이 참 어렵네요~~ 근본적인 해결 방법을 알고 싶네요~~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다.~~~~ > 안녕하세요 예스스탁입니다. if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } StartTime3이 03시인데 10월 30일에 06시 장종료 후에 다음영업일이 11월 1일 7시라 sdate != sdate[1] and stime >= StartTime3 조건에 충족이 되어 Tcond가 true가 됩니다. 월요일은 제외하고 체크하게 수정해 드립니다. input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 11월 1일 장에서 아래 시간 변수로는 16시 부터 작동되어야 하는데 오전 7시 부터 17시까지 시스템이 작동되었는데 왜 그런지 궁금합니다~~ input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort();
프로필 이미지

예스요

2021-11-03 16:57:32

진입식까지 올립니다 검토 부탁드립니다~~ input : 진입틱수(10); input : 최소손실틱(0),손실감소틱(10); input : StartTime1(160000),EndTime1(170000); input : StartTime2(000000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if Tcond == true Then { if Index == 0 or TotalTrades > TotalTrades[1] Then { OO = O; HH = H; LL = L; } if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then if MarketPosition == 0 and OO > 0 and LL > OO-PriceScale*진입틱수 Then Sell("시작매도",AtLimit,LL+PriceScale*진입틱수); if MarketPosition == 0 and OO > 0 and HH < OO+PriceScale*진입틱수 Then Buy("시작매수",AtLimit,HH-PriceScale*진입틱수); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 문의 드립니다.~~~~ > 안녕하세요 예스스탁입니다. 1 올려주신 내용에 진입식이 없어 해당부분까지 검증해 드리기 어렵습니다. 아래식을 별도의 시스템으로 작성해 차트에 적용해 보시기 바랍니다. 진입식이 모두 지정한 시간사이에만 발생합니다. 해당 시간이외에 발생하면 진입수식에서 Tcond == true라는 조건이 정상적으로 적용되어 있는지 확인하셔야 할것 같습니다. 2 이전답변에 누락된 부분이 있어 추가해 드립니다. 시간은 240000이 없습니다. 0시로 지정하셔야 합니다. 3 input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if Tcond == true Then { if c > O Then Buy(); if C < O Then Sell(); } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다.~~~~ > 도움주신 식을 대입해 실행해보니 첨부파일과 같이 실행됩니다~~ 시간별로 나누어서 수식을 구현하는 것이 참 어렵네요~~ 근본적인 해결 방법을 알고 싶네요~~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다.~~~~ > 안녕하세요 예스스탁입니다. if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } StartTime3이 03시인데 10월 30일에 06시 장종료 후에 다음영업일이 11월 1일 7시라 sdate != sdate[1] and stime >= StartTime3 조건에 충족이 되어 Tcond가 true가 됩니다. 월요일은 제외하고 체크하게 수정해 드립니다. input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (DayOfWeek(sDate) != 1 and sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 11월 1일 장에서 아래 시간 변수로는 16시 부터 작동되어야 하는데 오전 7시 부터 17시까지 시스템이 작동되었는데 왜 그런지 궁금합니다~~ input : StartTime1(160000),EndTime1(170000); input : StartTime2(240000),EndTime2(010000); input : StartTime3(030000),EndTime3(040000); input : StartTime4(9999999999),EndTime4(9999999999); var : Tcond(false); var : OO(0),HH(0),LL(0); if (sdate != sdate[1] and stime >= EndTime1) or (sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime1) or (sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime2) or (sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime2) or (sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime3) or (sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= StartTime3) or (sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then { Tcond = true; OO = O; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime4) or (sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then { Tcond = False; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort();