커뮤니티

이전 매수(or청산)후 일정 시간 경과후 추가 매수시

프로필 이미지
포에니
2022-11-01 16:27:58
991
글번호 163415
답변완료
이전 매수후 60분이 지나면 매수하려는데.. 앞서 알려주신 수식을 적용한바.. 잘되다가.. 아래같은경우..(그림 1) 27일에 추가로 저점에서 매수하여야 하는데..(그림 2) 안되더군요. 그래서 혹 시간변수 때문인가 싶어서 그부분을 주석처리하니.. ( 그림2 ) 처럼 매수가 됩니다. Condition1 = MarketPosition == 0 and MarketPosition(1) != 0 and ExitDate(1) == sDate and TimeToMinutes(sTime) < TimeToMinutes(ExitTime(1))+120; .... if CurrentContracts > CurrentContracts[1] Then T1 = TimeToMinutes(sTime); 위와같이 각 매수마다 시간값저장하고.. 이어지는 2번째(b2r)매수는... ......if.....then..... Else if MarketPosition == 1 and Entry < 1 and MaxEntries == 1 and TimeToMinutes(sTime) >= T1+60 #이전 매수후 60분 경과후 추가매수 and Crossup(Rsiv, 30) Then buy("b2tr",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.2)/min(NextBarOpen,LatestEntryPrice(0)*0.97))); 이렇게 하니 추가매수 안되던게(그림 1)... and TimetoMinutes(stime) >= T1+60 을 주석처리하니..추가매수가 됩니다.(그림 2) 매뉴얼을 봐도 이해가 안되서... 도움부탁드립니다.ㅠㅠ 예시그림 하나더 같은방식으로 매수안되고(그림 3) , 주석처리후 추가매수되는거(그림4) 더 올립니다. 역시 수식은 같습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-11-01 13:55:32

안녕하세요 예스스탁입니다. TimeToMinutes(sTime) >= T1+60 위 내용은 진입시간보다 현재시간이 60분이상 크다라는 조건입니다. b1의 진입시간이 14시라면 t1은 840(60분*14)이고 다음날도 현재 TimeToMinutes이 840+60이상일때만 진입하게 됩니다. 현재 올리신 그림으로 보면 b1진입 후 날짜가 변경이 되었습니다. 날짜가 변경이 된 경우에 60분 경과는 의미가 없습니다. 수량증가시 날짜도 같이 저장하시고 진입당일이면 60분이상 경과한 이후이고 진입 다음날이면 시간조건 없이 들어가게 하셔야 합니다. 날짜가 변경되면 물리적인 시간으로는 무조건 60분이 넘어 해당 조건이 불필요 합니다. if CurrentContracts > CurrentContracts[1] Then { T1 = TimeToMinutes(sTime); D1 = bdate; } if MarketPosition == 1 and Entry < 1 and MaxEntries == 1 and ((bdate == D1 and TimeToMinutes(sTime) >= T1+60) or (bdate > d1)) and Crossup(Rsiv, 30) Then buy("b2tr",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.2)/min(NextBarOpen,LatestEntryPrice(0)*0.97))); 즐거운 하루되세요 > 포에니 님이 쓴 글입니다. > 제목 : 이전 매수(or청산)후 일정 시간 경과후 추가 매수시 > 이전 매수후 60분이 지나면 매수하려는데.. 앞서 알려주신 수식을 적용한바.. 잘되다가.. 아래같은경우..(그림 1) 27일에 추가로 저점에서 매수하여야 하는데..(그림 2) 안되더군요. 그래서 혹 시간변수 때문인가 싶어서 그부분을 주석처리하니.. ( 그림2 ) 처럼 매수가 됩니다. Condition1 = MarketPosition == 0 and MarketPosition(1) != 0 and ExitDate(1) == sDate and TimeToMinutes(sTime) < TimeToMinutes(ExitTime(1))+120; .... if CurrentContracts > CurrentContracts[1] Then T1 = TimeToMinutes(sTime); 위와같이 각 매수마다 시간값저장하고.. 이어지는 2번째(b2r)매수는... ......if.....then..... Else if MarketPosition == 1 and Entry < 1 and MaxEntries == 1 and TimeToMinutes(sTime) >= T1+60 #이전 매수후 60분 경과후 추가매수 and Crossup(Rsiv, 30) Then buy("b2tr",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.2)/min(NextBarOpen,LatestEntryPrice(0)*0.97))); 이렇게 하니 추가매수 안되던게(그림 1)... and TimetoMinutes(stime) >= T1+60 을 주석처리하니..추가매수가 됩니다.(그림 2) 매뉴얼을 봐도 이해가 안되서... 도움부탁드립니다.ㅠㅠ 예시그림 하나더 같은방식으로 매수안되고(그림 3) , 주석처리후 추가매수되는거(그림4) 더 올립니다. 역시 수식은 같습니다.