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

시뮬레이션과 실제 매수 종목간의 오류 질문드립니다.

곰곰이 2019.08.02 06:45 조회수  357 추천 0

안녕하세요 

매달 인텔리퀀트로 포트폴리오 종목 교체하며 사용중입니다. 감사합니다.


문의드릴게 있어 글 남깁니다.

매달 검색한 종목을 사고 기록해두는데

당시 검색해서 나온 종목과, 나중에 시뮬돌려서 나온 종목이 다를때가 있습니다.

예를들어 6/1에 검색한 20종목으로 포트를 구성했는데, 시간이 지나서 6/1 당시 시뮬레이션을 돌리면 다른 종목이 나옵니다.


한가지 의심스러운 점이 분기실적 발표일에 따라 당시 검색종목과 나중에 돌린 검색종목이 달라지는것 같은데요


"

1Q의 실적의 경우 3월 30일 까지의 실적을 45일 후인 5월 15일 까지 발표해야 합니다.
2Q의 실적의 경우 6월 30일 까지의 실적을 45일 후인 8월 15일 까지 발표해야 합니다.
3Q의 실적의 경우 9월 30일 까지의 실적을 45일 후인 11월 15일 까지 발표해야 합니다.
4Q의 경우는 12월 30일 까지의 실적을 90일 후인 후년 3월 30일 까지 발표해야 합니다.
"

라고 하는데,

1Q 실적발표를 5/15일에 한 경우, 5/1에 최근 분기 per를 구하면 1Q 실적이 안되어 있으므로 작년 4Q 순이익으로 per를 계산할것 같습니다.
그런데 시간이 지나 다시 5/1 날짜의 per를 구할때는 1Q 실적이 있으니까 1Q 순이익으로 per를 구하는지요

이러한 오류를 피하려면 매달 리밸런싱이 아닌 4, 6, 9, 12월에 리밸런싱을 하면 될까요

댓글 3
곰곰이님께서 문의 주신 부분에 대하여 설명을 드리겠습니다.
먼저, 퀀트 전략 개발 시 가장 주의해야 할 점 중에 하나가 언급하신 것처럼 재무데이터 사용 가능 시점을 생각하지 않고, 단순히 분기 실적을 해당 마감일 직후에 사용하려 할 때입니다. (보통 Look ahead bias라고 하죠.)
인텔리퀀트가 퀀트 초보자도 문제 없이 전략을 만드실 수 있도록 이 부분은 최대한 자동으로 처리해 주고 있습니다. 즉, 마지막에 예를 드신 1Q  실적발표 관련 가정은 걱정 안 하셔도 됩니다.

그럼 본 질문으로 돌아가서, 
이번 6/1 당일에 검색한 종목과 나중에 다시 돌렸을 때 약간 다르게 나올 수 있는 한 가지 가능성은...
 6/1 이전에 재무데이터 업데이트 완료할 때 약 10여개 종목이 데이터가 여전히 확정되지 않아서 업데이트를 못했는데, 6/15 쯤 2차 업데이트를 하면서 새로 추가가 되었으나, 업데이트 일자를 일괄적으로 5/31로 정해서 관리하고 있는 바람에 다시 6/1 날짜의 종목을 뽑아 보면 뒤늦게 추가한 종목들도 6/1에 데이터가 있었던 것처럼 취급되어 가끔씩 포트폴리오 구성/검색 종목이 달라질 수 있게 됩니다.

저희가 이 재무데이터 관리 부분은 처음 제공하려고 할 때부터 계속 고민되는 부분이었습니다. 완전하게 모든 데이터가 확정되었을 때 사용할 수 있게 할 것인지, 아니면 99% 이상 데이터가 확정되면 업데이트하고 1% 정도의 종목들은 추후 추가할 것인지 고민 끝에 후자의 접근법을 택하게 되었습니다.

혹시, 데이터 관리 상 좋은 의견 있으시면 제안해 주시면 감사하겠습니다.
감사합니다. 
인텔리퀀트 2019.08.02 10:33
답변 감사합니다. 제 경우는 약간 다른데 매달 20개의 종목중 대략 10개가 다르게 나와서요 이건 다른 버그라고 봐야겠죠? 동일한 코드를 돌렸는데 매달 절반정도의 종목이 바뀌는건 재무데이터 업데이트문제는 아니겠지요?
곰곰이 2019.08.02 11:28
새로 말씀해 주신 부분은 첫 질문 상황과는 좀 달라 보입니다. 
혹시, 매월 리밸런싱하고 있는데 재무데이터가 안 변했을 텐데도 매번 종목이 많이 바뀌는게 이상하다는 것이라면 정상적인 범위의 상황 같습니다.
그게 아니라, 매번 당일날 뽑은 종목과 나중에 시뮬레이션으로 해당 날짜의 결과가 그렇게 차이가 많은 것이라면 다른 문제가 있을 것 같습니다. 좀 더 자세히 상황을 설명해 주시면 이유를 찾아 보겠습니다. 
인텔리퀀트 2019.08.02 12:52
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글