import os import logging logging.basicConfig(level=logging.INFO) from stock.util.LabelChecker import LabelChecker class LabelMaker: db_filename = None labelChecker = None def __init__(self, RESOURCE_PATH): self.labelChecker = LabelChecker(RESOURCE_PATH) self.db_filename = os.path.join(RESOURCE_PATH, "hts.db") return def clearLabel(self, stock_code, ymd): self.labelChecker.clearLabel(self.db_filename, stock_code, ymd) return def showLabels(self, stock_code, ymd): self.labelChecker.showLabels(stock_code, ymd) return def update(self, stock_code, ymd, hms, label): self.labelChecker.makeLabel(self.db_filename, stock_code, ymd, hms, label) return def write(self, stock_code, ymd, outFp): logging.info(stock_code + " / " + ymd) self.labelChecker.showLabels(stock_code, ymd, outFp) return def check(self, stock_codes): # 종목에 대해서 주어진 일자에 대해서 통계치 추출하기 for stock_code in stock_codes: ymds = self.labelChecker.getDate(stock_code) for ymd in ymds: logging.info(stock_code + " / " + ymd) bsLine, data = self.labelChecker.makeCandidate(stock_code, ymd) self.labelChecker.updateLabel(self.db_filename, stock_code, bsLine, data, ymd) return if __name__ == "__main__": PROJECT_HOME = os.path.join(os.path.dirname(__file__)) RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources") labelMaker = LabelMaker(RESOURCE_PATH) stock_codes = { "252670": ['20220701', '20220704', '20220705', '20220706', '20220707', '20220708', '20220711', '20220712', '20220713', '20220714', '20220715', '20220718', '20220719', '20220720', '20220721', '20220722', '20220725', '20220726', '20220727', '20220728', '20220729', '20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812', '20220816', '20220817'], "122630": ['20220701', '20220704', '20220705', '20220706', '20220707', '20220708', '20220711', '20220712', '20220713', '20220714', '20220715', '20220718', '20220719', '20220720', '20220721', '20220722', '20220725', '20220726', '20220727', '20220728', '20220729', '20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812', '20220816', '20220817'], } MODE = "WRITE" if MODE == "UPDATE": # 매일 입력하면서 정답 셋 만들기 stock_code = "252670" ymd = '20220817' labelMaker.clearLabel(stock_code, ymd) labelMaker.update(stock_code, ymd, "0915", 2) labelMaker.update(stock_code, ymd, "0916", 2) labelMaker.update(stock_code, ymd, "0917", 2) labelMaker.update(stock_code, ymd, "0918", 2) labelMaker.update(stock_code, ymd, "0919", 2) labelMaker.update(stock_code, ymd, "0920", 2) labelMaker.update(stock_code, ymd, "0921", 2) labelMaker.update(stock_code, ymd, "1124", 1) labelMaker.update(stock_code, ymd, "1125", 1) labelMaker.update(stock_code, ymd, "1126", 1) labelMaker.update(stock_code, ymd, "1127", 1) labelMaker.update(stock_code, ymd, "1330", 1) labelMaker.update(stock_code, ymd, "1331", 1) labelMaker.update(stock_code, ymd, "1332", 1) labelMaker.showLabels(stock_code, ymd) elif MODE == "WRITE": for stock_code in stock_codes: fileName = os.path.join(RESOURCE_PATH, "tmp", "check_"+stock_code+".txt") outFp = open(fileName, "w") for ymd in stock_codes[stock_code]: labelMaker.write(stock_code, ymd, outFp) outFp.close() else: labelMaker.check(stock_codes)