diff --git a/HTS_122630.py b/HTS_122630.py index c686493..1dc82c9 100644 --- a/HTS_122630.py +++ b/HTS_122630.py @@ -30,6 +30,17 @@ class HTS_122630 (HTS): self.labelMaker = LabelMaker(RESOURCE_PATH) return + def getDefaultSell(self, log_time, stock_code): + jangoDic = self.requstJango() + if jangoDic and len(jangoDic.keys()) > 0: + for code in jangoDic: + if jangoDic[code]['매도가능'] > 0: + if code == "A"+stock_code: + orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60) + print("SELL", log_time, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60) + + return + def getSellingPrice(self, final_price): # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. jangoDic = self.requstJango() @@ -67,9 +78,6 @@ class HTS_122630 (HTS): def buyRealTime(self, today): - timecheckList = pd.read_csv("hts/timecheck.csv").values.tolist() - timecheck = {today + " " + str(second).zfill(6):False for second, check in timecheckList} - print ("START...") THIS_TIME = datetime.now() final_sell_check = False @@ -80,7 +88,12 @@ class HTS_122630 (HTS): if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): # 3시 까지만 매수를 시도한다. - if THIS_TIME.strftime('%Y%m%d %H%M%S') in timecheck and not timecheck[THIS_TIME.strftime('%Y%m%d %H%M%S')]: + if THIS_TIME.strftime('%S') in ("09", "19", "29", "39", "49", "59"): + # 10초마다 체크하여 체결된 내역이 있으면 60원 높게 매도를 주문한다. + self.getDefaultSell(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code) + + if THIS_TIME.strftime('%S') == "05": + # 매분 3초마다 실행한다. # 데이터를 가지고 온다. result = self.getRealTime(self.stock_code, today, LAST_DATA) @@ -144,8 +157,6 @@ class HTS_122630 (HTS): data["fast_k"][data_size - 2], data["slow_k"][data_size - 2], data["slow_d"][data_size - 1], data["rsi"][data_size - 1], data["rsis"][data_size - 1])) - timecheck[THIS_TIME] = True - elif datetime.strptime(today + " 151530", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151600", '%Y%m%d %H%M%S'): # 3시 15분 30초부터 3시 16분 사이는 잔량을 매도한다. diff --git a/HTS_252670.py b/HTS_252670.py index dedd630..b255ac6 100644 --- a/HTS_252670.py +++ b/HTS_252670.py @@ -31,6 +31,17 @@ class HTS_252670 (HTS): self.labelMaker = LabelMaker(RESOURCE_PATH) return + def getDefaultSell(self, log_time, stock_code): + jangoDic = self.requstJango() + if jangoDic and len(jangoDic.keys()) > 0: + for code in jangoDic: + if jangoDic[code]['매도가능'] > 0: + if code == "A"+stock_code: + orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60) + print("SELL", log_time, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60) + + return + def getSellingPrice(self, final_price): # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. jangoDic = self.requstJango() @@ -56,21 +67,18 @@ class HTS_252670 (HTS): return 0, 0 - def getFinalSellingPrice(self, final_price): + def getFinalSellingPrice(self, final_price, diff): # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. jangoDic = self.requstJango() if jangoDic and len(jangoDic.keys()) > 0: for code in jangoDic: if jangoDic[code]['매도가능'] > 0: - return jangoDic[code]['매도가능'], final_price - 5 + return jangoDic[code]['매도가능'], final_price + diff return 0, 0 def buyRealTime(self, today): - timecheckList = pd.read_csv("hts/timecheck.csv").values.tolist() - timecheck = {today + " " + str(second).zfill(6):False for second, check in timecheckList} - print ("START...") THIS_TIME = datetime.now() final_sell_check = False @@ -81,7 +89,13 @@ class HTS_252670 (HTS): if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): # 3시 까지만 매수를 시도한다. - if THIS_TIME.strftime('%Y%m%d %H%M%S') in timecheck and not timecheck[THIS_TIME.strftime('%Y%m%d %H%M%S')]: + if THIS_TIME.strftime('%S') in ("06", "16", "26", "36", "46", "56"): + # 10초마다 체크하여 체결된 내역이 있으면 60원 높게 매도를 주문한다. + self.getDefaultSell(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code) + + #if THIS_TIME.strftime('%Y%m%d %H%M%S') in timecheck and not timecheck[THIS_TIME.strftime('%Y%m%d %H%M%S')]: + if THIS_TIME.strftime('%S') == "03": + # 매분 3초마다 실행한다. # 데이터를 가지고 온다. result = self.getRealTime(self.stock_code, today, LAST_DATA) @@ -164,7 +178,7 @@ class HTS_252670 (HTS): result = self.getRealTime(self.stock_code, today, LAST_DATA) final_price = result["close"][len(result["close"]) - 1] - #selling_count, selling_price = self.getFinalSellingPrice(final_price) + #selling_count, selling_price = self.getFinalSellingPrice(final_price, -5) selling_count, selling_price = self.getSellingPrice(final_price) # 분석된 가격으로 매도 요청한다. diff --git a/hts/HTS.py b/hts/HTS.py index cfd87be..b9094d2 100644 --- a/hts/HTS.py +++ b/hts/HTS.py @@ -298,7 +298,7 @@ class HTS: if (ret == 2 or ret == 3): print("통신 오류", ret) - return False; + return False # 통신 초과 요청 방지에 의한 요류 인 경우 while (ret == 4): # 연속 주문 오류 임. 이 경우는 남은 시간동안 반드시 대기해야 함. diff --git a/hts/timecheck.csv b/hts/timecheck.csv deleted file mode 100644 index 1172f90..0000000 --- a/hts/timecheck.csv +++ /dev/null @@ -1,375 +0,0 @@ -time, check -090103,False -090203,False -090303,False -090403,False -090503,False -090603,False -090703,False -090803,False -090903,False -091003,False -091103,False -091203,False -091303,False -091403,False -091503,False -091603,False -091703,False -091803,False -091903,False -092003,False -092103,False -092203,False -092303,False -092403,False -092503,False -092603,False -092703,False -092803,False -092903,False -093003,False -093103,False -093203,False -093303,False -093403,False -093503,False -093603,False -093703,False -093803,False -093903,False -094003,False -094103,False -094203,False -094303,False -094403,False -094503,False -094603,False -094703,False -094803,False -094903,False -095003,False -095103,False -095203,False -095303,False -095403,False -095503,False -095603,False -095703,False -095803,False -095903,False -100003,False -100103,False -100203,False -100303,False -100403,False -100503,False -100603,False -100703,False -100803,False -100903,False -101003,False -101103,False -101203,False -101303,False -101403,False -101503,False -101603,False -101703,False -101803,False -101903,False -102003,False -102103,False -102203,False -102303,False -102403,False -102503,False -102603,False -102703,False -102803,False -102903,False -103003,False -103103,False -103203,False -103303,False -103403,False -103503,False -103603,False -103703,False -103803,False -103903,False -104003,False -104103,False -104203,False -104303,False -104403,False -104503,False -104603,False -104703,False -104803,False -104903,False -105003,False -105103,False -105203,False -105303,False -105403,False -105503,False -105603,False -105703,False -105803,False -105903,False -110003,False -110103,False -110203,False -110303,False -110403,False -110503,False -110603,False -110703,False -110803,False -110903,False -111003,False -111103,False -111203,False -111303,False -111403,False -111503,False -111603,False -111703,False -111803,False -111903,False -112003,False -112103,False -112203,False -112303,False -112403,False -112503,False -112603,False -112703,False -112803,False -112903,False -113003,False -113103,False -113203,False -113303,False -113403,False -113503,False -113603,False -113703,False -113803,False -113903,False -114003,False -114103,False -114203,False -114303,False -114403,False -114503,False -114603,False -114703,False -114803,False -114903,False -115003,False -115103,False -115203,False -115303,False -115403,False -115503,False -115603,False -115703,False -115803,False -115903,False -120003,False -120103,False -120203,False -120303,False -120403,False -120503,False -120603,False -120703,False -120803,False -120903,False -121003,False -121103,False -121203,False -121303,False -121403,False -121503,False -121603,False -121703,False -121803,False -121903,False -122003,False -122103,False -122203,False -122303,False -122403,False -122503,False -122603,False -122703,False -122803,False -122903,False -123003,False -123103,False -123203,False -123303,False -123403,False -123503,False -123603,False -123703,False -123803,False -123903,False -124003,False -124103,False -124203,False -124303,False -124403,False -124503,False -124603,False -124703,False -124803,False -124903,False -125003,False -125103,False -125203,False -125303,False -125403,False -125503,False -125603,False -125703,False -125803,False -125903,False -130003,False -130103,False -130203,False -130303,False -130403,False -130503,False -130603,False -130703,False -130803,False -130903,False -131003,False -131103,False -131203,False -131303,False -131403,False -131503,False -131603,False -131703,False -131803,False -131903,False -132003,False -132103,False -132203,False -132303,False -132403,False -132503,False -132603,False -132703,False -132803,False -132903,False -133003,False -133103,False -133203,False -133303,False -133403,False -133503,False -133603,False -133703,False -133803,False -133903,False -134003,False -134103,False -134203,False -134303,False -134403,False -134503,False -134603,False -134703,False -134803,False -134903,False -135003,False -135103,False -135203,False -135303,False -135403,False -135503,False -135603,False -135703,False -135803,False -135903,False -140003,False -140103,False -140203,False -140303,False -140403,False -140503,False -140603,False -140703,False -140803,False -140903,False -141003,False -141103,False -141203,False -141303,False -141403,False -141503,False -141603,False -141703,False -141803,False -141903,False -142003,False -142103,False -142203,False -142303,False -142403,False -142503,False -142603,False -142703,False -142803,False -142903,False -143003,False -143103,False -143203,False -143303,False -143403,False -143503,False -143603,False -143703,False -143803,False -143903,False -144003,False -144103,False -144203,False -144303,False -144403,False -144503,False -144603,False -144703,False -144803,False -144903,False -145003,False -145103,False -145203,False -145303,False -145403,False -145503,False -145603,False -145703,False -145803,False -145903,False -150003,False -150103,False -150203,False -150303,False -150403,False -150503,False -150603,False -150703,False -150803,False -150903,False -151003,False -151103,False -151203,False -151303,False -151403,False \ No newline at end of file