주식투자-수집
주식투자 프로젝트 수집
주식투자 프로젝트에서 필요한 데이터를 수집합니다.
기술적 분석을 위한 데이터를 수집하는 것이므로 회사, 주가 그래프, 거래량을 수집합니다.
회사 선택; Select a Company
삼성전자를 기준으로 진행합니다.
데이터의 수가 많을 것 같은 상장된지 시간이 오래된 회사를 선택했습니다.
주가 그래프 수집; Stock Price Acquisition With Python
Python 라이브러리를 이용해서 선택한 회사에 대한 주가 그래프를 수집합니다.
FinanceDataReader 라이브러리 간단한 사용법
라이브러리 로드
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'HYHeadLine-Medium'
plt.rcParams['figure.figsize'] = (14,4)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['axes.grid'] = True
plt.rcParams['axes.unicode_minus'] = False
import FinanceDataReader as fdr
print(fdr.__version__)
0.9.50
한국거래소 상장종목 전체 KRX
df_krx = fdr.StockListing('KRX')
print(len(df_krx))
2707
display(df_krx.head())
출력 보기(클릭)
Code | ISU_CD | Name | Market | Dept | Close | ChangeCode | Changes | ChagesRatio | Open | High | Low | Volume | Amount | Marcap | Stocks | MarketId | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 005930 | KR7005930003 | 삼성전자 | KOSPI | 59900 | 1 | 100 | 0.17 | 59200 | 60200 | 59100 | 10611939 | 633331744600 | 357589974745000 | 5969782550 | STK | |
1 | 373220 | KR7373220003 | LG에너지솔루션 | KOSPI | 576000 | 1 | 11000 | 1.95 | 561000 | 578000 | 558000 | 499942 | 285799756000 | 134784000000000 | 234000000 | STK | |
2 | 000660 | KR7000660001 | SK하이닉스 | KOSPI | 79000 | 2 | -100 | -0.13 | 76700 | 80200 | 76700 | 4804196 | 379790459748 | 57512186835000 | 728002365 | STK | |
3 | 207940 | KR7207940008 | 삼성바이오로직스 | KOSPI | 790000 | 1 | 12000 | 1.54 | 772000 | 796000 | 771000 | 60191 | 47387536000 | 56227460000000 | 71174000 | STK | |
4 | 051910 | KR7051910008 | LG화학 | KOSPI | 730000 | 1 | 9000 | 1.25 | 716000 | 731000 | 707000 | 224294 | 161777544800 | 51532410390000 | 70592343 | STK |
삼성전자의 주가그래프 살펴보기
- 변수 이름
- Open : 일일 시가 (시작 주가)
- High : 당일의 주가 최고점
- Low : 당일의 주가 최저점
- Close : 일일 종가 (마지막 주가)
- Vloumne : 거래량
- Change : 당일 가격변동
- 계산식 : (일일 종가 - 일일 시가) / 일일 시가 * 100
# 가독성이 좋게 코드 부분에 회사 이름을 적을 수 있도록 합니다.
name_code_trans = {name:code for code,name in df_krx[['Code','Name']].values}
df = fdr.DataReader(name_code_trans['삼성전자'])
display(df.head())
출력 보기(클릭)
Open | High | Low | Close | Volume | Change | |
---|---|---|---|---|---|---|
Date | ||||||
1998-11-28 | 1292 | 1321 | 1289 | 1318 | 264480 | NaN |
1998-11-30 | 1335 | 1335 | 1268 | 1276 | 320470 | -0.031866 |
1998-12-01 | 1254 | 1254 | 1162 | 1197 | 877940 | -0.061912 |
1998-12-02 | 1206 | 1225 | 1168 | 1226 | 531220 | 0.024227 |
1998-12-03 | 1260 | 1293 | 1227 | 1264 | 910940 | 0.030995 |
삼성전자, 2021년
df = fdr.DataReader(name_code_trans['삼성전자'],'2021')
display(df.head())
출력 보기(클릭)
Open | High | Low | Close | Volume | Change | |
---|---|---|---|---|---|---|
Date | ||||||
2021-01-04 | 81000 | 84400 | 80200 | 83000 | 38655276 | 0.024691 |
2021-01-05 | 81600 | 83900 | 81600 | 83900 | 35335669 | 0.010843 |
2021-01-06 | 83300 | 84500 | 82100 | 82200 | 42089013 | -0.020262 |
2021-01-07 | 82800 | 84200 | 82700 | 82900 | 32644642 | 0.008516 |
2021-01-08 | 83300 | 90000 | 83000 | 88800 | 59013307 | 0.071170 |
그래프로 표현하기
df['Close'].plot()
plt.show()
df['Open'].plot()
plt.show()
df['Change'].plot()
plt.show()
궁금
- 변동성(절대값으로 크기만 비교)과 거래량의 관계는?