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

getFundamentalCapitalStock 문의

제갈머니 2017.08.15 16:41 조회수  413 추천 0


안녕하세요, 퀀트  초보인데요. 


아래 함수는 자본금을 나타내는 함수인데, 과거 데이터 2년치 미리 불러 놓고 호출 해도

코스피 종목은 조건을 만족한는 종목이 하나도 안나오네요. 

해당 함수에 버그가 있는것은 아닌지 확인 부탁 드려요.

감사합니다.


if (stock.getFundamentalCapitalStock(0) == stock.getFundamentalCapitalStock(4) ) {score = score + 1;} 
위 조건을 만족한느 코스피 종목이 하나도없는데, 위 함수 버그가 있는 듯 싶네요.
댓글 8
getNoOfShare(333) 포함 이후 index는 0으로 나오네요. (코스피)
제갈머니 2017.08.15 17:01
과거 데이터를 참조하기 위해서는 과거 데이터를 미리 메모리에 로딩해 놓으셔야 합니다. 따라서, 위의 문장처럼 4분기 전의 재무데이터를 참조하시려면, 넉넉잡아 1년 6개월치 이전의 데이터를 아래와 같이 로딩해 놓고 테스트해 보세요: 
stock.loadPrevData(1, 6, 0);     // 현재 시점에서 (1년, 6개월, 0일) 이전까지의 데이터를 참조하기 위해 load 함

댓글에 쓰신 "getNoOfShare(333) 포함 이후 index는 0으로 나오네요. (코스피)"는 무슨 말씀이신지 이해가 잘 안 되네요. (333)이면 333분기 전이니까 83년 전이라는 얘기가 되고 , 저희가 제공하지 않는 과거 시점이 될 것 같습니다만... ㅜㅜ
Joseph 2017.08.15 22:51
아.. .뒷부분은 제가 착각했네요. 재무데이터처럼 취급되는 데이터로 착각해서 분기로 계산했네요. 뒷부분은 무시해 주세요..^^
Joseph 2017.08.16 15:03
답변감사합니다.
하지만 이미 loadPrevData 호출하고 있습니다.
코스닥 종목만  값이  제대로  나오네요
제갈머니 2017.08.16 23:21
커뮤니티의 f score 테스트해보시면  코스피종목은  안나오네요.
제갈머니 2017.08.16 23:23
확인해보니 코스피종목도 getFundamentalCapitalStock 명령어 쳤을때 데이터값은 나오는데
2017년 4월 1일 기준으로 명령어 입력해보니
사용한 명령어 : 
stock.loadPrevData(1, 6, 0);
logger.debug(stock.name + " " + stock.getFundamentalCapitalStock(0) + " vs " + stock.getFundamentalCapitalStock(4));

그 결과
[2017-04-03] POSCO 482403125 vs 1024874117 = 포스코  현재분기 vs 4분기전
라고 나옵니다.

공시 확인해보니 49기 16년 사업보고서에서 자본금 482,403,125,000원으로 나와서 현재분기는 올바르게 표시되지만
48기 15년 사업보고서의 자본금 482,403,125,000원 과 다르게 1024874117 라고 표시되네요

확인부탁드립니다
Prophit 2017.08.17 11:19
와우!! 덕분에 데이터 오류 잡아냈습니다. 언젠가 과거 데이터 관련 대대적인 DB 작업을 했었는데, 그 때 다른 항목 데이터가 자본금 항목으로 들어갔던 것 같습니다. 앞으로도 이상한 데이터 발견시 적극 제보해 주시면 정말 감사하겠습니다.^^
Joseph 2017.08.17 22:02
F 스코어 테스트 다시 올려야겠네요 ㅎㅎ
Prophit 2017.08.18 09:18
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글