2. 실습 과정
◦ matplotlib 등 주요 라이브러리 소개
◦ FinanceDataReader
◦ 종목 코드 수집
◦ 수익률 계산
◦ BeautifulSoup + Naver 금융을 이용한 주가 및 재무 정보 수집
◦ 중간 연습문제
◦ 정량 지표 정보 수집
◦ 정성 지표 정보 수집
3. 사전 준비
◦ 실습 소스 git clone
git clone https://github.com/wonyongHwang/kopoStockModel.git
◦ PyCharm 준비
4. 1. 파이썬 주요 라이브러리 소개
구분 라이브러리 비고
시각화 Matplotlib 차트 시각화 지원
분석
NumPy
수치 데이터 조작
배열 데이터 핸들링
Pandas
고성능
데이터 조작 라이브러리
크롤링
BeautifulSoup
Requests
웹 데이터 크롤링
9. 용어 알아보기
• 미국시장에서는 종목을 식별하기 위해 영문알파벳 조합된 코드
야후(yahoo.com), 포브스(forbes.com) 같은 모든 경제 사이트에서 사용
• F (포드 자동차)
• GE (제너럴 일렉트릭)
• BAC (뱅크오브 아메리카)
• APPL (Apple inc, 애플), GOOG(Google, 구글), MSFT (Microsoft, 마이크로소프트)
10. 용어 알아보기
• ^KS11: KOSPI composite index (거래소 지수) <- 증권거래소에 상장된 상장기업 주식
벤처회사를 제외한 주식들을 시가총액 가중평균방식을 통해 코스피에 상장된 전 주식을 평균화한 지수
• ^KQ11: KOSDAQ composite index (코스닥 지수) <- 국내 장외 주식 (벤처)
KOSPI에 상장이 불가능한 벤처기업들을 시가총액 가중평균 방식으로 산출하여 평균화
• 종목코드에 .KS가 붙는다 예를들어 삼성전자의 심볼은 005930.KS
11. 용어 알아보기
• 시가총액: 회사가 발행한 전체 주식의 가치 (1만원 * 100주 = 100만원)
• 수정주가 (Adjusted Closing Price):
주가는 자본을 마련하기위해 새로 주식을 발행하거나(유상증자) 기존의 주주에게 무료로
배포하는(무상증자) 행위 또는 기존의 보유주를 2,3배로 바꿔주기도한다 (액면변경)
이처럼 시시각각 변하는 상황에 과거의 주가를 지금의 주식수를 기준으로 바꾸어주는 것을 수정주가라고 한다.
• 분할, 배당, 배분, 신주 발행이 반영된 주식 가격 데이터의 연속성을 보장하기 때문에 데이터 분석에는 “수정주가” 를 사용한다.
24. 단기 평균선이
장기 평균보다 가격이 높다는 말은 최근
에 가격성장폭이 커졌다는 뜻!
3. MA (이동평균) 계산과 GC/DC 그리기
source : https://github.com/wonyongHwang/kopoStockModel/blob/master/lecture/03.%20Stock%20Price%20Info%20and%20MA.ipynb
25. 3. MA (이동평균) 계산과 GC/DC 그리기
① N일 이동평균 구하기
- 값이 NaN일 경우 최소 하나의 데이터로 평균으로 가정
② 단기이평과 장기이평의 차이를 구함
- 차이가 + : Golden Cross
- 차이가 - : Dead Cross
38. 용어 정리
◦ EPS (Earnings Per Share 주당 순이익)
당기순이익/발행주식수
예> EPS 4,165원 : 주식 1주가 4,165원의 이익을 창출
◦ PER (Price Earning Ratio 주가수익비율)
현재주가 / EPS
예> 19.14배 : 79,700원 / 4,165원 -> 현재 회사의 이익 대비 주가가 19.14배 비싸다는 의미
업종에 따라 PER 평균이 다름
◦ BPS(Book-value Per Share 주당 순자산)
(총자산 - 총부채) / 발행 주식수
예> BPS 39,126원 : 회사 자산 처분시 1주당 39,126원의 가치가 있음
◦ PBR(Price Book-value Ratio 주가순자산 비율)
현재주가/BPS
예> PBR 2.04배: 회사 자산 처분시 주당 39,126원을 받을 수 있는 주식이
그보다 2배 정도 높은 가격에 거래되고 있다는 의미
39. 용어 정리
◦ PBR(주가순자산비율: Price Book-value Ratio)
- 현재자산 / BPS
- 낮을수록 건전성 ↑, 동종업계 타기업과 비교해 봐야 함
- 성장 가능성이 높을 경우 높은 수치를 나타낼 수 있기 때문에 보조적 판단 수단으로 사용해야 함
◦ PER(주가순익비율: Price Earning Ratio)
- 현재주가 / EPS
40. 로직 구성에 참고할 만한 정량 지표 예시
◦ EPS(주당순이익: Earning Per Share) * 10
- 당기순이익 / 발행주식수
◦ ROE * EPS ± X
◦ PER * EPS
◦ 유동비율 : 최소 200% 이상
◦ 유보율( (자본잉여금+이익잉여금)/납입자본금 * 100)
◦ MA120 G/C 한 종목 || MA60이 MA120을 3번 근접 및 우상향
◦ EPS 지속 증가하는 경우 || EPS 5년 연평균 성장률이 우상향
◦ 연평균 성장률 대비 PER(주가수익비율)이 낮은 기업
적정 주가 산출 참고식
* ROE(Return On Equity) : 자기자본이익율
당기순이익/자본총액
62. 계좌 로그인 테스트
source :
https://github.com/wonyongHwang/KopoScalpingTrader/blob/main/pre
parations/loginTest.py
이벤트 처리 클래스
로그인 호출(+ 이벤트처리 클래스 콜백등록)
로그인 응답시까지 이벤트 대기 루프
74. ◦ 일정시간 동안 거래를 모아서 적정가격을 자동으로 정함
◦ 거래 폭증에 따른 가격 왜곡 현상을 예방하기 위하여 장 시작 전 , 마감 전 등 특정 시점에 적용
◦ 변동성 완화장치 발동, 써킷 브레이커, 단기과열 지정, 투자위험종목 지정에도 적용
◦ 동시호가가 상한가 또는 하한가일 경우는 정량 배분 기준에 따라 수량을 배분
66,600
66,500
66,400
66,300
1,000
400 1,000
1,000
Q1> 동시호가 가격은?
동시호가
97. TA Library 설치
◦ Technical Analysis 라이브러리
◦ 금융 시장 데이터의 기술적 분석을 수행
◦ 공식 홈페이지
- http://ta-lib.org/
- https://mrjbq7.github.io/ta-lib/
설치
- https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
98. mpl finance 라이브러리 설치
◦ 캔들 차트 등 주가 관련 차트 시각화
◦ pip install mplfinance
101. ADX(average directional index)
- 평균 방향 지수
- 상승 또는 하락하는 추세의 강도를 측정
(상승인지 하락인지는 타 지표를 통해 확인 필요)
- 횡보 국면 : 0 에 수렴
reference : https://www.hi-ib.com/systemtrade/st02090803view04.jsp
image source : https://www.investopedia.com/articles/trading/07/adx-trend-indicator.asp
103. RSI(Relative Strength Index)
◦ 상대 강도 지수
◦ 매도세 <-> 매수세
0 ~ 100
◦ 과매도, 과매수 구간
30, 70
20, 80
◦ 지표 기간(Time Span)이 짧아질 수록 민감하게 반응
reference : https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)
image resource : https://www.investopedia.com/terms/r/rsi.asp
104. OBV(On Balance Volume)
◦ 거래량은 항상 주가에 선행한다는 것을 전제로 주가의 변동을 분석하는 기법
◦ 매집 또는 분산 시기 판단에 참고
◦ 해당 종가 상승 : OBV = 이전 OBV + 해당 거래량
◦ 행당 종가 하락 : OBV = 이전 OBV – 해당 거래량
reference : https://www.hi-ib.com/systemtrade/st020908view04.jsp
105. MACD(Moving Average Convergence/Divergence)
◦ 단기 이동평균선과 장기 이동평균선이 상호 수렴 또는 발산을 반복하는 원리를 이용하여 추세 판단
◦ MACD : 단기 이평 – 장기 이평
◦ MACD Signal = n기간 동안의 MACD 평균
단기 이평과 장기 이평의 괴리가 큰 지점 파악
- MACD와 Signal 골든 크로스 : 매수
- MACD와 Signal 데드 크로스 : 매도
◦ MACD = EMA (단기) -EMA (중기)
image source : https://www.investopedia.com/terms/m/macd.asp
109. stochastic fast
◦ 주가의 변동을 기반한 분석지표
◦ 특정 기간 가격등락의 중심으로 가격이 회귀하려는 특성을 활용한 지표
image resource : https://www.investopedia.com/terms/s/stochasticoscillator.asp
110. ◦ %K : 특정 기간 동안 현재의 가격 위치
◦ %D : %K의 이동평균
stochastic fast