-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathkos.py
More file actions
39 lines (31 loc) · 1.33 KB
/
kos.py
File metadata and controls
39 lines (31 loc) · 1.33 KB
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
32
33
34
35
36
37
38
39
import pandas as pd
def convert_date(date_str):
return date_str.replace("-", "")
class KOS_StockDownloader:
def __init__(self, stock, start_date, end_date, market="KOSPI"):
self.stock = stock
self.start_date = convert_date(start_date)
self.end_date = convert_date(end_date)
self.market = market
self.df_full = pd.DataFrame()
def execute(self, start_ticker):
tickers = self.stock.get_market_ticker_list(self.end_date, market=self.market)
tickers = sorted(tickers)
flag=False
for i in tickers:
if i == start_ticker:
flag = True
if flag:
try:
df = self.stock.get_market_ohlcv_by_date(self.start_date, self.end_date, i)
if '등락률' in df.columns:
df = df.drop('등락률', axis=1)
df['종목명'] = i
cols = df.columns.tolist()
cols.insert(0, cols.pop(cols.index('종목명')))
df = df[cols]
self.df_full = pd.concat([self.df_full, df])
except Exception as e:
print(f"Error with ticker {i}: {e}")
def save_data(self, file_name):
self.df_full.to_csv(file_name, encoding="utf-8-sig")