init
This commit is contained in:
58
hts/HTS.py
58
hts/HTS.py
@@ -1,5 +1,7 @@
|
||||
import win32com.client
|
||||
import csv
|
||||
import time
|
||||
from datetime import datetime
|
||||
from hts.OrderItem import OrderItem
|
||||
|
||||
class HTS:
|
||||
@@ -371,7 +373,7 @@ class HTS:
|
||||
return
|
||||
|
||||
# 주식 현재가 조회
|
||||
def writeStockData(self, stock_code, given_day):
|
||||
def writeStockData(self, stock_code, today):
|
||||
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
|
||||
bConnect = objCpCybos.IsConnect
|
||||
if (bConnect == 0):
|
||||
@@ -381,11 +383,11 @@ class HTS:
|
||||
# 차트 객체 구하기
|
||||
objStockChart = win32com.client.Dispatch("CpSysDib.StockChart")
|
||||
|
||||
outfp = open("./data/"+stock_code+"_"+given_day+".csv", mode="w", encoding="utf-8")
|
||||
outfp = open("./data/"+stock_code+"_"+today+".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(2, today) # 기간 조회 시, 시작일
|
||||
objStockChart.SetInputValue(3, today) # 기간 조회 시, 종료일
|
||||
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) 차트 요청
|
||||
@@ -428,9 +430,47 @@ class HTS:
|
||||
outFp.close()
|
||||
return
|
||||
|
||||
def getCSV(self, fileName, given_day, result):
|
||||
with open(fileName, 'r') as infp:
|
||||
reader = csv.reader(infp)
|
||||
next(reader)
|
||||
|
||||
for rows in reader:
|
||||
days = rows[0] # data.날짜
|
||||
time = rows[1] # data.시간
|
||||
open_v = rows[2] # data.시가
|
||||
high = rows[3] # data.고가
|
||||
low = rows[4] # data.저가
|
||||
close = rows[5] # data.종가
|
||||
vol = rows[6] # data.거래량
|
||||
|
||||
start_time = datetime.strptime(given_day + " 090000", '%Y%m%d %H%M%S')
|
||||
|
||||
temp = datetime.strptime(str(days) + " " + str(time).zfill(4) + "00", '%Y%m%d %H%M%S')
|
||||
if temp < start_time:
|
||||
continue
|
||||
|
||||
result["time"].append(temp)
|
||||
result["open"].append(int(open_v))
|
||||
result["close"].append(int(close))
|
||||
result["high"].append(int(high))
|
||||
result["low"].append(int(low))
|
||||
result["vol"].append(int(vol))
|
||||
return
|
||||
|
||||
# 주식 현재가 조회
|
||||
def getRealTime(self, stock_code, given_day, result):
|
||||
int_given_day = int(given_day)
|
||||
def getRealTime(self, stock_code, lastday, today):
|
||||
result = {"check": set(),
|
||||
"time": [],
|
||||
"open": [],
|
||||
"close": [],
|
||||
"high": [],
|
||||
"low": [],
|
||||
"vol": []}
|
||||
|
||||
self.getCSV("./data/" + stock_code + "_" + lastday + ".csv", today, result)
|
||||
|
||||
int_given_day = int(today)
|
||||
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
|
||||
bConnect = objCpCybos.IsConnect
|
||||
if (bConnect == 0):
|
||||
@@ -442,8 +482,8 @@ class HTS:
|
||||
|
||||
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(2, today) # 기간 조회 시, 시작일
|
||||
objStockChart.SetInputValue(3, today) # 기간 조회 시, 종료일
|
||||
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) 차트 요청
|
||||
@@ -454,7 +494,7 @@ class HTS:
|
||||
size = objStockChart.GetHeaderValue(3)
|
||||
|
||||
#print("날짜", "시간", "시가", "고가", "저가", "종가", "거래량")
|
||||
start_time = datetime.strptime(given_day + " 090000", '%Y%m%d %H%M%S')
|
||||
start_time = datetime.strptime(today + " 090000", '%Y%m%d %H%M%S')
|
||||
for i in range(size-1, -1, -1):
|
||||
int_day = objStockChart.GetDataValue(0, i)
|
||||
int_time = objStockChart.GetDataValue(1, i)
|
||||
|
||||
Reference in New Issue
Block a user