This commit is contained in:
dosang.yoon
2022-06-04 13:30:08 +09:00
parent 3f0d9938aa
commit 14d98b0610
3 changed files with 168 additions and 7 deletions

View File

@@ -15,7 +15,7 @@ class DataDownloader (HTS):
return
# 주식 현재가 조회
def writeStockData(self, stock_code, given_day, type, outDir):
def writeStockData(self, stock_code, given_day, type, outfp):
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
bConnect = objCpCybos.IsConnect
if (bConnect == 0):
@@ -39,8 +39,6 @@ class DataDownloader (HTS):
size = objStockChart.GetHeaderValue(3)
if size > 0:
outfp = open(outDir + "/" + stock_code + "_" + given_day + "_" + type + ".csv", mode="w", encoding="utf-8")
outfp.write("%s,%s,%s,%s,%s,%s,%s\n" % ("날짜", "시간", "시가", "고가", "저가", "종가", "거래량"))
for i in range(size - 1, -1, -1):
day = objStockChart.GetDataValue(0, i)
time = objStockChart.GetDataValue(1, i)
@@ -50,7 +48,6 @@ class DataDownloader (HTS):
close = objStockChart.GetDataValue(5, i)
vol = objStockChart.GetDataValue(6, i)
outfp.write("%d,%s,%d,%d,%d,%d,%d\n" % (day, str(time).zfill(4), start, high, low, close, vol))
outfp.close()
return size
@@ -65,13 +62,18 @@ if __name__ == "__main__":
stock_code = "122630"
dataDownloader = DataDownloader()
outFp_m = open(RESOURCE_DIR + "/" + stock_code + "_m.csv", mode="w", encoding="utf-8")
outFp_m.write("%s,%s,%s,%s,%s,%s,%s\n" % ("날짜", "시간", "시가", "고가", "저가", "종가", "거래량"))
outFp_S = open(RESOURCE_DIR + "/" + stock_code + "_S.csv", mode="w", encoding="utf-8")
outFp_S.write("%s,%s,%s,%s,%s,%s,%s\n" % ("날짜", "시간", "시가", "고가", "저가", "종가", "거래량"))
zero_count_m, zero_count_S = 0, 0
for i in range(1, 100000):
given_day = datetime.today() - timedelta(i)
# '차트 주가 - 월(M), 주(W), 일(D), 시(H), 분(m), 초(S) 차트 요청
if zero_count_m < 10:
count_m = dataDownloader.writeStockData(stock_code, given_day.strftime('%Y%m%d'), 'm', RESOURCE_DIR)
count_m = dataDownloader.writeStockData(stock_code, given_day.strftime('%Y%m%d'), 'm', outFp_m)
if count_m == 0:
zero_count_m += 1
else:
@@ -79,7 +81,7 @@ if __name__ == "__main__":
print(given_day, "m", count_m)
if zero_count_S < 10:
count_S = dataDownloader.writeStockData(stock_code, given_day.strftime('%Y%m%d'), 'S', RESOURCE_DIR)
count_S = dataDownloader.writeStockData(stock_code, given_day.strftime('%Y%m%d'), 'S', outFp_S)
if count_S == 0:
zero_count_S += 1
else:
@@ -88,4 +90,7 @@ if __name__ == "__main__":
if zero_count_m > 10 and zero_count_S > 10:
break
outFp_m.close()
outFp_S.close()
print ("done...")