From 9b3db7a6954fb5f76cdb792e17ec8a6fe6ff2815 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Mon, 27 Feb 2023 10:12:48 +0900 Subject: [PATCH] init --- HTS_etf.py | 16 ++++++++++------ HTS_stocks.py | 16 ++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/HTS_etf.py b/HTS_etf.py index cfed4dd..06b49e4 100644 --- a/HTS_etf.py +++ b/HTS_etf.py @@ -50,6 +50,7 @@ class HTS_etf (HTS): return def sellStocks(self, stock_code=None, bs_sell_price=None): + check = False jangoDic = self.requstJango() if jangoDic and len(jangoDic.keys()) > 0: for code in jangoDic: @@ -59,6 +60,7 @@ class HTS_etf (HTS): if 2 < jangoDic[code]['평가손익']: self.requestOrder(OrderType.sell, code[1:], jangoDic[code]['매도가능'], bs_sell_price) self.slackBot.post_to_slack(code, jangoDic[code]['종목명'], "SELL", bs_sell_price, jangoDic[code]['매도가능']) + check = True else: continue else: @@ -68,7 +70,8 @@ class HTS_etf (HTS): currentStock = self.currentStock(code[1:]) self.requestOrder(OrderType.sell, code[1:], jangoDic[code]['매도가능'], currentStock['close']) self.slackBot.post_to_slack(code, jangoDic[code]['종목명'], "SELL", currentStock['close'], jangoDic[code]['매도가능']) - return + check = True + return check def getSellingPrice(self, log_time, stock_code, final_price, without_loss=False): @@ -243,13 +246,14 @@ class HTS_etf (HTS): print("BUY", THIS_TIME.strftime('%Y%m%d %H%M%S'), orderNum, stock['stock_code'], stock['stock_name'], bs_buy_price, buy_count) if bs_sell_price > 1000: - self.sellStocks(stock['stock_code'], bs_sell_price) + check = self.sellStocks(stock['stock_code'], bs_sell_price) - # slackbot에 메시지를 보냄 - self.slackBot.post_to_slack(stock['stock_code'], stock['stock_name'], "SELL", bs_sell_price, 'ALL') + if check: + # slackbot에 메시지를 보냄 + self.slackBot.post_to_slack(stock['stock_code'], stock['stock_name'], "SELL", bs_sell_price, 'ALL') - # 로그 출력 - print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), stock['stock_code'], stock['stock_name'], bs_sell_price) + # 로그 출력 + print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), stock['stock_code'], stock['stock_name'], bs_sell_price) # 로그 출력 diff --git a/HTS_stocks.py b/HTS_stocks.py index 90d559e..0162655 100644 --- a/HTS_stocks.py +++ b/HTS_stocks.py @@ -55,6 +55,7 @@ class HTS_Stocks (HTS): return def sellStocks(self, stock_code=None, bs_sell_price=None): + check = False jangoDic = self.requstJango() if jangoDic and len(jangoDic.keys()) > 0: for code in jangoDic: @@ -64,6 +65,7 @@ class HTS_Stocks (HTS): if 2 < jangoDic[code]['평가손익']: self.requestOrder(OrderType.sell, code[1:], jangoDic[code]['매도가능'], bs_sell_price) self.slackBot.post_to_slack(code, jangoDic[code]['종목명'], "SELL", bs_sell_price, jangoDic[code]['매도가능']) + check = True else: continue else: @@ -73,7 +75,8 @@ class HTS_Stocks (HTS): currentStock = self.currentStock(code[1:]) self.requestOrder(OrderType.sell, code[1:], jangoDic[code]['매도가능'], currentStock['close']) self.slackBot.post_to_slack(code, jangoDic[code]['종목명'], "SELL", currentStock['close'], jangoDic[code]['매도가능']) - return + check = True + return check def getSellingPrice(self, log_time, stock_code, final_price, without_loss=False): # final_price와 diff를 받으면, 해당 가격으로 그냥 매도한다는 의미 @@ -244,13 +247,14 @@ class HTS_Stocks (HTS): # 다음 조건이면 매도한다. if len(data) > 10 and max(bsLine['sell'][len(bsLine['sell']) - 1:]) > 1000: bs_sell_price = bsLine['sell'][len(bsLine['sell']) - 1] - self.sellStocks(stock_code, bs_sell_price) + check = self.sellStocks(stock_code, bs_sell_price) - # slackbot에 메시지를 보냄 - self.slackBot.post_to_slack(stock_code, stock_name, "SELL", bsLine['sell'][len(bsLine['sell']) - 1], 'ALL') + if check: + # slackbot에 메시지를 보냄 + self.slackBot.post_to_slack(stock_code, stock_name, "SELL", bsLine['sell'][len(bsLine['sell']) - 1], 'ALL') - # 로그 출력 - print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), stock_code, stock_name, bs_sell_price) + # 로그 출력 + print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), stock_code, stock_name, bs_sell_price) """ 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분 사이는 잔량을 매도한다.