diff --git a/LabelMaker.py b/LabelMaker.py index 5e9f762..772bd35 100644 --- a/LabelMaker.py +++ b/LabelMaker.py @@ -45,56 +45,43 @@ if __name__ == "__main__": 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' + stock_code = "122630" + ymd = '20220801' - 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.clearLabel(stock_code, ymd) + #labelMaker.update(stock_code, ymd, "0933", 1) + #labelMaker.update(stock_code, ymd, "0935", 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: + 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'], + } - labelMaker.check(stock_codes) \ No newline at end of file + if 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) \ No newline at end of file diff --git a/Simulation.py b/Simulation.py index 7b2b28d..88af09b 100644 --- a/Simulation.py +++ b/Simulation.py @@ -187,8 +187,9 @@ if __name__ == "__main__": '20220812', '20220816', '20220817'], } stock_codes = { - "252670": ['20220817'], - "122630": ['20220817'], + "122630": ['20220801', '20220802', '20220803', '20220804', + '20220805', '20220808', '20220809', '20220810', '20220811', + '20220812', '20220816', '20220817'], } method = "rule" # "rule", "ml", "answer" diff --git a/hts/BuySellChecker.py b/hts/BuySellChecker.py index 3e9625d..6b4da6d 100644 --- a/hts/BuySellChecker.py +++ b/hts/BuySellChecker.py @@ -300,41 +300,68 @@ class BuySellChecker: if i > START_TIME_INDEX: # 매수 분석 + """ + data["diff_avg27"][i] < -1.637205387 * param and + + data["diff_avg3_avg27"][i] < -25.4455267 * param and + data["diff_avg3_avg54"][i] < -31.55964406 * param and + + data["diff_avg6_avg27"][i] < -17.45039683 * param and + data["diff_avg6_avg54"][i] < -23.56451419 * param and + + data["diff_avg9_avg27"][i] < -13.27020202 * param and + data["diff_avg9_avg54"][i] < -19.38431938 * param and + + data["diff_avg12_avg27"][i] < -10.42388167 * param and + data["diff_avg12_avg54"][i] < -16.53799904 * param and + + data["diff_change_lead1"][i] < -25.68993506 * param and + data["diff_open_lead1"][i] < -37.53246753 * param and + data["diff_close_lead1"][i] < -45.1461039 * param and + data["diff_high_lead1"][i] < -30.03246753 * param and + data["diff_low_lead1"][i] < -53.08441558 * param + """ + param = 1 - if (data["macd"][i] < -1.481742793 and data["macdo"][i] < -0.966054903 and - data["diff_avg27"][i] < -0.522721303 * param and - data["diff_avg3_avg27"][i] < -6.486734962 * param and - data["diff_avg3_avg54"][i] < -4.764250066 * param and - - data["diff_avg6_avg27"][i] < -3.106120305 * param and - data["diff_avg6_avg54"][i] < -1.383635408 * param and - - data["diff_avg9_avg27"][i] < -3.007617547 * param and - data["diff_avg9_avg54"][i] < -1.28513265 * param and - - data["diff_avg12_avg27"][i] < -3.206593118 * param and - data["diff_avg12_avg54"][i] < -1.484108222 * param and - - data["diff_change_lead1"][i] < -2.872340426 * param and - data["diff_open_lead1"][i] < -4.787234043 * param and - data["diff_close_lead1"][i] < -12.34042553 * param and - data["diff_high_lead1"][i] < 0.106382979 * param and - data["diff_low_lead1"][i] < -17.69503546 * param and - - data["diff_upper_lower"][i] < 110.7506807 * param + 124.7189534 / 3 and - data["diff_change_base"][i] < -7.712765957 * param and - - data["diff_avg3"][i] < -4.621749409 * param and - data["diff_avg6"][i] < -1.88534279 * param and - data["diff_avg9"][i] < -0.996847912 * param and - data["diff_avg12"][i] < -1.025413712 * param and - data["diff_avg27"][i] < -0.522721303 * param and - data["diff_avg54"][i] < 0.005910165 * param + if (data["macd"][i] < -8.532976905 and data["macds"][i] < -5.679850674 and + data["abs_avg_1"][i] > 70.48701299 * param ): - buy = int((data["open"][i] + data["close"][i]) / 2) + if -30 < data["macd"][i] < -25: + buy = int((data["open"][i] + data["close"][i]) / 2) + weight = 1 + return buy, weight + + + previous_lowest_close = 99999999 + for c in range(10, 30): + if data["close"][i-c] < previous_lowest_close: + previous_lowest_close = data["close"][i-c] + + if data["close"][i] > previous_lowest_close: + buy = int((data["open"][i] + data["close"][i]) / 2) + weight = 1 + return buy, weight + + if (data["avg54"][i-4] < data["avg54"][i-3] < data["avg54"][i-2] < data["avg54"][i-1] < data["avg54"][i] and + data["avg54"][i] < min(data["avg3"][i], data["avg6"][i], data["avg9"][i], data["avg12"][i], data["avg27"][i]) and + data["avg54"][i] < data["avg27"][i] < data["avg12"][i] < data["avg9"][i] < data["avg6"][i] < data["avg3"][i] and + max(data["avg3"][i], data["avg6"][i], data["avg9"][i], data["avg12"][i], data["avg27"][i]) - min(data["avg3"][i], data["avg6"][i], data["avg9"][i], data["avg12"][i], data["avg27"][i]) < 5 + ): + buy = data["close"][i] weight = 1 return buy, weight + + + if (data["avg54"][i-4] < data["avg54"][i-3] < data["avg54"][i-2] < data["avg54"][i-1] < data["avg54"][i] and + data["avg54"][i-7] < data["avg3"][i-7] < data["avg6"][i-7] < data["avg9"][i-7] < data["avg12"][i-7] and + data["avg54"][i] < data["avg12"][i] < data["avg9"][i] < data["avg6"][i] < data["avg3"][i] + ): + if data['macd'][i] < -5: + buy = data["close"][i] + weight = 1 + return buy, weight + return buy, weight diff --git a/resources/hts.db b/resources/hts.db index 7b7f52e..a381ad6 100644 Binary files a/resources/hts.db and b/resources/hts.db differ