커뮤니티

코드 구현이 잘 안되어서 질문올렸습니다.

프로필 이미지
퀀트드래곤
2020-02-20 08:55:15
383
글번호 136135
답변완료
## 전략 ## # 진입 : 개장시 갭이 발생한 날에 갭을 메우면 갭 방향으로 매수 혹은 매도 # 예) 전일 종가 90, 당일 시초가 100 -> 당일 가격이 90으로 떨어져서 갭을 메우면 매수(다시 위로 간다고 판단) # 예) 전일 종가 100, 당일 시초가 90 -> 당일 가격이 100으로 올라가서 갭을 메우면 매도(다시 아래로 간다고 판단) # 청산 : 종가 청산 # 진입조건에 당일 재진입 금지 #----------------------------------------------------------------------------------------- # 진입 # # 매수 진입 # if DayClose(1)> DayOpen and ExitDate <> date then # 갭상승으로 장 시작하면, 첫 진입이라면 buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 매도 진입 # if DayClose(1)< DayOpen and ExitDate <> date then # 갭하락으로 장 시작하면, 첫 진입이라면 buy("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 장마감 청산 if time > 153000 and MarketPosition == 1 Then ExitLong("매수청산", OnClose); if time > 153000 and MarketPosition == -1 Then ExitShort("매도청산", OnClose);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-02-20 13:14:33

안녕하세요 예스스탁입니다. 1 매도가 buy 함수로 작성되어 있어 수정했습니다. 2 청산함수의 최소 매개변수는 1입니다. ExitDate(1)이 가장최근 청산의 날짜입니다. 진입과 관련된 함수만 매개변수 0이 가능합니다. 3 시간청산은 당일청산 함수 이용하시면 됩니다. 4 # 진입 # # 매수 진입 # if DayClose(1)> DayOpen and ExitDate(1) <> date then # 갭상승으로 장 시작하면, 첫 진입이라면 buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 매도 진입 # if DayClose(1)< DayOpen and ExitDate(1) <> date then # 갭하락으로 장 시작하면, 첫 진입이라면 sell("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 SetStopEndofday(153000); 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : 코드 구현이 잘 안되어서 질문올렸습니다. > ## 전략 ## # 진입 : 개장시 갭이 발생한 날에 갭을 메우면 갭 방향으로 매수 혹은 매도 # 예) 전일 종가 90, 당일 시초가 100 -> 당일 가격이 90으로 떨어져서 갭을 메우면 매수(다시 위로 간다고 판단) # 예) 전일 종가 100, 당일 시초가 90 -> 당일 가격이 100으로 올라가서 갭을 메우면 매도(다시 아래로 간다고 판단) # 청산 : 종가 청산 # 진입조건에 당일 재진입 금지 #----------------------------------------------------------------------------------------- # 진입 # # 매수 진입 # if DayClose(1)> DayOpen and ExitDate <> date then # 갭상승으로 장 시작하면, 첫 진입이라면 buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 매도 진입 # if DayClose(1)< DayOpen and ExitDate <> date then # 갭하락으로 장 시작하면, 첫 진입이라면 buy("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 장마감 청산 if time > 153000 and MarketPosition == 1 Then ExitLong("매수청산", OnClose); if time > 153000 and MarketPosition == -1 Then ExitShort("매도청산", OnClose);