영업일 조회, 리밸런싱 주기 설정 등 날짜와 관련된 기능을 제공하는 객체입니다.
속성
getPrevWorkingDay(date)
이전 영업일을 가져오는 함수입니다.
파라미터
결과
Sample
var today = new Date();
var prevWorkingDay = IQDate.getPrevWorkingDay(today);
logger.debug(‘prevWorkingDay: ‘ + prevWorkingDay);
JavaScript
복사
getNextWorkingDay(date)
다음 영업일을 가져오는 함수입니다.
파라미터
결과
Sample
var today = new Date();
var nextWorkingDay = IQDate.getNextWorkingDay(today);
logger.debug(‘nextWorkingDay: ‘ + nextWorkingDay);
JavaScript
복사
getPastCalendar(date, years, months, days)
date 날짜로부터 years 년, months 월, days 일 이전의 달력 날짜를 조회하는 함수
파라미터
결과
Sample
IQDate.getPastCalendar(now, 1, 3, 0) //현재(now)로부터 정확히 1년 3개월 전 날짜
JavaScript
복사
setDaily()
날짜 규칙을 매일로 설정합니다.
결과
Sample
IQDate.addRebalSchedule(IQDate.setDaily()) // 리밸런싱 주기를 매일로 설정합니다
JavaScript
복사
setWeekly(weekday)
날짜 규칙을 특정 요일로 설정합니다.
파라미터
결과
Sample
IQDate.addRebalSchedule(IQDate.setWeekly(1)); // 리밸런싱 주기를 매주 월요일로 설정합니다
JavaScript
복사
setMonthlyStart(day)
날짜 규칙을 매월 day 일로 설정합니다.
파라미터
결과
날짜 규칙을 매월 특정 일로 설정한 DateRule 객체를 생성하여 반환
Sample
IQDate.addRebalSchedule(IQDate.setMonthlyStart(15)); // 리밸런싱 주기를 매월 15일로 설정
JavaScript
복사
setMonthlyEnd(day_offset)
날짜 규칙을 매월 말일로부터 이전 day_offset 번째 날짜로 설정합니다.
파라미터
결과
Sample
IQDate.addRebalSchedule(IQDate.setMonthlyEnd(2)); // 리밸런싱 주기를 매월 말일의 전일로 설정
JavaScript
복사
setMonthlyTradingDays(day_offset)
날짜 규칙을 매월 day_offset 번째 거래일로 설정합니다.
파라미터
결과
Sample
IQDate.addRebalSchedule(IQDate.setMonthlyTradingDays(5)) //매월 5번째 거래일에 리밸런싱하도록 설정
JavaScript
복사
setYearly(month, day)
날짜 규칙을 매년 특정 날짜(월, 일)로 설정합니다.
파라미터
결과
Sample
IQDate.addRebalSchedule(IQDate.setYearly(5, 31)); // 리밸런싱 주기를 매년 5월 31일로 설정
JavaScript
복사
addRebalSchedule(dateRule)
리밸런싱을 원하는 날짜 규칙을 설정하여 추가합니다.
파라미터
결과
Sample
IQDate.addRebalSchedule(IQDate.setWeekly(1)); // 매주 월요일 리밸런싱
IQDate.addRebalSchedule(IQDate.setMonthlyStart(15)) // 매월 15일 리밸런싱 추가
JavaScript
복사
resetRebalSchedule()
addRebalSchedule 함수로 추가한 리밸런싱 DateRule 들을 모두 제거하고 초기화 합니다.
Sample
IQDate.addRebalSchedule(IQDate.setMonthlyStart(1)); // 리밸런싱 주기를 매월 1일로 설정
IQDate.resetRebalSchedule(); // 리밸런싱 주기 초기화
IQDate.addRebalSchedule(IQDate.setMonthlyStart(15)); // 리밸런싱 주기를 매월 15일로 재설정
JavaScript
복사
isRebalancingDay(date)
date 가 미리 설정한 리밸런싱 일자에 해당하면 true 값을 반환합니다. 만일 리밸런싱 설정 일자가 휴일에 해당하는 경우가 발생하면, 리밸런싱 규칙 별로 아래와 같은 대체 영업일을 리밸런싱 해당일로 판단합니다.
• setWeekly(w): 지정된 w요일이 휴일인 경우가 발생하면, 그 다음 영업일에 리밸런싱
• setMonthlyStart(d): 해당 월의 d일이 휴일인 경우, 그 다음 영업일에 리밸런싱
• setMonthlyEnd(d): 해당 월말로부터 d번째 일이 휴일인 경우, 그 이전 영업일에 리밸런
• setYearly(m, d): 해당년도 m월 d일이 휴일인 경우, 그 다음 영업일에 리밸런싱
파라미터
결과
Sample
function initialize() {
IQDate.addRebalSchedule(IQDate.setMonthlyStart(1)); // 매월 1일 리밸런싱 설정
}
function onDayClose(now) { // 주의: onDayClose 함수는 now가 영업일일 때만 호출됨
if (IQDate.isRebalancingDay(now)) { // now가 1/2, 2/1, 3/2, 4/1, 5/2, …, 12/1 일 때 true
// 리밸런싱 수행
}
}
JavaScript
복사