Tutorial ๐ฃยถ
โ ๏ธ WARNING coredotfinance ์ ํจ์๋ค์ data.krx.co.kr ์์ ๋ฐ์ดํฐ๋ฅผ POST ๋ฐฉ์์ผ๋ก ์์ฒญํด์ ๋ฐ์์ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฌด๋ถ๋ณํ ์ฌ์ฉ์ IP ์ฐจ๋จ์ด๋ ๊ทธ ์ด์์ ํจ๋ํฐ๋ฅผ ์ป์ ์๋ ์๋ค.
์ผ์ฑ์ ์ ์ฃผ์์ ๋ถ๋ฌ์ค์ using KrxReader ๐ยถ
์ง๋ 1๋ ๊ฐ์ ์ผ์ฑ์ ์ ์ฃผ์์ ๋ถ๋ฌ์ค๊ณ matplotlib์ ์ด์ฉํด์ ๊ฐ๋จํ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค ๋ณด๋ ๊ฒ์ ํตํด์ coredotfinance์ ์ฌ์ฉ๋ฒ์ ์ตํ๋ณด์
[11]:
from coredotfinance.data import KrxReader
krx = KrxReader()
๋จผ์ krx ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค. ๋ค์ krx.read๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํด๋น ์ข ๋ชฉ์ symbol(์ข ๋ชฉ์ฝ๋)๋ฅผ ์์๋ด์ผ ํ๋ค. ์ด๋ krx.search()๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
searchยถ
search(symbol, kind=โstockโ, **kwargs)
symbol : str
์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ชฉ ์ฝ๋
kind : str
์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ 'stock' : ์ฃผ์ 'index': ์ง์ 'other_index' : ๊ธฐํ ์ง์ 'etf': ETF 'etn': ETN 'elw': ELW
devision : str
๊ธฐํ ์ง์(other_index) ์ ์ข ๋ฅ kind๊ฐ `other_index` ์ผ๋๋ง ๋ฃ์ด์ค๋ค ['์ ๋ฌผ์ง์', '์ ๋ต์ง์', '์ต์ ์ง์ฃผ', '์ํ์ง์']
[5]:
krx.search('์ผ์ฑ์ ์')
[5]:
('์ผ์ฑ์ ์', 'KR7005930003', '005930')
search์ ๊ฒฐ๊ณผ๋ก โ์ข ๋ชฉ๋ช โ, โ์ข ๋ชฉ๊ณ ์ ์ฝ๋โ, โ์ข ๋ชฉ์ฝ๋โ ๋ฅผ tuple ํ์์ผ๋ก ๋ฐ๊ฒ ๋๋ค.
krx.read()๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ข ๋ชฉ์ฝ๋๋ง ์์ผ๋ฉด ๋๋ค.
readยถ
read(self, symbol, *, start=None, end=None, kind=โstockโ, api=False, **kwargs)
ํด๋น ์ฃผ์ ๊ฐ๊ฒฉ ๋ฐ์ดํฐ๋ฅผ ์์์ผ(start) ๋ถํฐ ์ข ๋ฃ์ผ(end) ๊น์ง ์ฝ์ด์จ๋ค.
symbol : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ชฉ์ฝ๋. ํํ๋ ์ข ๋ชฉ๊ณผ ์ข ๋ฅ๋ง๋ค ๋ค๋ฅด๋ค. ์) ์ผ์ฑ์ ์ : '005930', ARIRANG 200 : '152100'
start : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์์์ผ. ํํ๋ YYYY-MM-DD๊ฐ ๋์ด์ผ ํ๋ค. ์) 2021-06-01
end : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฃ์ผ. ํํ๋ YYYY-MM-DD๊ฐ ๋์ด์ผ ํ๋ค. ์) 2021-06-01
kind : str, default โstockโ
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ. 'stock' : ์ฃผ์ 'per' : PER/EPS/๋ฐฐ๋น๊ธ ๋ฑ 'index': ์ง์ 'other_index' : ๊ธฐํ ์ง์ 'etf': ETF 'etn': ETN 'elw': ELW
kwargs
division : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ธ๋ถ ๊ตฌ๋ถ other_index : ['์ ๋ฌผ์ง์', '์ต์ ์ง์', '์ ๋ต์ง์', '์ํ์ง์']
reverse : bool, default false
dataframe์ ๊ฑฐ๊พธ๋ก ์ ๋ ฌํ๊ธฐ
kor : bool, default false
columns๋ฅผ ํ๊ธ๋ก ๋ฐ์์ค๊ธฐ
adjust : bool, default false
์์ ์ฃผ๊ฐ ์ ์ฉํ๊ธฐ
[2]:
dataframe = krx.read('005930', start='2020-07-01', end='2021-07-01')
dataframe
์ผ์ฑ์ ์
[2]:
close | change | change_ratio | open | high | low | volume | trading_value | market_cap | shares_outstanding | |
---|---|---|---|---|---|---|---|---|---|---|
2021-07-01 | 80100 | -600 | -0.74 | 80500 | 80600 | 80000 | 13382882 | 1073188213795 | 478179582255000 | 5969782550 |
2021-06-30 | 80700 | -300 | -0.37 | 81100 | 81400 | 80700 | 13288643 | 1075902355151 | 481761451785000 | 5969782550 |
2021-06-29 | 81000 | -900 | -1.10 | 81900 | 82100 | 80800 | 15744317 | 1277813841567 | 483552386550000 | 5969782550 |
2021-06-28 | 81900 | 300 | 0.37 | 81700 | 82000 | 81600 | 11578529 | 946992165410 | 488925190845000 | 5969782550 |
2021-06-25 | 81600 | 400 | 0.49 | 81500 | 81900 | 81200 | 13481405 | 1099148742353 | 487134256080000 | 5969782550 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2020-07-07 | 53400 | -1600 | -2.91 | 55800 | 55900 | 53400 | 30760032 | 1672753640892 | 318786388170000 | 5969782550 |
2020-07-06 | 55000 | 1400 | 2.61 | 54000 | 55000 | 53800 | 19856623 | 1084003637100 | 328338040250000 | 5969782550 |
2020-07-03 | 53600 | 700 | 1.32 | 53000 | 53600 | 52700 | 11887868 | 633333112600 | 319980344680000 | 5969782550 |
2020-07-02 | 52900 | 300 | 0.57 | 52100 | 52900 | 52100 | 14142583 | 742668048500 | 315801496895000 | 5969782550 |
2020-07-01 | 52600 | -200 | -0.38 | 53400 | 53600 | 52400 | 16706143 | 884144616500 | 314010562130000 | 5969782550 |
249 rows ร 10 columns
colum์ ์ด๋ฆ์ด ๋ชจ๋ ์์ด๋ก ๋์ด ์๋ค.
๊ทธ ์ด์ ๋ cufflinks
๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํธํ์ฑ์ ์ด๋ฃจ๊ธฐ ์ํด์๋ค.
๋ง์ฝ ํ๊ธ colum์ด ํ์ํ๋ค๋ฉด kor=True
๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
kor=Trueยถ
[6]:
dataframe = krx.read('005930', start='2020-07-01', end='2021-07-01', kor=True)
dataframe
์ผ์ฑ์ ์
[6]:
์ข ๊ฐ | ๋๋น | ๋ฑ๋ฝ๋ฅ | ์๊ฐ | ๊ณ ๊ฐ | ์ ๊ฐ | ๊ฑฐ๋๋ | ๊ฑฐ๋๋๊ธ | ์๊ฐ์ด์ก | ์์ฅ์ฃผ์์ | |
---|---|---|---|---|---|---|---|---|---|---|
2021-07-01 | 80100 | -600 | -0.74 | 80500 | 80600 | 80000 | 13382882 | 1073188213795 | 478179582255000 | 5969782550 |
2021-06-30 | 80700 | -300 | -0.37 | 81100 | 81400 | 80700 | 13288643 | 1075902355151 | 481761451785000 | 5969782550 |
2021-06-29 | 81000 | -900 | -1.10 | 81900 | 82100 | 80800 | 15744317 | 1277813841567 | 483552386550000 | 5969782550 |
2021-06-28 | 81900 | 300 | 0.37 | 81700 | 82000 | 81600 | 11578529 | 946992165410 | 488925190845000 | 5969782550 |
2021-06-25 | 81600 | 400 | 0.49 | 81500 | 81900 | 81200 | 13481405 | 1099148742353 | 487134256080000 | 5969782550 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2020-07-07 | 53400 | -1600 | -2.91 | 55800 | 55900 | 53400 | 30760032 | 1672753640892 | 318786388170000 | 5969782550 |
2020-07-06 | 55000 | 1400 | 2.61 | 54000 | 55000 | 53800 | 19856623 | 1084003637100 | 328338040250000 | 5969782550 |
2020-07-03 | 53600 | 700 | 1.32 | 53000 | 53600 | 52700 | 11887868 | 633333112600 | 319980344680000 | 5969782550 |
2020-07-02 | 52900 | 300 | 0.57 | 52100 | 52900 | 52100 | 14142583 | 742668048500 | 315801496895000 | 5969782550 |
2020-07-01 | 52600 | -200 | -0.38 | 53400 | 53600 | 52400 | 16706143 | 884144616500 | 314010562130000 | 5969782550 |
249 rows ร 10 columns
์ด์ matplotlib์ ์ด์ฉํด์ ์ข ๊ฐ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์.
๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ with matplotlibยถ
[9]:
import matplotlib.pyplot as plt
plt.plot(dataframe['์ข
๊ฐ'])
plt.show()
์ผ์ฑ์ ์

์์ ์ฃผ๊ฐ ์ต์ ์ ์ด์ฉํด์ ์นด์นด์ค๐ซ์ ์ฃผ์์ ๋ถ๋ฌ์ค์ยถ
์ผ๋ง์ ์ ์นด์นด์ค๊ฐ ์ฃผ์์ ๋ถํ ํ๋ค.
์ด๋ ์ฌ๋ฐ๋ฅธ ์ฃผ์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์ํด์๋ ์์ ์ฃผ๊ฐ ์ ์ฉ์ด ํ์ํ๋ค.
์ฐ์ ์นด์นด์ค์ ์ฃผ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค์
[10]:
krx.search('์นด์นด์ค')
[10]:
('์นด์นด์ค', 'KR7035720002', '035720')
[11]:
dataframe = krx.read('035720', start='2020-07-01', end='2021-07-01', kor=True)
plt.plot(dataframe['์ข
๊ฐ'])
plt.show()
์นด์นด์ค

์์ ์ฃผ๊ฐ๋ฅผ ์ ์ฉํ์ง ์์๋ ์ด๋ฐ ๊ทธ๋ํ๋ชจ์์ ๋ณผ ์ ์๋ค. ์ด์ ์์ ์ฃผ๊ฐ๋ฅผ ์ ์ฉํด์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์
adjust=Trueยถ
[12]:
dataframe = krx.read('035720', start='2020-07-01', end='2021-07-01', kor=True, adjust=True)
plt.plot(dataframe['์ข
๊ฐ'])
plt.show()
์นด์นด์ค

ํด๋น์ผ์ ์ฃผ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์๋ณด์ยถ
๊ฐ๋ ์ด๋ค ๋ ์ ์์ฅ ์ฃผ์ ์ข ๋ชฉ์ด๋ ์ฃผ๊ฐ๋ฅผ ์๊ณ ์ถ์ ๋๊ฐ ์๋ค. ๊ทธ๋ด ๋ read_date ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
read_dateยถ
read_date(self, date=None, *, kind=โstockโ, api=False, **kwargs)
date : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์กฐํ์ผ. ํํ๋ YYYY-MM-DD๊ฐ ๋์ด์ผ ํ๋ค. ์) 2021-06-01
kind : str, default โstockโ
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ. 'stock' : ์ฃผ์ 'per' : PER/EPS/๋ฐฐ๋น๊ธ ๋ฑ 'index': ์ง์ 'other_index' : ๊ธฐํ ์ง์ 'etf': ETF 'etn': ETN 'elw': ELW
kwargs
division : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ธ๋ถ ๊ตฌ๋ถ other_index : ['์ ๋ฌผ์ง์', '์ต์ ์ง์', '์ ๋ต์ง์', '์ํ์ง์']
reverse : bool, default false
dataframe์ ๊ฑฐ๊พธ๋ก ์ ๋ ฌํ๊ธฐ
kor : bool, default false
columns๋ฅผ ํ๊ธ๋ก ๋ฐ์์ค๊ธฐ
adjust : bool, default false
์์ ์ฃผ๊ฐ ์ ์ฉํ๊ธฐ
[14]:
dataframe = krx.read_date('2021-03-01', kor=True )
dataframe
[14]:
์ข ๋ชฉ์ฝ๋ | ์ข ๋ชฉ๋ช | ์์ฅ๊ตฌ๋ถ | ์์๋ถ | ์ข ๊ฐ | ๋๋น | ๋ฑ๋ฝ๋ฅ | ์๊ฐ | ๊ณ ๊ฐ | ์ ๊ฐ | ๊ฑฐ๋๋ | ๊ฑฐ๋๋๊ธ | ์๊ฐ์ด์ก | ์์ฅ์ฃผ์์ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 060310 | 3S | KOSDAQ | ์ค๊ฒฌ๊ธฐ์ ๋ถ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 44802511 |
1 | 095570 | AJ๋คํธ์์ค | KOSPI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 46822295 | |
2 | 006840 | AKํ๋ฉ์ค | KOSPI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 13247561 | |
3 | 054620 | APSํ๋ฉ์ค | KOSDAQ | ์ค๊ฒฌ๊ธฐ์ ๋ถ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20394221 |
4 | 265520 | AP์์คํ | KOSDAQ | ์ฐ๋๊ธฐ์ ๋ถ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 14480227 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2541 | 000547 | ํฅ๊ตญํ์ฌ2์ฐB | KOSPI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 153600 | |
2542 | 000545 | ํฅ๊ตญํ์ฌ์ฐ | KOSPI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 768000 | |
2543 | 003280 | ํฅ์ํด์ด | KOSPI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 116732559 | |
2544 | 037440 | ํฌ๋ฆผ | KOSDAQ | ์ค๊ฒฌ๊ธฐ์ ๋ถ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 13922475 |
2545 | 238490 | ํ์ค | KOSDAQ | ์ฐ๋๊ธฐ์ ๋ถ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 11312236 |
2546 rows ร 14 columns
์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ฉด ์์ฅ์ฃผ์์ ๋ง๊ณ ๋ ๋ค๋ฅธ ์ซ์๋ฐ์ดํฐ๋ ๋ชจ๋ 0์ผ๋ก ๋์จ๋ค.
๊ทธ ์ด์ ๋ ์กฐํํ ๋ ์ง๊ฐ ๊ณตํด์ผ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์ฒ๋ผ ๊ณตํด์ผ, ์ฃผ๋ง ๋ฑ์ ์ฃผ์์์ฅ์ด ์ด๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ๋ฐ์ดํฐ๊ฐ ๋์ค์ง ์๋๋ค.
๊ทธ๋์ ์ด๋ฅผ ์ฃผ์ํด์ผ ํ๋ค.
[15]:
dataframe = krx.read_date('2021-03-03', kor=True )
dataframe
[15]:
์ข ๋ชฉ์ฝ๋ | ์ข ๋ชฉ๋ช | ์์ฅ๊ตฌ๋ถ | ์์๋ถ | ์ข ๊ฐ | ๋๋น | ๋ฑ๋ฝ๋ฅ | ์๊ฐ | ๊ณ ๊ฐ | ์ ๊ฐ | ๊ฑฐ๋๋ | ๊ฑฐ๋๋๊ธ | ์๊ฐ์ด์ก | ์์ฅ์ฃผ์์ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 060310 | 3S | KOSDAQ | ์ค๊ฒฌ๊ธฐ์ ๋ถ | 2410 | 35 | 1.47 | 2375 | 2430 | 2370 | 146580 | 352937215 | 107974051510 | 44802511 |
1 | 095570 | AJ๋คํธ์์ค | KOSPI | 3970 | 0 | 0.00 | 4000 | 4000 | 3935 | 14248 | 56384865 | 185884511150 | 46822295 | |
2 | 006840 | AKํ๋ฉ์ค | KOSPI | 31400 | 1200 | 3.97 | 30400 | 31550 | 29900 | 96031 | 2981767450 | 415973415400 | 13247561 | |
3 | 054620 | APSํ๋ฉ์ค | KOSDAQ | ์ค๊ฒฌ๊ธฐ์ ๋ถ | 7710 | -180 | -2.28 | 7860 | 7860 | 7630 | 197848 | 1524869260 | 157239443910 | 20394221 |
4 | 265520 | AP์์คํ | KOSDAQ | ์ฐ๋๊ธฐ์ ๋ถ | 29850 | 1950 | 6.99 | 28350 | 29850 | 28250 | 745697 | 21748352100 | 432234775950 | 14480227 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2541 | 000547 | ํฅ๊ตญํ์ฌ2์ฐB | KOSPI | 19700 | 200 | 1.03 | 19650 | 19850 | 19600 | 243 | 4767900 | 3025920000 | 153600 | |
2542 | 000545 | ํฅ๊ตญํ์ฌ์ฐ | KOSPI | 7120 | -100 | -1.39 | 7150 | 7160 | 7090 | 6206 | 44239500 | 5468160000 | 768000 | |
2543 | 003280 | ํฅ์ํด์ด | KOSPI | 258 | 0 | 0.00 | 0 | 0 | 0 | 0 | 0 | 30117000222 | 116732559 | |
2544 | 037440 | ํฌ๋ฆผ | KOSDAQ | ์ค๊ฒฌ๊ธฐ์ ๋ถ | 4250 | 55 | 1.31 | 4195 | 4250 | 4180 | 20503 | 86439380 | 59170518750 | 13922475 |
2545 | 238490 | ํ์ค | KOSDAQ | ์ฐ๋๊ธฐ์ ๋ถ | 13850 | 450 | 3.36 | 13450 | 13950 | 13300 | 211884 | 2901116550 | 156674468600 | 11312236 |
2546 rows ร 14 columns
ํด์ผ์ด ์๋ ๋ ์ ์กฐํํ๋ฉด ์ ์์ ์ธ ๊ฐ๋ค์ ๋ณผ ์ ์๋ค.
ETF๋ฅผ ๋ถ๋ฌ์ค์ยถ
๐ก Info
ETF
๋ฟ๋ง ์๋๋ผ ์ฃผ์์ ์ ์ธํETN
,ELW
,PER
,index
,per
๋ฑ์ ์ํ๋ค๋ ๋ค์๊ณผ ๊ฐ์ด ์กฐํํ ์ ์๋ค.
ETF๋ ์ฃผ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ข ๋ชฉ์ฝ๋๊ฐ ์๋ค. ๋ฐ๋ผ์ ETF์ ์ข ๋ชฉ์ฝ๋๋ฅผ ๋จผ์ ๋ถ๋ฌ์ค์
[2]:
krx.search('๋์ค๋ฅ๊ธฐ์ ', kind='etf')
[2]:
('ARIRANG ๋ฏธ๊ตญ๋์ค๋ฅ๊ธฐ์ ์ฃผ', 'KR7287180004', '287180')
์์์ ๋ณด๋ ๋ฐ์ ๊ฐ์ด ์ฃผ์์ ์ ์ธํ ๋ค๋ฅธ ๊ธ์ต์ํ๋ค์ kind
์ธ์๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค. read ํจ์๋ฅผ ์ธ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ค
[3]:
dataframe = krx.read('287180', kind='etf', start='2021-01-01', end='2021-07-01')
dataframe
ARIRANG ๋ฏธ๊ตญ๋์ค๋ฅ๊ธฐ์ ์ฃผ
[3]:
close | change | change_ratio | NAV | open | high | low | volume | trading_value | market_cap | Net Assets | shares_outstanding | Fundamental_index | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
index_name | close | change | change_ratio | |||||||||||||
2021-07-01 | 23020 | 150 | 0.66 | 22992.88 | 22880 | 23025 | 22870 | 18151 | 417127085 | 29926000000 | 26441816772 | 1300000 | NASDAQ 100 Technology Sector Index | 8607.37 | 73.84 | -0.85 |
2021-06-30 | 22870 | 45 | 0.20 | 22956.50 | 22865 | 23155 | 22825 | 89193 | 2046890495 | 29731000000 | 26399972873 | 1300000 | NASDAQ 100 Technology Sector Index | 8681.21 | 40.19 | -0.46 |
2021-06-29 | 22825 | 390 | 1.74 | 22837.23 | 22575 | 22915 | 22575 | 35087 | 799583330 | 29672500000 | 26262811311 | 1300000 | NASDAQ 100 Technology Sector Index | 8721.40 | 64.01 | 0.74 |
2021-06-28 | 22435 | 5 | 0.02 | 22490.05 | 22430 | 22555 | 22365 | 7901 | 177369010 | 29165500000 | 29237061455 | 1300000 | NASDAQ 100 Technology Sector Index | 8657.39 | 148.55 | 1.75 |
2021-06-25 | 22430 | 30 | 0.13 | 22439.04 | 22510 | 22595 | 22360 | 44748 | 1003085835 | 29159000000 | 29170746982 | 1300000 | NASDAQ 100 Technology Sector Index | 8508.84 | 1.77 | -0.02 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2021-01-08 | 19630 | 595 | 3.13 | 19619.43 | 19440 | 19790 | 19440 | 37531 | 738128170 | 17667000000 | 17657490675 | 900000 | NASDAQ 100 Technology Sector Index | 7751.66 | 80.90 | 1.05 |
2021-01-07 | 19035 | 50 | 0.26 | 18955.77 | 18985 | 19205 | 18935 | 30523 | 581771565 | 17131500000 | 17060190480 | 900000 | NASDAQ 100 Technology Sector Index | 7670.76 | 243.58 | 3.28 |
2021-01-06 | 18985 | 100 | -0.52 | 19225.74 | 19715 | 19715 | 18975 | 18340 | 350602190 | 17086500000 | 17303166561 | 900000 | NASDAQ 100 Technology Sector Index | 7427.18 | 117.74 | -1.56 |
2021-01-05 | 19085 | 35 | -0.18 | 19054.30 | 18995 | 19115 | 18960 | 12585 | 239870605 | 17176500000 | 17148868444 | 900000 | NASDAQ 100 Technology Sector Index | 7544.92 | 81.74 | 1.10 |
2021-01-04 | 19120 | 30 | -0.16 | 19158.03 | 19300 | 19300 | 19050 | 18296 | 349801875 | 17208000000 | 17242229126 | 900000 | NASDAQ 100 Technology Sector Index | 7463.18 | 66.66 | -0.89 |
124 rows ร 16 columns
ETF๋ ์ฃผ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก read_date๋ฅผ ์จ์ ํน์ ์ผ์ ์์ฅ๋ ETF ์ํ๋ค์ ์งํ๋ค์ ์์๋ณผ ์ ์๋ค.
[5]:
krx.read_date('2021-03-03', kind='etf')
[5]:
symbol | name | close | change | change_ratio | NAV | open | high | low | volume | trading_value | market_cap | Net Assets | shares_outstanding | Fundamental_index | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
index_name | close | change | change_ratio | |||||||||||||||
0 | 152100 | ARIRANG 200 | 42975 | 510 | 1.20 | 43038.63 | 42505 | 42975 | 42260 | 181693 | 7743289310 | 812227500000 | 813430038087 | 18900000 | ์ฝ์คํผ 200 | 420.27 | 5.47 | 1.32 |
1 | 295820 | ARIRANG 200๋์ผ๊ฐ์ค | 10965 | 160 | 1.48 | 10954.04 | 10825 | 10965 | 10815 | 32 | 348420 | 4386000000 | 4381616468 | 400000 | ์ฝ์คํผ 200 ๋์ผ๊ฐ์ค์ง์ | 2359.37 | 35.33 | 1.52 |
2 | 253150 | ARIRANG 200์ ๋ฌผ๋ ๋ฒ๋ฆฌ์ง | 48770 | 1110 | 2.33 | 48704.75 | 47440 | 48770 | 47080 | 2685 | 128566885 | 14631000000 | 12176186984 | 300000 | ์ฝ์คํผ 200 ์ ๋ฌผ์ง์ | 2096.96 | 22.00 | 1.06 |
3 | 253160 | ARIRANG 200์ ๋ฌผ์ธ๋ฒ์ค2X | 4150 | -100 | -2.35 | 4151.05 | 4325 | 4325 | 4150 | 135276 | 571040965 | 15977500000 | 15566425822 | 3850000 | ์ฝ์คํผ 200 ์ ๋ฌผ์ง์ | 2096.96 | 22.00 | 1.06 |
4 | 278420 | ARIRANG ESG์ฐ์๊ธฐ์ | 9050 | 170 | 1.91 | 9049.92 | 8880 | 9050 | 8860 | 2134 | 19146700 | 4072500000 | 4072462846 | 450000 | WISE ESG์ฐ์๊ธฐ์ ์ง์ | 1219.77 | 22.12 | 1.85 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
468 | 152870 | ํ์ 200 | 43535 | 535 | 1.24 | 43587.81 | 42995 | 43535 | 42855 | 260 | 11204630 | 19590750000 | 28332074721 | 450000 | ์ฝ์คํผ 200 | 420.27 | 5.47 | 1.32 |
469 | 192720 | ํ์ ๊ณ ๋ฐฐ๋น์ ๋ณ๋์ฑ | 28900 | 670 | 2.37 | 28923.46 | 28405 | 28900 | 28375 | 1519 | 43589000 | 6936000000 | 6941629705 | 240000 | ์ฝ์คํผ 200 ๊ณ ๋ฐฐ๋น์ง์ | 2817.22 | 54.18 | 1.96 |
470 | 176710 | ํ์ ์ค๊ธฐ๊ตญ๊ณ ์ฑ | 101815 | 50 | 0.05 | 101837.46 | 0 | 0 | 0 | 0 | 0 | 6108900000 | 6110247386 | 60000 | KTB INDEX(์์ฅ๊ฐ๊ฒฉ) | 10779.63 | 6.47 | 0.06 |
471 | 140950 | ํ์ ์ฝ์คํผ100 | 33080 | 455 | 1.39 | 33160.44 | 32630 | 33080 | 32550 | 44 | 1445245 | 14555200000 | 14590594024 | 440000 | ์ฝ์คํผ 100 | 3215.74 | 42.26 | 1.33 |
472 | 215620 | ํฅ๊ตญ S&P์ฝ๋ฆฌ์๋ก์ฐ๋ณผ | 10910 | 185 | 1.72 | 10996.88 | 0 | 0 | 0 | 0 | 0 | 7527900000 | 7587849861 | 690000 | S&P Korea ์ ๋ณ๋์ฑ ์ง์ | 8858.61 | 159.49 | 1.83 |
473 rows ร 18 columns
๋นํธ์ฝ์ธ์ ๋ถ๋ฌ์ค์ using BinanceReader ๐ชยถ
๋นํธ์ฝ์ธ์ BinanceReader() ์์ ๋ถ๋ฌ์จ๋ค
readยถ
read(self, symbol, start, end, interval, **kwargs):
symbol : str, optional
Binance Symbol
interval : str, optional
์กฐํ ๊ฐ๊ฒฉ ์ค์ (1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M)
start : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์์์ผ. ํํ๋ YYYY-MM-DD๊ฐ ๋์ด์ผ ํ๋ค. ์) 2021-06-01
end : str
์กฐํํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฃ์ผ. ํํ๋ YYYY-MM-DD๊ฐ ๋์ด์ผ ํ๋ค. ์) 2021-06-01
[16]:
from coredotfinance.data import BinanceReader
binance = BinanceReader()
๋นํธ์ฝ์ธ๋ ์ฃผ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก symbol
, start
, end
๊ฐ์ ๋ฃ์ด์ค๋ค.
์ฐจ์ด์ ์ interval
์ด๋ผ๋ ์ธ์๋ฅผ ๋ฃ์ด์ฃผ๋ ๊ฒ์ธ๋ฐ ์ด๋ ์กฐํ ๊ฐ๊ฒฉ์ ์ค์ ํ๋ ๊ฒ์ด๋ค.
์ฐ์ bitcoin์ ์ฌ๋ณผ์ ๋ถ๋ฌ์๋ณด์
symbol_listยถ
[22]:
binance.symbol_list()[10:20]
[22]:
['BNBETH',
'BTCUSDT',
'ETHUSDT',
'HSRBTC',
'OAXETH',
'DNTETH',
'MCOETH',
'ICNETH',
'MCOBTC',
'WTCBTC']
๋นํธ์ฝ์ธ์ ์ฌ๋ณผ์๋ ๊ท์น์ด ์๋ค.
์ฐพ๊ณ ์ ํ๋ ๋นํธ์ฝ์ธ์ ์ฝ์ด + ๊ฐ๊ฒฉ ๊ธฐ์ค ์ด๋ค.
โBNBETHโ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋ณด๋ฉด ์ฐพ๊ณ ์ ํ๋ ์ฝ์ธ์ BNB ์ฝ์ธ์ด๊ณ ์ด ์ฝ์ธ์ด ETH ์ฝ์ธ์ ๊ฐ๊ฒฉ์ ๋นํด ์ผ๋ง์ ๋๋ก ๊ฑฐ๋๋๊ณ ์๋๊ฐ ํ๋ ๊ฒ์ด๋ค.
๋นํธ์ฝ์ธ์ด ์ค์ ๋ฌ๋ฌ ๋๋น ์ผ๋ง์ ๋ ํ๋์ง๋ โBTCUSDTโ๋ฅผ ๋ณด๋ฉด ๋๋ค.
USDT๋ ํ ๋์์ ๋ฐํํ๋ ์คํ ์ด๋ธ ์ฝ์ธ์ผ๋ก 1 USDT == 1 USD ๋ฅผ ์ถ์ข ํ๋ ์ฝ์ธ์ผ๋ก
๊ธฐ์ค ํํ์ ๊ฐ์น๋ฅผ ์ถ์ข ํจ์ผ๋ก์จ ๋ฌ๋ฌ ๊ฐ์น์ ๊ธฐ์ค์ ๊ฐ์ ธ์จ๋ค.
[25]:
dataframe = binance.read('BTCUSDT', start='2020-06-01', end='2021-06-01', interval='1d')
dataframe
BTCUSDT
[25]:
open | high | low | close | volume | |
---|---|---|---|---|---|
์ผ์ | |||||
2021-06-01 | 37253.82 | 37894.81 | 35666.00 | 36693.09 | 81234.663770 |
2021-05-31 | 35641.26 | 37499.00 | 34153.84 | 37253.81 | 94160.735289 |
2021-05-30 | 34605.15 | 36488.00 | 33379.00 | 35641.27 | 73535.386967 |
2021-05-29 | 35661.79 | 37338.58 | 33632.76 | 34605.15 | 112663.092689 |
2021-05-28 | 38529.99 | 38877.83 | 34684.00 | 35663.49 | 135377.629720 |
... | ... | ... | ... | ... | ... |
2020-06-05 | 9788.14 | 9854.75 | 9581.00 | 9621.16 | 47788.050050 |
2020-06-04 | 9666.32 | 9881.63 | 9450.00 | 9789.06 | 57456.100969 |
2020-06-03 | 9518.02 | 9690.00 | 9365.21 | 9666.24 | 46252.644939 |
2020-06-02 | 10202.71 | 10228.99 | 9266.00 | 9518.04 | 108970.773151 |
2020-06-01 | 9448.27 | 10380.00 | 9421.67 | 10200.77 | 76649.126960 |
366 rows ร 5 columns
[28]:
plt.plot(dataframe['low'])
plt.plot(dataframe['high'])
plt.show()

๊ทธ๋ํ๋ฅผ ๋ณด๋ 21๋ 5์์ ๋นํธ์ฝ์ธ ํฌ์์๋ค์ ์์ฃผ ํ๋ ์๊ธฐ๋ฅผ ๋ณด๋์ ๊ฒ์ด๋ค.
21๋
5์์ ๋ฐ์ดํฐ interval
์ ์กฐ์ ํด์ ๋ค์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์
[32]:
dataframe = binance.read('BTCUSDT', start='2021-05-01', end='2021-06-01', interval='1h')
plt.figure(figsize=(12,7))
plt.plot(dataframe['low'])
plt.plot(dataframe['high'])
plt.show()
BTCUSDT

๊ทธ๋ํ๋ฅผ ๋ณด๋ 21๋ 5์ 17์ผ๋ถํฐ 21์ผ ์ฌ์ด์ ๋นํธ์ฝ์ธ ํฌ์์๋ค์ ์์ฃผ ํ๋ ์๊ธฐ๋ฅผ ๋ณด๋์ ๊ฒ์ด๋ค.
21๋
5์ 17์ผ๋ถํฐ 21์ผ ์ฌ์ด์ ๋ฐ์ดํฐ interval
์ ์กฐ์ ํด์ ๋ค์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์
[33]:
dataframe = binance.read('BTCUSDT', start='2021-05-17', end='2021-05-21', interval='15m')
plt.figure(figsize=(12,7))
plt.plot(dataframe['low'])
plt.plot(dataframe['high'])
plt.show()
BTCUSDT

๊ทธ๋ํ๋ฅผ ๋ณด๋ 21๋ 5์ 19์ผ์ ๋นํธ์ฝ์ธ ํฌ์์๋ค์ ์์ฃผ ํ๋ ์๊ธฐ๋ฅผ ๋ณด๋์ ๊ฒ์ด๋ค.
21๋ 5์ 19์ผ์ ๋ฐ์ดํฐ interval์ ์กฐ์ ํด์ ๋ค์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์
[34]:
dataframe = binance.read('BTCUSDT', start='2021-05-19', end='2021-05-20', interval='1m')
plt.figure(figsize=(12,7))
plt.plot(dataframe['low'])
plt.plot(dataframe['high'])
plt.show()
BTCUSDT
