This commit is contained in:
dosang.yoon
2022-06-03 13:44:37 +09:00
parent 0b49e88adf
commit 617db82e60
11 changed files with 34 additions and 37 deletions

View File

@@ -1,4 +1,4 @@
import win32com.client
#import win32com.client
import time
from hts.OrderItem import OrderItem

View File

@@ -1,4 +1,3 @@
import win32com.client
import time
import os
from datetime import datetime

View File

@@ -1,4 +1,3 @@
import win32com.client
import time
import os
from datetime import datetime

View File

@@ -1,14 +1,10 @@
import win32com.client
import time
import os
from datetime import datetime
from datetime import datetime, timedelta
import pandas as pd
from hts.HTS import HTS
from hts.BuySellChecker import BuySellChecker
class DataDownloader (HTS):
buySellChecker = None
@@ -20,7 +16,7 @@ class DataDownloader (HTS):
return
# 주식 현재가 조회
def writeStockData(self, stock_code, given_day):
def writeStockData(self, stock_code, given_day, type, outDir):
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
bConnect = objCpCybos.IsConnect
if (bConnect == 0):
@@ -30,14 +26,14 @@ class DataDownloader (HTS):
# 차트 객체 구하기
objStockChart = win32com.client.Dispatch("CpSysDib.StockChart")
outfp = open("./data/"+stock_code+"_"+given_day+".csv", mode="w", encoding="utf-8")
outfp = open(outDir+"/"+stock_code+"_"+given_day+"_"+type+".csv", mode="w", encoding="utf-8")
objStockChart.SetInputValue(0, 'A' + stock_code) # 종목 코드
objStockChart.SetInputValue(1, ord('1')) # 1: 기간으로 조회, 2: 개수로 조회
objStockChart.SetInputValue(2, given_day) # 기간 조회 시, 시작일
objStockChart.SetInputValue(3, given_day) # 기간 조회 시, 종료일
objStockChart.SetInputValue(4, 400) # 조회 시 가져오는 Line 개수
objStockChart.SetInputValue(5, [0, 1, 2, 3, 4, 5, 8]) # 날짜,시간,시가,고가,저가,종가,거래량
objStockChart.SetInputValue(6, ord('m')) # '차트 주가 - 월(M), 주(W), 일(D), 시(H), 분(m), 초(S) 차트 요청
objStockChart.SetInputValue(6, ord(type)) # '차트 주가 - 월(M), 주(W), 일(D), 시(H), 분(m), 초(S) 차트 요청
objStockChart.SetInputValue(7, 1)
objStockChart.SetInputValue(9, ord('1')) # 수정주가 사용
objStockChart.BlockRequest()
@@ -287,13 +283,16 @@ if __name__ == "__main__":
today = datetime.today()
PROJECT_HOME = os.path.join(os.path.dirname(os.path.join(os.path.dirname(__file__))))
RESOURCE_DIR = PROJECT_HOME + "/resources/analysis/"+today.strftime("%Y%m%d")
RESOURCE_DIR = PROJECT_HOME + "/resources/data"
# KODEX 인버스 * 2
stock_code = "252670"
dataDownloader = DataDownloader()
given_day = datetime.today().strftime('%Y%m%d')
dataDownloader.writeStockData(stock_code, "20220520")
for i in range(1, 1000):
given_day = datetime.today() - timedelta(i)
# '차트 주가 - 월(M), 주(W), 일(D), 시(H), 분(m), 초(S) 차트 요청
dataDownloader.writeStockData(stock_code, given_day.strftime('%Y%m%d'), 'm', RESOURCE_DIR)
dataDownloader.writeStockData(stock_code, given_day.strftime('%Y%m%d'), 'S', RESOURCE_DIR)
print ("done...")