From 2ab367f852a37c903c8e5528cdd3cef3684d5dc7 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Thu, 19 Oct 2023 21:17:35 +0900 Subject: [PATCH] init --- HTS_etf_122630.py | 14 +++++++++++--- HTS_etf_233740.py | 16 ++++++++++++---- HTS_etf_251340.py | 14 +++++++++++--- HTS_etf_252670.py | 13 ++++++++++--- Simulation.py | 8 ++++---- 5 files changed, 48 insertions(+), 17 deletions(-) diff --git a/HTS_etf_122630.py b/HTS_etf_122630.py index 1e65a41..39a91ac 100644 --- a/HTS_etf_122630.py +++ b/HTS_etf_122630.py @@ -130,7 +130,7 @@ class HTS_etf(HTS): return result - def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE=10000): + def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE=10000, logFp=None): rsi = self.getTodayRSI() if rsi > 79: self.slackBot.sendMsg("exit... {} ({}) RSI: {}".format(self.stock_code, self.stock_name, rsi)) @@ -188,18 +188,21 @@ class HTS_etf(HTS): # 로그 출력 print("BUY", THIS_TIME.strftime('%Y%m%d %H%M%S'), orderNum, self.stock_code, bs_buy_price, buy_count) + logFp.write("{} BUY {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, buy_count)) if bs_sell_price > 1000: check = self.sellStocks(self.stock_code, bs_sell_price) if check: - # 로그 출력 print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, self.stock_name, bs_sell_price) + logFp.write("{} SELL {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, bs_sell_price)) # 로그 출력 print("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) + logFp.write("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % + (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) if (int(THIS_TIME.strftime("%M")) % 50 == 0 or int(THIS_TIME.strftime("%M")) % 20 == 0): self.slackBot.post_live_to_slack(self.stock_code, self.stock_name, data["close"][len(data["close"])-1], data["macd"][len(data["macd"])-1]) @@ -229,7 +232,12 @@ if __name__ == "__main__": hts.connect2DB("hts.db") today_str = today.strftime('%Y%m%d') - hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=40000) + + if os.path.exists(os.path.join(RESOURCE_PATH, "log")): + os.mkdir(os.path.join(RESOURCE_PATH, "log")) + logFp = open(os.path.join(RESOURCE_PATH, "log", today_str + "_" + stock_code + ".log"), "r", encoding='utf-8') + hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=40000, logFp=logFp) + logFp.close() db_filename = os.path.join(RESOURCE_PATH, "hts.db") hts.insertStockData(today, stock_code, stock_name) diff --git a/HTS_etf_233740.py b/HTS_etf_233740.py index 8b87206..5a775c3 100644 --- a/HTS_etf_233740.py +++ b/HTS_etf_233740.py @@ -130,7 +130,7 @@ class HTS_etf(HTS): return result - def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE = 10000): + def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE = 10000, logFp=None): rsi = self.getTodayRSI() if rsi > 79: self.slackBot.sendMsg("exit... {} ({}) RSI: {}".format(self.stock_code, self.stock_name, rsi)) @@ -147,7 +147,7 @@ class HTS_etf(HTS): if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 090100", '%Y%m%d %H%M%S'): self.slackBot.sendMsg("start... {} ({}) RSI: {}".format(self.stock_code, self.stock_name, rsi)) - if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 153100", '%Y%m%d %H%M%S'): + if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): # 매도를 체크한다. self.sellStocks(self.stock_code) @@ -188,18 +188,21 @@ class HTS_etf(HTS): # 로그 출력 print("BUY", THIS_TIME.strftime('%Y%m%d %H%M%S'), orderNum, self.stock_code, bs_buy_price, buy_count) + logFp.write("{} BUY {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, buy_count)) if bs_sell_price > 1000: check = self.sellStocks(self.stock_code, bs_sell_price) if check: - # 로그 출력 print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, self.stock_name, bs_sell_price) + logFp.write("{} SELL {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, bs_sell_price)) # 로그 출력 print("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) + logFp.write("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % + (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) if (int(THIS_TIME.strftime("%M")) % 50 == 0 or int(THIS_TIME.strftime("%M")) % 20 == 0): self.slackBot.post_live_to_slack(self.stock_code, self.stock_name, data["close"][len(data["close"])-1], data["macd"][len(data["macd"])-1]) @@ -229,7 +232,12 @@ if __name__ == "__main__": hts.connect2DB("hts.db") today_str = today.strftime('%Y%m%d') - hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=30000) + + if os.path.exists(os.path.join(RESOURCE_PATH, "log")): + os.mkdir(os.path.join(RESOURCE_PATH, "log")) + logFp = open(os.path.join(RESOURCE_PATH, "log", today_str + "_" + stock_code + ".log"), "r", encoding='utf-8') + hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=30000, logFp=logFp) + logFp.close() db_filename = os.path.join(RESOURCE_PATH, "hts.db") hts.insertStockData(today, stock_code, stock_name) diff --git a/HTS_etf_251340.py b/HTS_etf_251340.py index a85da0d..7652e84 100644 --- a/HTS_etf_251340.py +++ b/HTS_etf_251340.py @@ -130,7 +130,7 @@ class HTS_etf(HTS): return result - def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE = 10000): + def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE = 10000, logFp=None): rsi = self.getTodayRSI() if rsi > 79: self.slackBot.sendMsg("exit... {} ({}) RSI: {}".format(self.stock_code, self.stock_name, rsi)) @@ -188,18 +188,21 @@ class HTS_etf(HTS): # 로그 출력 print("BUY", THIS_TIME.strftime('%Y%m%d %H%M%S'), orderNum, self.stock_code, bs_buy_price, buy_count) + logFp.write("{} BUY {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, buy_count)) if bs_sell_price > 1000: check = self.sellStocks(self.stock_code, bs_sell_price) if check: - # 로그 출력 print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, self.stock_name, bs_sell_price) + logFp.write("{} SELL {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, bs_sell_price)) # 로그 출력 print("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) + logFp.write("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % + (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) if (int(THIS_TIME.strftime("%M")) % 50 == 0 or int(THIS_TIME.strftime("%M")) % 20 == 0): self.slackBot.post_live_to_slack(self.stock_code, self.stock_name, data["close"][len(data["close"])-1], data["macd"][len(data["macd"])-1]) @@ -229,7 +232,12 @@ if __name__ == "__main__": hts.connect2DB("hts.db") today_str = today.strftime('%Y%m%d') - hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=50000) + + if os.path.exists(os.path.join(RESOURCE_PATH, "log")): + os.mkdir(os.path.join(RESOURCE_PATH, "log")) + logFp = open(os.path.join(RESOURCE_PATH, "log", today_str + "_" + stock_code + ".log"), "r", encoding='utf-8') + hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=50000, logFp=logFp) + logFp.close() db_filename = os.path.join(RESOURCE_PATH, "hts.db") hts.insertStockData(today, stock_code, stock_name) diff --git a/HTS_etf_252670.py b/HTS_etf_252670.py index 0db47c0..7b6d937 100644 --- a/HTS_etf_252670.py +++ b/HTS_etf_252670.py @@ -131,7 +131,7 @@ class HTS_etf(HTS): return result - def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE = 100000): + def buyRealTime(self, today, analyzed_day=1000, MAX_PRICE = 100000, logFp=None): rsi = self.getTodayRSI() if rsi > 79: self.slackBot.sendMsg("exit... {} ({}) RSI: {}".format(self.stock_code, self.stock_name, rsi)) @@ -189,18 +189,21 @@ class HTS_etf(HTS): # 로그 출력 print("BUY", THIS_TIME.strftime('%Y%m%d %H%M%S'), orderNum, self.stock_code, bs_buy_price, buy_count) + logFp.write("{} BUY {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, buy_count)) if bs_sell_price > 1000: check = self.sellStocks(self.stock_code, bs_sell_price) if check: - # 로그 출력 print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, self.stock_name, bs_sell_price) + logFp.write("{} SELL {} {} {}".format(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code, bs_buy_price, bs_sell_price)) # 로그 출력 print("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) + logFp.write("TIMECHECK: %s, code: %s, buy: %d, sell: %d, open: %d, close: %d, high: %d, low: %d, macd: %.2f" % + (str(THIS_TIME), self.stock_code, bs_buy_price, bs_sell_price, data["open"][len(data["open"])-1], data["close"][len(data["close"])-1], data["high"][len(data["high"])-1], data["low"][len(data["low"])-1], data["macd"][len(data["macd"])-1])) if (int(THIS_TIME.strftime("%M")) % 50 == 0 or int(THIS_TIME.strftime("%M")) % 20 == 0): self.slackBot.post_live_to_slack(self.stock_code, self.stock_name, data["close"][len(data["close"])-1], data["macd"][len(data["macd"])-1]) @@ -231,7 +234,11 @@ if __name__ == "__main__": today_str = today.strftime('%Y%m%d') - hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=100000) + if os.path.exists(os.path.join(RESOURCE_PATH, "log")): + os.mkdir(os.path.join(RESOURCE_PATH, "log")) + logFp = open(os.path.join(RESOURCE_PATH, "log", today_str + "_" + stock_code + ".log"), "r", encoding='utf-8') + hts.buyRealTime(today_str, analyzed_day=1000, MAX_PRICE=100000, logFp=logFp) + logFp.close() db_filename = os.path.join(RESOURCE_PATH, "hts.db") hts.insertStockData(today, stock_code, stock_name) diff --git a/Simulation.py b/Simulation.py index 03b643c..6101f35 100644 --- a/Simulation.py +++ b/Simulation.py @@ -253,10 +253,10 @@ if __name__ == "__main__": #"122630": ['20230930'], #"122630": ['20210901','20210902','20210903','20210906','20231012','20231013'] #"122630": ['20210901', '20210902', '20210903', '20210906', '20210907', '20210908', '20210909', '20210910', '20210913', '20210914', '20210915', '20210916', '20210917', '20210923', '20210924', '20210927', '20210928', '20210929', '20210930', '20211001', '20211005','20231012','20231013'], - "233740": ['20231016'], - "252670": ['20231016'], - "251340": ['20231016'], - "122630": ['20231016'] + "233740": ['20231019'], + "252670": ['20231019'], + "251340": ['20231019'], + "122630": ['20231019'] } #simulation.simulate(stock_codes) simulation.simulate(stock_codes)