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

무상증자시 정보 반영 타이밍의 미묘한 부분 질문

Europa 2021.09.23 21:35 조회수  495 추천 0

안녕하세요. 무상증자 관련하여 실전 매매와 시뮬레이션간의 미묘한 차이가 있는 것으로 보여서 질문드립니다.


잘 아시겠지만 무상증자시에는 권리락 발생일, 신주 배정 기준일, 신주 상장일, 이렇게 세 가지 중요한 타이밍이 존재합니다. 권리락 발생 후 신주 상장일 전까지는 미묘하게도 주식의 가치는 이미 권리락이 적용되어 할인된 가격으로 바뀐 반면, 신주 상장일 전까지는 주식의 수는 바뀌지 않은 상태가 되어 있어서 시가총액은 할인되어 있는 상태가 되고, 시가총액과 연관된 모든 지표는 왜곡되어 나타나는 기간이 생깁니다.


이 기간 동안에 실전 매매와 시뮬레이션이 어떻게 다르게 동작하는지를 유심히 살펴보고 있었습니다. 그런데 권리락 발생일과 신주 배정 기준일 사이에 하루 정도의 기간동안 실전 매매에서 이상한 일이 발생하는 경우가 있네요. 무상증자가 2배수로 되는 경우, 권리락이 발생한 후부터는 보유 주식수도 2배수가 되어 있어야만 알고리즘이 제대로 동작하는데, 실제로는 하루 늦게 보유 주식수가 2배수로 변경 반영되는 것으로 보이네요. 시뮬레이션에서는 이미 반영이 되어 있는 것으로 나옵니다만, 실전매매에서는 하루 차이가 발생해서 권리락이 발생한 주식 수를 2배수로 늘리기 위해 기존 주식 수만큼 추가 주문하는 경우가 발생했습니다. (예를 들어 설명을 드리자면, 권리락 발생일 이전에 A 주식을 종가가 1000원인 주식을 100주 가지고 있었다면, 권리락 이후에는 500원인 주식을 200주 가지고 있는것으로 바뀌어 있어야 합니다. 그런데 실전매매에서는 권리락 당일, 혹은 그 다음일일지 분명치는 않은데, 500원인 주식을 100주 가지고 있는것으로 판단하는 경우가 있어 보입니다. 그 타이밍에 리밸런싱을 원래의 비율대로 하게 되면, 500원인 주식을 200주 가지는 것으로 리밸런싱을 시도해서 실전매매에서는 500원인 주식을 100주 추가 매수하는 명령을 내리게 됩니다.)


혹시 이런 경우가 발생할 가능성이 있는지 문의드립니다.

댓글 4
먼저, 언급하고 계신 실전매매 시의 문제가 IQ Live 를 이용할 때의 문제인지, 아니면 NH투자증권에 자동주문까지 연동한 경우에 대한 문제인지에 따라 문제의 형태가 약간 다를 수는 있으나 본질적으로는 추측하시는 문제가 분명 있기는 합니다.

(1) IQ Live 실전투자를 이용하지만 매매는 직접 하는 경우
- 말씀하신 예제처럼 권리락이 발생한 날에 장이 마감되어 저녁에 IQ Live가 실행되면  해당 종목의 기준가가 1/2로 변경되고 따라서 그 전날까지의 과거주가가 모두 1/2씩 수정되어 IQ Live에서 보여주는 보유수량은 그 전날까지 고객님이 알고 있었던 것보다 2배가 늘어나 있는 것처럼 보이게 됩니다. 이는 IQ Live도 사실은 매일 반복적으로 투자 첫날부터 당일까지 백테스트를 실행하는 방식이기 때문에 그렇습니다. 이 시점에 만일 리밸런싱을 수행하게 되고 해당 종목이 또 동일한 비중만큼 보유하도록 결정되었다면, 권리락에 의해 조정된 수량을 기반으로 새로이 보유해야 할 수량을 알려 주기 때문에 기존 실제 계좌에 보유한 수량보다 2배 늘어난 수량만큼 보유하라고 나옵니다. 따라서 100주 보유하고 있었다면 100주를 더 사야 하는 것처럼 나오게 되는데... 사실은 무상증자를 받은 수량이 100주 숨어 있기 때문에 직접 매매하기 전에 이 점을 인지하였다면 추가 매수를 하지 않음으로써 이 문제를 피해 갈 수 있습니다.

(2) IQ Live에서 실전투자 이용하여 NH투자증권 통해 자동주문하는 경우
- (1)과 거의 같은 경우이지만 구체적으로는 약간 다른데, 인텔리퀀트에서 NH투자증권 쪽에 DIY전략들의 포트폴리오 종목에 대한 정보를 넘길 때 종목별로 수량이 아닌 비중정보를 전달하여 증권사 시스템 쪽에서 각 종목을 해당 비중만큼 맞추도록 자동주문이 작동합니다.
이 때 NH증권 쪽 시스템은 현재의 1/2된 주가와 기존의 수량 100주만으로 평가금액을 계산하면 제시받은 목표 보유금액보다 절반 밖에 안 되므로 추가적으로 100주를 매수하도록 자동주문이 실행됩니다.

이 문제를 근본적으로 해결하려면, NH증권 시스템에서 보유종목 평가금액을 계산하는 방식에 무상증자 권리에 대한 평가액까지 반영하도록 개선을 해 주는 것이 가장 깔끔합니다. 하지만, 그 문제는 저희가 쉽게 증권사 쪽에 이래라 저래라 하기 힘든 부분인 것 같습니다. 

NH자동주문을 이용하더라도 이 문제를 조금이나마 피할 수 있는 방법은, 나무앱에서 전략추천이 새로 발생했다고 리밸런싱 알림을 받았을 때 그 목록을 확인하고 완전 자동주문이 아니라 개별종목별로 설정을 달리해서 주문하는 일반주문(?)을 선택하셔서 해당종목에 대한 매매를 피하는 것입니다.

다소 장황하게 설명했는데, 이해가 되셨는지 모르겠습니다.

지적하신 이런 문제들 때문에 개별종목으로 투자관리서비스를 완전 자동화하는게 사실 만만치 않습니다.
인텔리퀀트에서는 사실 이런 발생 가능한 대부분의 문제들에 대해서 이미 예전부터 인지해 오긴 했는데, 어떤 문제를 해결하기 위해 다른 방식을 선택하면 또 다른 부분에서 문제가 되는 경우가 많아서 현재의 채택한 방법들이 그나마 문제의 영향을 최소화하는 방향으로 자리잡게 되었음을 말씀 드리고 싶네요. ㅜㅜ

 
Joseph 2021.09.24 00:48
아주 빠르고 상세한 답변 감사드립니다. 이 문제를 인지하는 순간, 이 문제는 처리하기가 쉽지 않겠다는 생각을 했었는데 역시 다양한 부분들이 얽혀 있군요. 그래도 해결은 해야할 것 같아서 추가 질문 몇가지 드립니다. (제 경우는 IQ Live 실전투자를 이용해서 NH투자증권을 통해 자동주문을 하는 케이스입니다.)

1) IQ Live에서의 반응도 약간 이상한 측면이 보였습니다. 권리락 발생일에 IQ Live에서 해당 종목의 종가는 권리락을 반영한 가격으로 수정 반영이 되어 있음을 확인했습니다. (당연한 것이겠네요.) 그런데 그날 저녁에 발송되는 익일의 자동매매 전략에서는 종목의 수량이 변경 반영되어 있지 않습니다. 권리락 이전에 100주를 보유했다면 권리락 이후에는 200주를 보유하고 있는것으로 인식해야만 추가로 100주를 매수하는 것을 방지할 수 있는데, 그날 저력에 발송되는 전략에서는 여전히 100주를 보유하고 있는것으로 인식했고, 그래서 추가 100주를 매수하라는 전략이 제시되었네요. 이 부분이 혹시 오류 가능성이 있는지 자세히 검토 부탁드립니다.

2) NH투자증권쪽에서의 자동 주문시 문제: 
위의 2에서 말씀하신것과 같은 문제를 방금 NH투자증권에서 확인했습니다. 권리락 발생후 하루가 지난 후에는 IQ Live에서도 보유 수량을 제대로 인식하기 시작해서 (즉, 100주 --> 200주로 인식했음) 이제는 추가 매수를 하라는 추천은 오지 않았습니다. 그런데 NH투자증권쪽에서는 여전히 보유 수량 인식에 문제가 있어서 자동매매 리스트에 해당 종목을 두배수로 (정확히는 그에 가깝게) 늘리라는 명령이 들어가 있네요. 해당 문제를 인지하고서 자동주문 실행을 보류해 두었습니다. 

3) 권리락 발생일, 신주 입고일을 알 수 있는 API?
권리락 발생일, 신주 입고일, 아울러 배당락 발생일, 배당일 등을 알 수 있는 API가 있으면 도움이 될 것 같습니다. 현재 방식으로는 유,무상증자 발생한 종목이 전략에 끼어들어오는 순간 실전매매와 시뮬레이션간의 큰 간극이 발생하는 것을 막기가 쉽지 않아보입니다. 결국 알고리즘 내에서 유,무상증자가 발생했다는 것을 인지하고 정확히 언제가 권리락 발생일이고 언제 신주 입고일인지를 알고서 방어하는 로직을 넣는것이 최선으로 보이네요.

도움말을 살펴보았는데 증자 관련한 정보를 얻을 수 있는 API는 보이지 않았습니다. 혹시 이런 정보를 얻을 수 있는 방법이 있는지요? 없다면 혹시 추가해 주실수 있는지 문의드립니다.

감사합니다.
Europa 2021.09.24 09:41
(1)에서 수량이 반영이 안 되어 있다면 아마도 수정주가가 적시에 반영 안 되어서 그런 것 같습니다. (지난주 목~금 사이에 수정주가 반영 문제가 조금 늦게서야 제대로 반영된 적이 한 번 있었습니다.) 권리락이 종가에는 반영되었다고 하신 것은 아마도 과거일자의 수정주가가 아니라 당일의 일반주가가 권리락되어 낮아진 현재의 주가라서 그렇게 생각되신게 아닐까 싶습니다. 

(3)에 대한 답변으로, 
현재는 별도로 그런 이벤트 데이터를 관리를 안 해오고 있었는데, 그 이유는 수정주가와 일반주가를 활용해서 왠만한 목적으로는 활용할 수 있다고 생각해서입니다.
예를 들면, 유/무상 증자나 액면분할같이 주식수가 변경되어 수정주가가 바뀌는 경우는 전 영업일 기준으로 수정주가와 일반주가를 조회해서 비교해 보면 오늘 권리락이 발생했는지를 유추할 수 있습니다.
하지만, 보다 근본적인 이벤트 발생에 대한 활용을 위해서, 제안해 주신 데이터의 구축과 API 제공도 적극 검토해 보겠습니다.

감사합니다.
인텔리퀀트 2021.09.24 11:13
네, 상세한 답변 감사드립니다. 
Europa 2021.09.24 13:46
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글