본문 바로가기

시스템 트레이딩/전략, 시뮬레이션

[파이썬] 머신러닝을 통한 코스피 종목의 주가 지지 저항선 산출

반응형

이전에도 한번 작업을 했던 내용인데, 최근에 좀더 개선이 되어서 다시 글을 쓴다.

 

일반적으로 차트를 볼때 빼놓지 않고 봐야하는 것이 지지, 저항선인데 보통 캔들이 자주 부딪히는 곳에서 생성이 된다. 눈으로 보고 자주 부딪히는 곳에 선을 죽 그은 뒤 지금 주가가 어느 선에 걸려있고, 향후 어느 범위에서 움직일지 가늠하게 된다.

 

그런데, 이 지지저항선을 긋는게 너무 귀찮다. 그리고 모든 종목에 대해서 매일 일일이 열어보면서 줄긋기를 할수도 없는 노릇이다. 그래서 이걸 머신러닝을 통해서 자동화했다.

 

아래는 그 예시이다. 

메리츠화재 지지 저항선 산출
삼양홀딩스 지지, 저항선 산출
하이트진로 지지,저항선 산출

머신러닝의 방법 중에 지지, 저항선을 산출하기 위해서는 군집화 알고리즘을 적용해야 한다. 종가를 기준으로 비슷한 구간에 몰려있는 애들을 몇개의 그룹으로 분류하고 그 안에서 평균값을 산출하면, 그게 지지, 저항선이다.

 

사족을 달자면 이처럼 머신러닝은 이미 답이 나와 있는 경우가 많다. 내가 답을 모르는 상태에서 머신러닝을 통해서 무언가 새로운 답을 얻거나 놀라운 발견을 하기란 매우 어렵다. 자동화를 좀더 편하게 해주는 거라고 생각하면 더 편한듯 하다. 

 

군집화 알고리즘 중에서도 DBSCAN이 꽤 쓸만하다. 그룹의 개수를 미리 정의할 필요도 없고, 속도도 꽤 빠르다. 나는 DBSCAN 알고리즘에서 조금 더 개선된 버전을 썼다. DBSCAN에서는 eps 또는 alpha 값에 굉장히 민감한데, 개선된 버전에서는 eps 값을 정해주지 않아도 된다. 

 

아래는 종목코드 순으로 100 종목을 압축한 파일이다. 관심이 있으면 참고하시길.

(추후 시간이 되면 소스 코드도 정리해서 올려볼 생각임)

코스피 100종목 지지저항선.zip
7.00MB

반응형