diff --git a/Simulation.py b/Simulation.py index e29a77d..89d6215 100644 --- a/Simulation.py +++ b/Simulation.py @@ -179,8 +179,10 @@ if __name__ == "__main__": # to check bying stock_codes = { - #"252670": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'], - "122630": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'], + "252670": ['20220801', '20220802', '20220803', '20220804', + '20220805', '20220808', '20220809', '20220810', '20220811', + '20220812', '20220816'], + #"122630": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'], } method = "rule" # "rule", "ml", "answer" diff --git a/hts/BuySellChecker.py b/hts/BuySellChecker.py index 54e8a17..3e9625d 100644 --- a/hts/BuySellChecker.py +++ b/hts/BuySellChecker.py @@ -197,28 +197,28 @@ class BuySellChecker: # 매수 분석 param = 1 - if (data["macd"][i] < -1.741263068 and - data["diff_avg27"][i] < -0.299978341*param and - data["diff_avg3_avg27"][i] < -3.600823045 * param and - data["diff_avg3_avg54"][i] < -6.423001949 * param and + if (data["macd"][i] < -3.345900723 and data["macds"][i] < -2.6891156 and + data["diff_avg27"][i] < -0.533890436*param and + data["diff_avg3_avg27"][i] < -8.13705767 * param and + data["diff_avg3_avg54"][i] < -11.87996492 * param and - data["diff_avg6_avg27"][i] < -2.889322071 * param and - data["diff_avg6_avg54"][i] < -5.711500975*param and + data["diff_avg6_avg27"][i] < -6.800010317 * param and + data["diff_avg6_avg54"][i] < -10.54291757*param and - data["diff_avg9_avg27"][i] < -2.216807451 * param and - data["diff_avg9_avg54"][i] < -5.038986355*param and + data["diff_avg9_avg27"][i] < -5.492365625 * param and + data["diff_avg9_avg54"][i] < -9.235272877*param and - data["diff_avg12_avg27"][i] < -1.70023825 * param and - data["diff_avg12_avg54"][i] < -4.522417154*param and + data["diff_avg12_avg27"][i] < -4.243719695 * param and + data["diff_avg12_avg54"][i] < -7.986626947*param and - data["diff_change_lead1"][i] < -6.425438596 * param and - data["diff_open_lead1"][i] < -7.302631579*param and - data["diff_close_lead1"][i] < -7.711988304*param and - data["diff_high_lead1"][i] < -4.875730994*param and - data["diff_low_lead1"][i] < -11.74707602*param and + data["diff_change_lead1"][i] < -11.86803621 * param and + data["diff_open_lead1"][i] < -14.51775766*param and + data["diff_close_lead1"][i] < -14.69185237*param and + data["diff_high_lead1"][i] < -11.33530641*param and + data["diff_low_lead1"][i] < -18.93976323*param and - data["diff_upper_lower"][i] < 19.2091055*param + 11.75882982/3 and - data["diff_change_base"][i] < -2.616959064*param + 27.50548619 - 20.56512876/3 < data["diff_upper_lower"][i] < 27.50548619*param + 20.56512876 + #data["diff_change_base"][i] < -5.250696379*param ): buy = int((data["open"][i] + data["close"][i]) / 2) diff --git a/resources/hts.db b/resources/hts.db index c08fcc2..8523d6e 100644 Binary files a/resources/hts.db and b/resources/hts.db differ diff --git a/stock/util/LabelMaker.py b/stock/util/LabelMaker.py index ec9a3a2..1a395b1 100644 --- a/stock/util/LabelMaker.py +++ b/stock/util/LabelMaker.py @@ -289,8 +289,9 @@ class LabelMaker (HTS): bsLine['buy'] = [-1 for i in range(size)] bsLine['sell'] = [-1 for i in range(size)] for i in range(size): - self.buySellChecker.write(outFp, data, i) - outFp.flush() + if outFp is not None: + self.buySellChecker.write(outFp, data, i) + outFp.flush() if labels[i] == 1: bsLine['sell'][i] = closes[i] if labels[i] == 2: @@ -313,23 +314,40 @@ if __name__ == "__main__": UPDATE_MODE = False if UPDATE_MODE: - stock_code = "122630" - ymd = '20220812' - """ + # 매일 입력하면서 정답 셋 만들기 + stock_code = "252670" + ymd = '20220730' + labelMaker.clearLabel(db_filename, stock_code, ymd) - labelMaker.makeLabel(db_filename, stock_code, ymd, "0910", 2) - labelMaker.makeLabel(db_filename, stock_code, ymd, "0911", 2) - labelMaker.makeLabel(db_filename, stock_code, ymd, "0912", 2) - labelMaker.makeLabel(db_filename, stock_code, ymd, "0915", 1) - labelMaker.makeLabel(db_filename, stock_code, ymd, "0916", 1) - labelMaker.makeLabel(db_filename, stock_code, ymd, "0948", 2) - """ + labelMaker.makeLabel(db_filename, stock_code, ymd, "0933", 2) + labelMaker.makeLabel(db_filename, stock_code, ymd, "0934", 2) + labelMaker.makeLabel(db_filename, stock_code, ymd, "0935", 2) + labelMaker.makeLabel(db_filename, stock_code, ymd, "0936", 2) + + labelMaker.makeLabel(db_filename, stock_code, ymd, "1004", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1005", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1006", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1007", 1) + + labelMaker.makeLabel(db_filename, stock_code, ymd, "1412", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1413", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1414", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1415", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1416", 1) + labelMaker.makeLabel(db_filename, stock_code, ymd, "1417", 1) + labelMaker.showLabels(stock_code, ymd) else: stock_codes = { - "252670": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'], - "122630": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'], + "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'], + #"122630": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'], } view = True @@ -342,7 +360,7 @@ if __name__ == "__main__": if view: labelMaker.showLabels(stock_code, ymd, outFp) else: - stock_codes = ["252670", "122630"] + # 종목에 대해서 주어진 일자에 대해서 통계치 추출하기 for stock_code in stock_codes: ymds = labelMaker.getDate(stock_code) for ymd in ymds: