From 2f079bad9e330015583445e3ceca41d9b93e0619 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Wed, 20 Dec 2023 09:21:58 +0900 Subject: [PATCH] init --- HTS_etf_all.py | 55 ++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/HTS_etf_all.py b/HTS_etf_all.py index 6e32d7b..da05497 100644 --- a/HTS_etf_all.py +++ b/HTS_etf_all.py @@ -25,37 +25,44 @@ if __name__ == "__main__": if not os.path.exists(os.path.join(RESOURCE_PATH, "log")): os.mkdir(os.path.join(RESOURCE_PATH, "log")) - print("START...") - #while datetime.strptime(today + " 060000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(today + " 153100", '%Y%m%d %H%M%S'): - #if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): - THIS_TIME = datetime.now() + BUY_LIST = {} for stock in stocks: with open("config.json", "r", encoding="utf-8") as f: config = json.load(f) - MAX_BUY_PRICE = config['MAX_BUY_PRICE'] - BUY_LIST_1 = config['BUY_LIST_1'] - BUY_LIST_1["disparity"] = hts.getDisparityLimit(stock, RESOURCE_PATH) - if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(today + " 090100", '%Y%m%d %H%M%S'): - hts.bot.sendMsg("START... {} ({}) SLOW_K: {}".format(stock['stock_code'], stock['stock_name'], MAX_BUY_PRICE)) - LAST_DATA = hts.getLastData(stock['stock_code'], today) - result_m1 = hts.getRealTime(stock['stock_code'], today, LAST_DATA) - result_tic_m1 = hts.makeTickData1(result_m1, mins=1) - data = hts.analyze(result_tic_m1) - result_tic_m30 = hts.makeTickData2(result_tic_m1, mins=30) - data_signal = hts.analyze(result_tic_m30) - # data.drop(data.index[:len(data) - analyzed_day], inplace=True) + if stock['stock_code'] not in BUY_LIST: + BUY_LIST[stock['stock_code']] = {} - hts.buyRealTime(stock, data, data_signal, MAX_BUY_PRICE, BUY_LIST_1) + BUY_LIST[stock['stock_code']]['MAX_BUY_PRICE'] = config['MAX_BUY_PRICE'] + BUY_LIST[stock['stock_code']]['BUY_LIST_1'] = config['BUY_LIST_1'] + BUY_LIST[stock['stock_code']]['BUY_LIST_1']["disparity"] = hts.getDisparityLimit(stock, RESOURCE_PATH) - if (int(THIS_TIME.strftime("%M")) % 50 == 0 or int(THIS_TIME.strftime("%M")) % 20 == 0): - vm = psutil.virtual_memory() - vm_item = dict() - vm_item['free'] = vm.available // (1024 * 1024) - vm_item['idle'] = vm.available / vm.total * 100 - hts.bot.sendMsg("Alive... mem: {:.1f}".format(vm_item['idle'])) + print("START...") + while datetime.strptime(today + " 060000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(today + " 153100", '%Y%m%d %H%M%S'): + if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): + THIS_TIME = datetime.now() + for stock in stocks: + if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < datetime.now() < datetime.strptime(today + " 090100", '%Y%m%d %H%M%S'): + hts.bot.sendMsg("START... {} ({}) SLOW_K: {}".format(stock['stock_code'], stock['stock_name'], MAX_BUY_PRICE)) - time.sleep(60) + LAST_DATA = hts.getLastData(stock['stock_code'], today) + result_m1 = hts.getRealTime(stock['stock_code'], today, LAST_DATA) + result_tic_m1 = hts.makeTickData1(result_m1, mins=1) + data = hts.analyze(result_tic_m1) + result_tic_m30 = hts.makeTickData2(result_tic_m1, mins=30) + data_signal = hts.analyze(result_tic_m30) + # data.drop(data.index[:len(data) - analyzed_day], inplace=True) + + hts.buyRealTime(stock, data, data_signal, BUY_LIST[stock['stock_code']]['MAX_BUY_PRICE'], BUY_LIST[stock['stock_code']]['BUY_LIST_1']) + + if (int(THIS_TIME.strftime("%M")) % 50 == 0 or int(THIS_TIME.strftime("%M")) % 20 == 0): + vm = psutil.virtual_memory() + vm_item = dict() + vm_item['free'] = vm.available // (1024 * 1024) + vm_item['idle'] = vm.available / vm.total * 100 + hts.bot.sendMsg("Alive... mem: {:.1f}".format(vm_item['idle'])) + + time.sleep(60) db_filename = os.path.join(RESOURCE_PATH, "hts.db")