From 97798ee2f8cf34070a3215e7c64664856b20869e Mon Sep 17 00:00:00 2001 From: "dosang.yoon" Date: Wed, 10 Aug 2022 14:13:19 +0900 Subject: [PATCH] init --- HTS_122630.py | 64 +++++++------------------------------------------- HTS_252670.py | 65 +++++++-------------------------------------------- 2 files changed, 18 insertions(+), 111 deletions(-) diff --git a/HTS_122630.py b/HTS_122630.py index b89e174..e92870c 100644 --- a/HTS_122630.py +++ b/HTS_122630.py @@ -30,14 +30,17 @@ class HTS_122630 (HTS): self.labelMaker = LabelMaker(RESOURCE_PATH) return - def getDefaultSell(self, log_time, stock_code, final_price): + def getSellingPrice(self, log_time, stock_code, final_price, diff=None): jangoDic = self.requstJango() if jangoDic and len(jangoDic.keys()) > 0: for code in jangoDic: if jangoDic[code]['매도가능'] > 0: - max_price = max(jangoDic[code]['장부가'], final_price) + if diff == None: + max_price = max(jangoDic[code]['장부가'], final_price) + sell_price = (int(max_price + 5) - int(max_price + 5) % 5) + 10 + else: + sell_price = (int(final_price) - int(final_price) % 5) + diff if code == "A"+stock_code: - sell_price = (int(max_price+5) - int(max_price+5) % 5) + 10 if log_time.strftime('%H%M') < "1430": orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], sell_price) print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price) @@ -46,41 +49,6 @@ class HTS_122630 (HTS): print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price) return - def getSellingPrice(self, final_price): - # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. - jangoDic = self.requstJango() - if jangoDic and len(jangoDic.keys()) > 0: - for code in jangoDic: - if jangoDic[code]['매도가능'] > 0: - if final_price >= jangoDic[code]['장부가'] + 5: - return jangoDic[code]['매도가능'], final_price - else: - # 장부가 가격의 마지막 자리를 0으로 만든다. (2090 -> 2090, 2092 -> 2090, 2098 -> 2090) - sell_price = int(jangoDic[code]['장부가'] / 10) * 10 - # 장부가의 마지막 자리수를 가져온다. - last_number = int(jangoDic[code]['장부가']) % 10 - if last_number in [0, 1, 2, 3]: - # 장부가의 마지막 자리수가 0,1,2,3 이라면 (2090, 2091, 2092 -> 2095 에 매도) - return jangoDic[code]['매도가능'], sell_price + 5 - elif last_number in [4, 5, 6, 7]: - # 장부가의 마지막 자리수가 4,5,6,7 이라면 (2093, 2094, 2095, 2096 -> 2100 에 매도) - return jangoDic[code]['매도가능'], sell_price + 10 - else: - # 장부가의 마지막 자리수가 8,9 라면 (2098, 2099 -> 2105 에 매도) - return jangoDic[code]['매도가능'], sell_price + 15 - - return 0, 0 - - def getFinalSellingPrice(self, final_price): - # 만약 잔고가 있으면 장부가보다 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 0, 0 - def buyRealTime(self, today): print ("START...") @@ -146,15 +114,8 @@ class HTS_122630 (HTS): # 매도 미체결을 모두 취소한다. self.cancelOrderList(orderListToCancel) - # 매도 가격을 가져온다. - selling_count, selling_price = self.getSellingPrice(final_price) - # 분석되 가격으로 매도 요청한다. - if selling_count != 0 and selling_price != 0: - # 매도를 요청한다. - orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price) - - # 로그 출력 - print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), selling_count, selling_price, len(orderListToCancel), len(ORDER_LIST)) + # 매도 한다. + self.getSellingPrice(THIS_TIME, self.stock_code, final_price) # 로그 출력 @@ -191,14 +152,7 @@ class HTS_122630 (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.getSellingPrice(final_price) - - # 분석되 가격으로 매도 요청한다. - if selling_count != 0 and selling_price != 0: - orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price) - # 로그 출력 - print("SELL", THIS_TIME, selling_count, selling_price) + self.getSellingPrice(THIS_TIME, self.stock_code, final_price) final_sell_check = True diff --git a/HTS_252670.py b/HTS_252670.py index c91ffab..c5958ca 100644 --- a/HTS_252670.py +++ b/HTS_252670.py @@ -31,14 +31,17 @@ class HTS_252670 (HTS): self.labelMaker = LabelMaker(RESOURCE_PATH) return - def getDefaultSell(self, log_time, stock_code, final_price): + def getSellingPrice(self, log_time, stock_code, final_price, diff=None): jangoDic = self.requstJango() if jangoDic and len(jangoDic.keys()) > 0: for code in jangoDic: if jangoDic[code]['매도가능'] > 0: - max_price = max (jangoDic[code]['장부가'], final_price) + if diff == None: + max_price = max(jangoDic[code]['장부가'], final_price) + sell_price = (int(max_price + 5) - int(max_price + 5) % 5) + 10 + else: + sell_price = (int(final_price) - int(final_price) % 5) + diff if code == "A"+stock_code: - sell_price = (int(max_price+5) - int(max_price+5) % 5) + 5 if log_time.strftime('%H%M') < "1430": orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], sell_price) print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price) @@ -47,41 +50,6 @@ class HTS_252670 (HTS): print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price) return - def getSellingPrice(self, final_price): - # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. - jangoDic = self.requstJango() - if jangoDic and len(jangoDic.keys()) > 0: - for code in jangoDic: - if jangoDic[code]['매도가능'] > 0: - if final_price >= jangoDic[code]['장부가'] + 5: - return jangoDic[code]['매도가능'], final_price - else: - # 장부가 가격의 마지막 자리를 0으로 만든다. (2090 -> 2090, 2092 -> 2090, 2098 -> 2090) - sell_price = int(jangoDic[code]['장부가'] / 10) * 10 - # 장부가의 마지막 자리수를 가져온다. - last_number = int(jangoDic[code]['장부가']) % 10 - if last_number in [0, 1, 2, 3]: - # 장부가의 마지막 자리수가 0,1,2,3 이라면 (2090, 2091, 2092 -> 2095 에 매도) - return jangoDic[code]['매도가능'], sell_price + 5 - elif last_number in [4, 5, 6, 7]: - # 장부가의 마지막 자리수가 4,5,6,7 이라면 (2093, 2094, 2095, 2096 -> 2100 에 매도) - return jangoDic[code]['매도가능'], sell_price + 10 - else: - # 장부가의 마지막 자리수가 8,9 라면 (2098, 2099 -> 2105 에 매도) - return jangoDic[code]['매도가능'], sell_price + 15 - - return 0, 0 - - 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 + diff - - return 0, 0 - def buyRealTime(self, today): print ("START...") @@ -147,16 +115,8 @@ class HTS_252670 (HTS): # 매도 미체결을 모두 취소한다. self.cancelOrderList(orderListToCancel) - # 매도 가격을 가져온다. - selling_count, selling_price = self.getSellingPrice(final_price) - # 분석되 가격으로 매도 요청한다. - if selling_count != 0 and selling_price != 0: - # 매도를 요청한다. - orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price) - - # 로그 출력 - print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), selling_count, selling_price, len(orderListToCancel), len(ORDER_LIST)) - + # 매도한다. + self.getSellingPrice(THIS_TIME, self.stock_code, final_price) # 로그 출력 """ @@ -191,14 +151,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, -5) - selling_count, selling_price = self.getSellingPrice(final_price) - - # 분석된 가격으로 매도 요청한다. - if selling_count != 0 and selling_price != 0: - orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price) - # 로그 출력 - print("SELL", THIS_TIME, selling_count, selling_price) + self.getSellingPrice(THIS_TIME, self.stock_code, final_price) final_sell_check = True