Re: 특정시점의 과거 PER, PBR 값 구할 수 있을까요? (자유게시판 질문에 대한 답변)
자유게시판에 서광원님께서 문의하신 내용을 구현하실 수 있도록,
과거 주가(시장) 데이터를 조회하는 방법으로 특정 날짜를 지정해서 조회할 수 있도록 임시방편으로 함수를 만들어 보았습니다.
동작과 사용법에 대한 이해를 위해 공유된 알고리즘을 복사해 가신 후 실행시켜 보시고 나서 활용하시기 바랍니다.
코드의 마지막 부분에 있는 두 개의 함수를 복사해서 본인의 전략 코드에 붙여넣기 하고 사용하시면 될 것 같습니다.
// years, months, days 설정한 만큼의 과거 달력상 날짜 가져오기
getPastCalendar(date, years, months, days)
// 지정한 날짜 (date)가 현재로부터 얼마나 과거 거래일수 만큼 떨어져 있는지 계산하는 함수
getWorkingDayOffset(date)
*** 주의 ***
현재 안전(?)을 위해 300 거래일까지의 과거만 조회 가능하도록 해 놓았습니다.
이 기능을 플랫폼에 내재화할 때에는 그 이상의 과거 값을 조회하는 것도 가능하도록 할 예정입니다.
참고로 전년동기의 재무데이터 update 일자의 Offset을 가져오는 함수는 아래와 같습니다. 플랫폼을 내재화 할때 같이 고려해 주시면 저처럼 자바스크립트 초보들에게 많은 도움이 될것 같습니다. function getYoYDate() { var thisYear = IQIndex.getIndex("001").getDate(0).getFullYear() ; var thisMonth = IQIndex.getIndex("001").getDate(0).getMonth() + 1; var YoYYear; var YoYDate; if (thisMonth >= 1 && thisMonth <= 3) { YoYYear = thisYear - 2; YoYDate = YoYYear + '-12-01'; } else if (thisMonth >= 4 && thisMonth <= 5) { YoYYear = thisYear - 1; YoYDate = YoYYear + '-04-01'; } else if (thisMonth >= 6 && thisMonth <= 8) { YoYYear = thisYear - 1; YoYDate = YoYYear + '-06-01'; } else if (thisMonth >= 9 && thisMonth <= 11) { YoYYear = thisYear - 1; YoYDate = YoYYear + '-09-01'; } else if (thisMonth === 12) { YoYYear = thisYear - 1; YoYDate = YoYYear + '-12-01'; } var Offset = getWorkingDayOffset(YoYDate); logger.debug( 'YoYDate:' + YoYDate + ' , Offset:' + Offset ); return Offset; } 감사합니다.