Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

PYCON 2017 발표자료 한성준

3.423 visualizaciones

Publicado el

파이썬을 통한 주식투자 보조시스템 만들기

Publicado en: Datos y análisis

PYCON 2017 발표자료 한성준

  1. 1. 0 2017. 8. 13 한 성 준
  2. 2. 1 “ 짧은 시간 내에 파이썬을 배우고 활용하여 큰 효과를 본 프로그래밍 비전공자의 이야기를 들려드리겠습니다.”
  3. 3. 2 Contents 3. IPO 투자 모델 만들기 2. 파이썬으로 할 수 있는 것들 4. 시사점 1. 파이썬을 배워야 하는 이유
  4. 4. 3 Contents 3. IPO 투자 모델 만들기 2. 파이썬으로 할 수 있는 것들 4. 시사점 1. 파이썬을 배워야 하는 이유
  5. 5. 4 1. 주식투자자가 파이썬을 통해 얻을 수 있는 효과 고집이 쎄짐 노안 체력감소 기억력 감소 한정된 인맥 … 자동화 인간의 본성 극복 새로운 통찰력 고집, 집착 변화에 대한 두려움 손실 두려움 특정 수익모델 집착 … “ 데이터 수집/분석 자동화” “ 단순 작업 자동화” “ 분석 자동화” “ 실시간 자료 수집” “ 시스템 트레이딩” “ 알고리즘 트레이딩” “ 성과 모니터링” “ Machine Learning” “ 다양한 라이브러리” 그리고 ???
  6. 6. 5 1. 주식투자자가 파이썬을 배워야 하는 이유 “ 파이썬은 주식 투자자에게 있어 엑셀 또는 HTS 역할을 할 것입니다.” “ 파이썬을 잘한다고 해서 반드시 좋은 성과를 낼 수는 없지만, 없어서는 안 되는 도구가 될 것입니다.”
  7. 7. 6 Contents 3. IPO 투자 모델 만들기 2. 파이썬으로 할 수 있는 것들 4. 시사점 1. 파이썬을 배워야 하는 이유
  8. 8. 7  파이썬으로 매우 급격한 시간 절약과 효율성 증대를 달성할 수 있음  또한 머신러닝을 활용하여 인간의 눈으로 보지 못하는 새로운 패턴을 발견할 수 있음 2. 파이썬으로 할 수 있는 것들 공시/뉴스 검색 정기 데이터 업데이트 및 분석 실시간 시장 데이터 모니터링 기술적 분석 실적 발표 체크 자동화 확장성/ 맞춤형 머신러닝 다른 언어보다 상대적으로 쉽게 활용 가능 주식 투자자들이 사용하는 분석법 . . .
  9. 9. 8 2.1 가격 패턴 분석 프로그래밍을 활용한다면? • 인간의 눈으로 주가 가격 그래프 분석 • 장점 – 오랜 경력의 프로 투자자의 경우 미묘한 패턴 등을 감각적으로 분석하여 활용할 수 있음 • 단점 – 다수의 종목을 확인할 경우 시간이 많이 걸림, 직감 의존 한계, 과거 사례 등 체크 가능성 기존의 방식 시간의 절약 • 2,000개 이상의 종목 패턴 검색 가능 (2,000개 종목의 2년치 데이터를 600개 구간으로 나누어 분석해도 3분안에 처리가능) 시뮬레이 션 가능 • 해당 패던이 존재했던 과거 유사사례 분석 • 유상증자 전후 및 IPO 주가 패턴 본인의 방식으로 • 기존 HTS 검색기 외에도 본인의 특성에 맞는 양식 개발하여 원하는 방식으로 Reporting • 하락각도, 패턴기간, 종목조건, 분석대상 등 새로운 패턴의 발견 • 본인이 설정한 패턴 외의 새로운 패턴 제시 • 머신 러닝의 유사도 찾기 및 군집화 알고리즘
  10. 10. 9 2.1 가격 패턴 분석 원하는 패턴 정의 자료 입력 자료 처리 및 분석 활용 및 리포팅 • 본인이 원하는 가격 차트 패턴 정의 과정 • 종목, 직접 그린 패턴, 분석대상의 특성, 시가총액, 업종, 이벤트 등 • 차트 패턴 정의 후 list 형태로 입력 1) 원하는 종목과 기간을 지정하여 list로 변환 후 입력 2) 원하는 수식을 지정하여 입력 3) 패턴을 간소화하여 list로 변환하여 입력 • 입력된 자료 처리 – Scikit Learn 등의 모듈 사용 • Cosine Simillar, DTW 등의 모델 이용하여 유사한 패턴 검색 • 현재 시점 기준, 또는 특정 기간 등을 기준으로 설정하여 분석 • 원하는 양식으로 변환하는 과정을 시각화 • 과거 시뮬레이션 시 유사한 패턴 및 이후 성과 분석 • 현재 시점 유사도 기준으로 패턴 정렬
  11. 11. 10 2.1 가격 패턴 분석 Cosine Similar 라이브러리 소개 DTW PIP • 기간의 간격이 정해져 있으며 비교적 짧은 기간의 패턴 분석에 유용함 • 시계열 자료 이외의 분석에도 유용 • 기간의 간격이 유동적일 경우 유용함 • 과거 사례 검색에 도움 • 초단기 패턴 분석에 유용 • 차트 패턴 중 돌파, 지지, 저항 등과 관련된 로직 작성에 유리 • PIP로 전처리 이후 Cosine Similar 라이브러리 사용 시 유용함
  12. 12. 11 2.1 가격 패턴 분석 Cosine Similar 분석 예시 […………………………………………………….………………………..] […………………………………………………….………………………..]
  13. 13. 12 2.2 정기데이터 업데이트 및 분석 프로그래밍을 활용한다면? • 오전에 일별로 다양한 정보를 체크 • 뉴스 또는 수치화된 정보를 체크함 • 상당히 다양한 정보가 있어 일일이 체크하기가 어려움 • 또한 당일 시장과 연동되는 핵심 지표 등을 선정하는데 물리적 한계 존재 기존의 방식 시간의 절약 • 시장의 중요한 변수로 작용할 수 있는 3,000개 이상의 지표를 손쉽게 처리 가능 • 원하는 패턴이 올 경우 해당 지표 자동 알람 시뮬레이 션 가능 • 해당 지표의 해당 패턴이 있었던 과거 사례 검색 가능함 • 과거 사례 분석에 따른 패턴화 가능 본인의 방식으로 • 경제뉴스 상의 핵심 지표만이 아닌, • 본인의 관심종목과 시장 패턴에 맞추어 알람 • 주식에 영향을 줄 수 있는 상황 자동 알람 비정형 데이터 확인가능 • 정형화된 데이터 외에도 구글 트랜드, 쇼핑몰 데이터, 뉴스 분석, 산업지표 등도 크롤링하여 분석 가능
  14. 14. 13 2.2 정기 데이터 업데이트 및 분석 필요한 자료 및 처리 방법 정의 자료 수집 및 입력 자료 처리 및 분석 활용 및 리포팅 • 체크해야 할 주요 지표의 정의 • 경제데이터(환율, 유가, 상품가격 등), 해외주식(미국, 일본 등의 각 산업별 분류), 산업지표(수출입 데이터, 산업협회 자료 등) • 각 지표별 수집 및 처리 방법 정의 • BeautifulSoup 모듈 활용 • Selenium및 팬텀js 모듈 활용 데이터 수집 • MySQL 등을 통해 입력 • 원하는 가격 패턴 분류(List 형식) • 입력된 자료 처리 (Scikit Learn 등의 모듈 사용) • Cosine Simillar, DTW 등의 모델 이용하여 설정한 패턴에 부합하는지 여부 판별 • 각 자료 별 우선순위 부여 알고리즘 개발 • 조건 발생 시 휴대폰 알람 • 각 조건 별 시뮬레이션 및 유사사례 점검
  15. 15. 14 2.3 실시간 시장 데이터 모니터링 • 투자자별 동향, 주가, 거래량 등에 대한 정보를 주로 HTS 등을 통하여 확인 • HTS 기능이 발전함에 따라 다양한 기능 사용 가능하지만 본인만의 전략 관련 수집하는데는 제한적 • 특히 다양한 종목을 검색할 경우 누락 등의 우려 있음 기존의 방식 프로그래밍을 활용한다면? 시간의 절약 • 전 종목에 대하여 원하는 조건에 따라 검색 • 증권사 API 활용 시 다양한 지표 및 조건식을 한번에 처리 가능함 시뮬레이 션 가능 • 해당 조건에 대한 과거 사례 모니터링 가능 • MySQL 등을 활용하여 시간대별 DB구축 가능 본인의 방식으로 • HTS 기능 등을 본인에 최적화되도록 사용 • 특정 종목군, 조건별 (시간대, 외국인 등) 정렬
  16. 16. 15 2.3 실시간 시장 데이터 모니터링 필요한 자료 및 처리 방법 정의 증권사 API 연동 자료 처리 및 분석 활용 및 리포팅 • 체크해야 할 주요 시장 데이터 정의(외국인 수급, 주체별 수급, 주가 데이터, 창구별 현황 등) • 체크 주기, 조건 등에 대한 명확화 • 실시간 데이터의 경우 인터넷 상에서 수집 어려움 • 키움증권, 대신증권 등의 API 활용 • 수집한 데이터에 대한 조건 처리, 설정한 패턴에 부합하는지 여부 판별 • 각 시간대별로 MySQL에 DB화 시킴 • 각 조건 발생 시 Alarm 및 Reporting 기능 • 각 조건 별 DB 저장 자료를 통한 과거 사례 분석
  17. 17. 16 실시간 시장 분석 예시 2.3 실시간 시장 데이터 모니터링
  18. 18. 17 2.4 공시/뉴스 발송 및 분류 • 기업 공시 및 뉴스에 대하여 HTS 또는 금감원 전자공시 사이트 이용(또는 일부 앱 이용) • 계속 보고 있지 않으면 중요한 뉴스를 놓칠 가능성 있음 • 단기적인 대응만 가능할 수 있음 • 워낙 많은 정보로 인해 꼭 필요한 정보가 묻힐 수 있음 기존의 방식 프로그래밍을 활용한다면? 시간의 절약 • 특정 키워드에 맞는 뉴스/공시 발생 시 텔레그램 발송 시뮬레이 션 가능 • 해당 공시에 대하여 유사한 사례의 공시와 당시 퍼포먼스 검색 가능 확장성 • 공시의 종류별로 저장하여 과거 사례 분석 (기업분할, 액면분할, 유상증자, 상장 등) • 주가 패턴과 연동 가능
  19. 19. 18 2.4 공시/뉴스 발송 및 분류 Key Word 및 특성 설정 데이터 수집 자료 처리 및 분석 활용 및 리포팅 • 검색하려고 하는 Key Word 설정 • 각 Key Word의 특성 구분(장기-단기, 이벤트성, 이슈성-펀더멘털성 필요성 등) • BeautifulSoup, Selenium및 팬텀js 모듈 활용 데이터 수집 • 전자공시 사이트 및 증권사 API 연동, Naver, Google 등 뉴스면 활용 • 언론사별 RSS 등 활용 • 뉴스/공시별 Key Word의 특성에 맞추어 처리 진행 • 장기성, 이벤트성, 펀더멘털성의 경우로 분류하여 처리 (Telegram API 활용) • 각 조건 발생 시 Alarm 및 Reporting 기능 • 각 조건 별 DB 저장 자료를 통한 과거 사례 분석 • 주가 위치별로 중요한 국면일 경우 발송 가중치 부여
  20. 20. 19 공시 분석 후 발송 예시 2.4 공시/뉴스 발송 및 분류
  21. 21. 20 공시 분석 후 발송 예시 2.4 공시/뉴스 발송 및 분류
  22. 22. 21 Contents 3. IPO 투자 모델 만들기 2. 파이썬으로 할 수 있는 것들 4. 시사점 1. 파이썬을 배워야 하는 이유
  23. 23. 22 3.1 프로젝트 정의 및 범위 프로젝트 정의 • IPO 종목의 주가 예측 범위 • 국내 KOSDAQ, KOSPI 시장에 신규 상장하는 종목을 대상으로 함 • KONEX 이전 상장, OTC 이전상장 등은 포함 • 기업 인적분할을 통한 신규상장, ETF 등은 제외 목표 결과 • 일반적인 주가 예측 모형은 해당 종목의 예상 수익률 및 변동성 등을 예측함 • IPO의 경우 투자자 입장에서 볼 때, 예상 수익률보다는 공모가 대비 시초가, 상장 이후 주가 움직임을 패턴화하여 나타내는 것이 더욱 가치 있는 결과물이 될 수 있음 결과 패턴 목표 결과 • IPO 예측에 필요한 핵심변수 24개를 선정함 • 해당 변수를 구간별로 나눔 • 각 종목에 대한 Cosine Similarity 이용함 • 공모가 대비 상승하였으나 이후 지속 하락 패턴 • 공모가 부근의 시초가 형성 이후 지속 성장 패턴 • 초기 조정 이후 상승세 나타내는 패턴 • 공모가 하회 이후 지속 하락하는 패턴
  24. 24. 23 3.3 주요 변수의 정의  IPO 주가 형성에 영향을 미치는 변수 24가지 추출함.  총 60개 선정 이후 중복성, 중요도, 계량화 가능성 등을 검토하여 범위 축소  각 단계는 1~5로 구분. 일부는 clustering 기법 활용하였으며, 일부는 투자자입장에서 유의미한 기준 구분
  25. 25. 24 3.4 데이터 수집  IPO 주가 형성에 영향을 미치는 변수 24가지 추출함.  총 60개 선정 이후 중복성, 중요도, 계량화 가능성 등을 검토하여 범위 축소  각 단계는 1~5로 구분. 일부는 clustering 기법 활용하였으며, 일부는 투자자입장에서 유의미한 기준 선별
  26. 26. 25 3.5 유사 종목 검색  각 종목별로 점수 입력하여 List 작성  Cosine Similarity 활용하여 유사도 계산함  해당 종목 입력 시 각 종목별로 과거 유사도가 높았던 종목 위주로 검색
  27. 27. 26 3.6 패턴별 주가 HEAT MAP
  28. 28. 27 3.7 결과  해당 종목을 입력 시 각 종목별로 과거 유사도가 높았던 순으로 검색, 2011년 이후를 분석기간으로 선정하여 기본 데이터는 289개 종목 활용함  데이터가 누적된 2015년 이후 110개 종목에 대한 분석결과 ‘시초가‘ 항목의 경우 85%, ‘당일거래’ 항목은 73%, 상장 후 주가 패턴의 경우 ’66%’의 유의미한 유용성을 보임  대형주의 경우 적중도가 낮았고 반면에 중소형주는 매우 높은 정확성 보임 (대형주는 분석이 상당부분 이루어져 과거 데이터만으로는 초과 수익 가능성 높지 않음)  단순히 과거 적중율보다는 새로운 패턴 발견과 종목군 분류를 통해 투자 Insight 향상
  29. 29. 28 결론 프로그래밍 학습을 통해 서로를 보완할 수 있음 기계의 영역 “ 빅데이터와 머신러닝으로 대표” “ 인프라 및 데이터 가공이 중요” “과거 데이터를 통한 패턴 파악" “ 초단기 매매에 적합” “Passive 투자, 자산배분 등에 주로 활용” 인간의 영역 “ 직감, 통찰력 등으로 대표” “ 경험 및 재능 등이 중요” “ 패러다임 및 트랜드 변화 인식" “중기, 장기 투자에 적합“ “집중 투자에 활용 가능"

×