Search
▪️

IQDate

영업일 조회, 리밸런싱 주기 설정 등 날짜와 관련된 기능을 제공하는 객체입니다.
목차

속성

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
복사