카테고리 없음
개발일지 2주차 - 해외주식 다루기
동슬동슬
2022. 12. 3. 20:01
[목차]
1. 해외주식 다루기 - yfinance
2. 분석하기(1) : 전략세우기, 데이터모으기
3. 분석하기(2) : 분석하기
4. 2주차끝 & 숙제설명
1. 해외주식 다루기 - yfinance
1) yfinance 설치 및 실행
yfinance 라이브러리 설치 후 런타임 다시 실행
- 제목 밑에 있는 목록에 런타임 - 런타임 다시 시작 or (Ctrl + M)
pip install yfinance
* Tip : 'pip install yfinance' 는 파이썬 문법이 아니라 설치 명령어이기에, 빨간줄 뜸
해결법은 앞에 !을 붙여주면 됨
import yfinance as yf # 라이브러리 불러오기
company = yf.Ticker('TSLA')
company.info
2) 기본정보 및 3년치 데이터 얻기 + 그외 정보
name = company.inpo['shortName'] # 회사명
industry = company.info['industry'] # 산업
marketcap = company.info['marketCap'] # 시가총액
revenue = company.info['totalRevenue'] # 매출
print(name,industry,marketcap,revenue)
company.balance_sheet : 연도별 자료
company.balance_sheet.loc[['Cash']] 캐쉬값을 이쁘게 보는 법
company.cashflow #현금흐름표
company.earnings #기업 실적
company.institutional_holders # 주주정보
company.recommendations # 애널리스트 추천
company.calendar
news = company.news # 1주차 배웠던 뉴스와 같은 형식임
for n in news:
print(n['title'])
2. 분석하기(1) : 전략세우기, 데이터모으기
기본 플로우 : 전략 -> 데이터 수집 -> 분석
1) 종목 별로 보고 싶은 정보 수집
기본적인 정보 모음
- 종목코드, 회사명, 산업, 짧은 설명, 시가총액, 현재 주가
- 1년 후 예상 주가, PER, EPS, PBR, 매출 (3년치), 순이익 (3년치)
위의 코드 정리
- 종목코드 ⇒ code
- 회사명 ⇒ company.info[’shortName’]
- 산업 ⇒ company.info[’industry’]
- 설명 ⇒ company.info[’longBusinessSummary’]
- 시가총액 ⇒ company.info[’marketCap’]
- 현재 주가 ⇒ company.info[’currentPrice’]
- 1년 후 예상 주가 ⇒ company.info[’targetMeanPrice’]
- PER ⇒ company.info[’trailingPE’]
- EPS ⇒ company.info[’trailingEps’]
- PBR ⇒ company.info[’priceToBook’]
- 매출 (3년치) ⇒ company.earnings ⇒ 3년 치 가져오기
- 순이익 (3년치) ⇒ company.earnings ⇒ 3년 치 가져오기
- 뉴스 ⇒ company.news ⇒ 최근 뉴스 1개 가져오기
company = yf.Ticker('TSLA')
code = 'TSLA' # 종목코드
name = company.info['shortName'] # 회사명
industry = company.info['industry'] # 산업
marketcap = company.info['marketCap'] # 시가총액
summary = company.info['longBusinessSummary'] # 짧은 설명
currentprice = company.info['currentPrice'] # 현재 주가
targetprice = company.info['targetMeanPrice'] # 1년 후 예상 주가
per = company.info['trailingPE'] #PER : 주가수익비율
eps = company.info['trailingEps'] #EPS : 주당순이익
pbr = company.info['priceToBook'] #PBR : 주가순자산비율
print(code,name,industry,marketcap,summary,currentprice,targetprice,per,eps,pbr)
- 최근 3년 매출, 순이익 더하기
rev2021 = company.earnings.iloc[-1,0] # 2021
rev2020 = company.earnings.iloc[-2,0] # 2020
rev2019 = company.earnings.iloc[-3,0] # 2019
ear2021 = company.earnings.iloc[-1,1]
ear2020 = company.earnings.iloc[-2,1]
ear2019 = company.earnings.iloc[-3,1]
3. 분석하기(2) : 분석하기
관심 종목을 매일 자동으로 모아서, 분석하고 -> 결과까지 내어줄 수 있는 것
1) eps 순서대로 정렬
1. eps 순서대로 정렬해보기
df.sort_values(by='eps', ascending = False)
2. 특정 per 이하만 보기
df[df['per']<30].sort_values(by='per', ascending=False)
3. 현재가격 - 1년후 가격의 비율 차이가 큰 종목들 추리기
df[['code','name','currentPrice','targetPrie']]
new_df = df[['code','name','currentPrice','targetPrice']].copy()
new_df['gap'] = new_df['targetPrice'] / new_df['currentPrice'] -1
new_df.sort_values(by='gap',ascending=False)
4. 3년 연속 순수익이 오른 기업을 표기하기
import numpy as np
new_df2 =df[['code','name','ear2021','ear2020','ear2019']].copy()
cond = (new_df['ear2021']>newdf2['ear2020']) & (new_df2['ear2020']>new_df2['ear2019'])
new_df2['is_target'] = np.where(cond,'O','X')
new_df2[new_df2['is_target'] == 'O']
4. 2주차 끝 & 숙제
tfinance를 이용, Balance Sheet의 Cash를 아래와 같이 표기
회사명, 2021년, 2020년, diff 값 가져오기였다
[데이터 모으기]는 따로 정리해서 올리겠다.
내일 2주차 마무리로 정리된 글과 2주차 SQL로 다시 찾아오겠다