[Python] 기관, 외국인 거래량이 많으면 주가가 하락한다? -2편
by Edward Park
Abstract
이전포스트에서는 기관 매매량 급증후 30영업일(약 40일)후 주가변화를 살펴보았고, 약 3500번 정도의 case에 대해서 평균 1.3%의 주가하락이 이어졌음을 확인했다. 이번에는 기관 매매량 급증 신호뿐만아니라 외국인 매매량 급증과 급락 신호에따른 주가변화를 살펴보며 또 이전에 설정했던 여러 parameter들(이동평균 값(이전에는 10일 사용), n영업일 후(이전에는 30 사용))을 변화시키며 어떤 경우에 이익, 손해를 보는지 살펴보자.
Store result by parameters
# 이전 코드는 이전포스트 참조
# 40이 끝
criteriaList = [-2.5, 2.5] # 2.5는 기관/외인 매매량 급증, -2.5는 급락신호
windowList = [10, 30] # Moving average값(10 or 30)
dayLaterList = [1, 5, 10, 30, 60] # n영업일 후 주가 변화
whoList = ['inst_sum', 'foreign_sum'] # inst_sum: 기관, foreign_sum: 외인
resultList = []
i=0
for cri in criteriaList:
for win in windowList:
for day in dayLaterList:
for who in whoList:
resultDic = {}
resultDic['criteria'] = cri
resultDic['window'] = win
resultDic['dayLater'] = day
resultDic['who'] = who
print(i, end="-")
i+=1
result = np.array([])
for code in codes:
tss = TradeStradegy(code, cri, win, day, who)
stdg1 = tss.stradegy1()
changeSelected = stdg1[0]
result = np.append(result, changeSelected)
resultDic['result'] = result
resultList.append(resultDic)
결과는 아래와 같다.(result순으로 오름차순 정렬)
for i in range(len(resultList)):
resultList[i]['result'] = np.mean(resultList[i]['result'])
pd.DataFrame(resultList).sort_values("result").reset_index(drop=True)
.
.
.
먼저 위의 표를 보는법을 예시를통해 간단히 설명하기위해 첫번째 열(row)의 값들을 보자.
who열이 foreign_sum이고 critera가 2.5이므로 외인의 순매매량이 급증한 이후 60영업일(dayLater값) 후 주가는 평균적으로 4.5%(1-result) 하락했다. 라고 해석할 수 있다. 여기서 window값은 moving average 값으로 이값이 클수록 순매매량을 완만하게 변환했음을 뜻한다.
여기서 눈여겨볼점은 기관이나 외인의 매매량이 급증, 급락한 이후 대체로 주가는 하락했다는 것이다. Index가 0, 2인행을 살펴보면 외국인의 순매매량이 급증, 급락한 60영업일 이후 평균적으로 주가는 4%이상 감소했다.
이러한 현상에대한 해석에는 다양한 관점이 있겠지만, 개인적인 생각으로는 외인이나 기관이 단기적으로 수익을 실현하는 경우가 많기때문이라고 생각된다. 여하튼 처음 생각했던것과는 달리 외인, 기관의 순매매량이 급증했다는 신호가 주가에 부정적인 영향일 미쳤으며 이는 순매매량이 급락했을때도 마찬가지로 부정적인 영향을 가져왔다. 즉 한마디로 기관, 외인의 주식에대한 관심이 중, 장기적(30, 60영업일 후)으로 주가에 부정적인 영향을 미친다라고 설명할 수 있겠다.
Next
위의 분석의 경우 모든 코스피 주식에 대해 기관, 외인의 순매매량 신호계산을 동일하게 했지만, 사실 주식에 따라 기관, 외인의 보유비중, 매매비중 등은 다를것이다. 그래서 이러한 변수를 추가해 분석에 활용하면 보다 정확한 분석이 될것이다. 또한 단순히 해당 주식의 기관, 외인 순매매량만을 보는것이아니라 이러한 급증, 급락신호가 나타났을 때 주가의 상태(스토캐스틱, 볼린저밴드 변수 값, 거래량 등) 를 추가 변수로 활용한다면(예를들어 기관 순매매량이 급증했을때, 스토캐스틱 값이 낮은 상태면 장기적으로 주가는 상승할 것) 보다 좋은 분석을 할 수 있을 것이다.