일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ChatGPT
- 일론 머스크
- ControlNet
- 멀티모달
- 아두이노
- 확산 모델
- 생성형 AI
- AI
- 오블완
- 트랜스포머
- tts
- TRANSFORMER
- PYTHON
- 딥마인드
- 우분투
- 티스토리챌린지
- AI 기술
- LORA
- 뉴럴링크
- 인공지능
- LLM
- 휴머노이드 로봇
- OpenAI
- 가상환경
- 딥러닝
- 서보모터
- 오픈AI
- 시간적 일관성
- ubuntu
- 메타
- Today
- Total
AI 탐구노트
PyKrx 패키지 제공 함수 테스트 본문
PyKrx 패키지를 사용하면서 어떤 값을 어떻게 받아오는지 하나씩 테스트를 진행해 봤습니다.
생각보다 이것저것 해 볼만한 것들이 많이 있는 것 같으니 당장은 사용하지 않더라도 대충은 파악해 두려고 합니다.
참고로 아래 출력물에서 인덱스로 나오는 값 (예: '티커', '날짜' 등)은 reset_index()를 추가로 해 주어야 컬럼으로 전환됩니다.
종목코드 목록 조회
get_market_ticker_list(date, market='KOSPI')
: [tickers] 형태 (list 타입), market 값은 KOSPI/KOSDAQ/KONEX/ALL 중 선택, 미설정 시 KOSPI
['095570', '006840', '027410', '282330', '138930', ...]
KRX300 종목 티커
get_index_portfolio_deposit_file('5300')
: [tickers] 형태, KRX300 인덱스(5300)에 속한 종목코드 목록 조회. 흠... 300인데 301개가 나오는 이유는? -_-;
['005930', '000660', '373220', '207940', '005380', '068270', '000270', '105560',...]
지정일 코스피 전종목 시세
get_market_ohlcv(date, market='KOSPI')
: [(티커)/시가/고가/저가/종가/거래량/거래대금/등락률], market값은 KOSPI, KOSDAQ, KONEX 등 선택 가능. 기본은 전체 시장
티커 시가 고가 저가 종가 거래량 거래대금 등락률
0 095570 4865 4865 4725 4760 201897 970335535 -1.45
1 006840 13120 13170 13120 13140 3648 47880990 0.15
2 027410 3480 3530 3480 3515 59315 207657225 0.14
3 282330 120500 120500 118200 119000 56544 6731887100 0.08
4 138930 9950 10030 9590 9590 3239792 31421649990 -3.33
.. ... ... ... ... ... ... ... ...
953 079980 3005 3020 2980 3015 38767 116477825 0.84
954 005010 4070 4130 4060 4085 216127 884470000 0.62
955 000540 3690 3750 3680 3705 14081 52210040 0.95
956 000545 5450 5460 5450 5460 1043 5684430 1.49
957 003280 2045 2200 2040 2180 12017395 26305660170 7.65
[958 rows x 8 columns]
지정일 특정 종목의 ohlcv 조회
get_market_ohlcv(date, date, ticker_nm)
: [날짜/시가/고가/저가/종가/거래량/등락률]
참고) OHLCV (open, high, low, close, volume)로 당일 시가, 고가, 저가, 종가, 거래량 데이터를 말합니다.
날짜 시가 고가 저가 종가 거래량 등락률
0 2024-09-20 63800 64700 63000 63000 30044428 -0.158479
종목코드의 종목명 조회
get_market_ticker_name(ticker_nm)
: '종목명'만 반환
삼성전자
종목 별 시가총액 조회
get_market_cap(date)
: [(티커)/종가/시가총액/거래량/거래대금/상장주식수]
티커 종가 시가총액 거래량 거래대금 상장주식수
0 005930 63000 376096300650000 32746056 2086233666488 5969782550
1 000660 157100 114369171541500 7155655 1131269181064 728002365
2 373220 393500 92079000000000 468352 186868274000 234000000
3 207940 1060000 75444440000000 152366 160279583750 71174000
4 005380 250500 52458755845500 809348 202041672500 209416191
... ... ... ... ... ... ...
2827 413300 1899 2479172985 206 327776 1305515
2828 245450 1487 2349400520 22 29987 1579960
2829 288490 77 1345311429 132537 9554725 17471577
2830 236030 625 1270832500 4521 2707041 2033332
2831 308700 199 796000000 0 0 4000000
[2832 rows x 6 columns]
특정 종목의 지정일 시가총액 조회
get_market_cap(date, date, ticker_nm)
: [(날짜)/시가총액/거래량/거래대금/상장주식수]
날짜 시가총액 거래량 거래대금 상장주식수
0 2024-09-20 376096300650000 32746056 2086233666488 5969782550
종목 별 펀더멘탈 조회
get_market_fundamental(date)
: [(티커)/BPS/PER/PBR/EPS/DIV/DPS]
티커 BPS PER PBR EPS DIV DPS
0 095570 9326 12.97 0.51 367 5.67 270
1 006840 44339 4.99 0.30 2635 1.52 200
2 027410 17286 4.32 0.20 813 3.41 120
3 282330 62197 10.50 1.91 11337 3.45 4100
4 138930 31746 5.03 0.30 1905 5.32 510
.. ... ... ... ... ... ... ...
923 079980 8246 0.00 0.37 0 0.00 0
924 005010 17923 3.18 0.23 1285 6.12 250
925 000540 20881 0.79 0.18 4664 0.00 0
926 000545 0 0.00 0.00 0 0.00 0
927 003280 690 15.35 3.16 142 0.00 0
[928 rows x 7 columns]
지정일 투자자 별 매매동향 조회
get_market_trading_volume_by_date(date, date, ticker_nm)
: [(날짜)/기관합계/기타법인/개인/외국인합계/전체]
날짜 기관합계 기타법인 개인 외국인합계 전체
0 2024-09-20 1239652 -577 5046717 -6285792 0
투자자 별 거래량 조회
stock.get_market_trading_value_by_investor(date, date, ticker_nm)
: 참고) ticker_nm 대신 KOSPI, KOSDAQ, KONEX 등 설정 가능
매도 매수 순매수
투자자구분
금융투자 36490789300 119597504200 83106714900
보험 1811342700 2467818100 656475400
투신 9327343400 9892880900 565537500
사모 6363239700 4812992700 -1550247000
은행 45770600 783667400 737896800
기타금융 26295200 1932390700 1906095500
연기금 등 389289248100 383392916600 -5896331500
기관합계 443354029000 522880170600 79526141600
기타법인 14286365600 14207181100 -79184500
개인 379404997200 699859643800 320454646600
외국인 1245718580088 841427246288 -404291333800
기타외국인 3469694600 7859424700 4389730100
전체 2086233666488 2086233666488 0
테스트 코드
위의 내용을 하나씩 테스트 해 볼 수 있는 코드를 준비해 봤습니다.
귀차니즘으로 한줄로 표시해서 조건을 바꿔가며 하나씩 보려구요... ^^;
from pykrx import stock
from datetime import datetime, timedelta
date = datetime.today().strftime('%Y%m%d')
def get_previous_trading_day(): # 오늘 기준 이전 영업일 반환 함수
date = datetime.today()
while True:
date -= timedelta(days=1)
if date.weekday() < 5: # 월~금
return date.strftime('%Y%m%d')
date = get_previous_trading_day()
ticker_nm = '005930'
if 0: df = stock.get_market_ticker_list(date, market='KOSPI') # 종목코드 목록 조회 [tickers], market: KOSPI/KOSDAQ/KONEX/ALL 중 선택, 미설정 시 KOSPI
if 0: df = stock.get_index_portfolio_deposit_file('5300') # KRX300 종목 티커, 인덱스에 속한 종목코드 목록 조회 [tickers]
if 0: df = stock.get_market_ohlcv(date, market='KOSPI').reset_index() # 지정일 코스피 전종목 시세 가져오기, [티커/시가/고가/저가/종가/거래량/거래대금/등락률], KOSPI, KOSDAQ, KONEX, 미지정 시 전체 시장 조회
if 0: df = stock.get_market_ohlcv(date, date, ticker_nm).reset_index() # 지정일 ohlcv 조회 [날짜/시가/고가/저가/종가/거래량/등락률]
if 0: df = stock.get_market_ticker_name(ticker_nm) # ticker(종목코드)에 따른 종목명 조회 [종목명]
if 0: df = stock.get_market_cap(date).reset_index() # 종목 별 시가총액 조회 [티커/종가/시가총액/거래량/거래대금/상장주식수]
if 0: df = stock.get_market_cap(date, date, ticker_nm).reset_index() # 특정 종목의 지정일 시가총액 조회 [날짜/시가총액/거래량/거래대금/상장주식수]
if 0: df = stock.get_market_fundamental(date).reset_index() # 종목 별 펀더멘탈 조회 [티커/BPS/PER/PBR/EPS/DIV/DPS]
if 0: df = stock.get_market_trading_volume_by_date(date, date, ticker_nm).reset_index() # 지정일 투자자 별 거래실적 조회 [날짜/기관합계/기타법인/개인/외국인합계/전체]
if 1: df = stock.get_market_trading_value_by_investor(date, date, ticker_nm) # 투자자 별 거래량, ticker_nm 대신 KOSPI, KOSDAQ, KONEX 설정 가능
# 결과값 출력
print(df)
'DIY 테스트' 카테고리의 다른 글
[주식] KRX 300 맵 만들어보기 (10) | 2024.09.22 |
---|---|
주가 정보 가져오기 (4) | 2024.09.21 |
SAM2 (Segment Anything 2) 돌려 보기 (0) | 2024.09.20 |
종목 별 주가 현황 표 만들기 (1) | 2024.09.19 |
ChatGPT를 이용해 퀴즈 프로그램 만들기 (3) | 2024.09.03 |