커뮤니티
내가 만든 전략들과 지식을 공유하고 토론합니다.

IQDate 의 isRebalancingDay 질문이 있습니다.

jongwony 2020.05.24 19:52 조회수  131 추천 0

IQDate.addRebalSchedule(IQDate.setWeekly(1));  

IQDate.addRebalSchedule(IQDate.setMonthlyStart(15));


이런식으로 2개의 규칙을 추가하고 onDayClose 함수 안에서 isRebalancingDay 를 호출했을때,

월요일이라서 리밸런싱을 진행하는지, 15일이라서 리밸런싱을 진행하는지 여부에 따라 다른 로직을 수행하기 위해 아래와 같이 구현해보았습니다.


if (IQDate.isRebalancingDay(now)) {
        if (now.getDate() == 15 && now.getDay != 1) {
            // 15일인데 월요일이 아닐때
        } else if (now.getDate() !=15 && now.getDay == 1) {
            // 15일은 아닌데 월요일일때
        } else if (now.getDate() == 15 && now.getDay == 1) {
            // 15일이고 월요일일때
        }
    }


그런데 여기서 isRebalancingDay 를 빼도 될거 같아서 생각해보니 모든 경우의 수에 대해 now.getDate(), now.getDay() 등의 함수를 이용해서 onDayClose 안에 모든 날짜 규칙을 if 문 으로 분기하는 식으로 구현해도 문제가 없을지 궁금합니다.


댓글 1
안녕하세요 jongwony 님

addRebalSchedule(), isRebalancingDay() 는 저희가 리밸런싱 날짜 설정을 좀더 쉽게 하고자 제공하는 것이지 절대적인 것은 아닙니다.  말씀하신것 처럼 isRebalancingDay()를 빼고 getDate() 함수 같은 날짜 함수를 이용하여 리밸런싱 규칙을 만들어도 문제는 없습니다.
다만, 의도 한대로 잘 만들어야겠죠.  예를들어 now.getDate() == 15 같은 경우 15일이 휴일이면 어떻게 할지 좀더 고민이 필요해 보입니다. 

감사합니다.
인텔리퀀트 2020.05.25 13:43
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글