From 5d79645eb2fa704c7648e474d65724fcaa968036 Mon Sep 17 00:00:00 2001 From: dosangyoon Date: Sun, 21 Aug 2022 22:49:51 +0900 Subject: [PATCH] init --- LabelMaker.py | 26 ++++++++++++------ Simulation.py | 8 ++++-- hts/BuySellChecker.py | 60 +++++++++--------------------------------- resources/hts.db | Bin 45170688 -> 45170688 bytes 4 files changed, 37 insertions(+), 57 deletions(-) diff --git a/LabelMaker.py b/LabelMaker.py index f3064c5..f5ad39b 100644 --- a/LabelMaker.py +++ b/LabelMaker.py @@ -46,7 +46,7 @@ if __name__ == "__main__": labelMaker = LabelMaker(RESOURCE_PATH) - MODE = "UPDATE" + MODE = "WRITE" if MODE == "UPDATE": # 매일 입력하면서 정답 셋 만들기 stock_code = "252670" @@ -93,13 +93,23 @@ if __name__ == "__main__": 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'], + "252670": [ + '20220502', '20220503', '20220504', '20220506', '20220509', + '20220510', '20220511', '20220512', '20220513', '20220516', + '20220517', '20220518', '20220519', '20220520', '20220523', + '20220524', '20220525', '20220526', '20220527', '20220530', + '20220531', '20220602', '20220603', '20220607', '20220608', + '20220609', '20220610', '20220613', '20220614', '20220615', + '20220616', '20220617', '20220620', '20220621', '20220622', + '20220623', '20220624', '20220627', '20220628', '20220629', + '20220630', '20220624', '20220627', '20220628', '20220629', + '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', '20220818', '20220819'], "122630": ['20220701', '20220704', '20220705', '20220706', '20220707', '20220708', '20220711', '20220712', '20220713', '20220714', '20220715', '20220718', '20220719', '20220720', '20220721', diff --git a/Simulation.py b/Simulation.py index b300401..16c3d31 100644 --- a/Simulation.py +++ b/Simulation.py @@ -184,11 +184,15 @@ if __name__ == "__main__": # to check bying stock_codes = { - "252670": ['20220811'], + "252670": [ + '20220510', '20220511', '20220512', + '20220610', '20220613', '20220614', + '20220708', '20220711', '20220712', + '20220810', '20220811', '20220812'], #"122630": ['20220611', '20220612', '20220613', '20220614'], } - method = "ml" # "rule", "ml", "answer" + method = "rule" # "rule", "ml", "answer" for stock_code in stock_codes: simulation = Simulation(RESOURCE_PATH) diff --git a/hts/BuySellChecker.py b/hts/BuySellChecker.py index 866b83d..7e7d8c0 100644 --- a/hts/BuySellChecker.py +++ b/hts/BuySellChecker.py @@ -197,28 +197,23 @@ class BuySellChecker: # 매수 분석 param = 1 - 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 + if (data["macd"][i] < -3.110935149 and data["macds"][i] < -2.370579802 and + data["diff_avg27"][i] < -0.51457476*param and + data["diff_avg3_avg54"][i] < -11.04578189 * param and - data["diff_avg6_avg27"][i] < -6.800010317 * param and - data["diff_avg6_avg54"][i] < -10.54291757*param and + data["diff_avg6_avg27"][i] < -6.53755144 * param and + data["diff_avg6_avg54"][i] < -9.518004115*param and - data["diff_avg9_avg27"][i] < -5.492365625 * param and - data["diff_avg9_avg54"][i] < -9.235272877*param and + data["diff_avg9_avg27"][i] < -5.21244856 * param and + data["diff_avg9_avg54"][i] < -8.192901235*param and - data["diff_avg12_avg27"][i] < -4.243719695 * param and - data["diff_avg12_avg54"][i] < -7.986626947*param and + data["diff_open_lead1"][i] < -13.26157407*param and + data["diff_close_lead1"][i] < -13.71064815*param and + data["diff_high_lead1"][i] < -10.08564815*param and + data["diff_low_lead1"][i] < -17.8912037*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 - - 27.50548619 - 20.56512876/3 < data["diff_upper_lower"][i] < 27.50548619*param + 20.56512876 - #data["diff_change_base"][i] < -5.250696379*param + data["abs_avg_1"][i] > 15.72655178 * param and + 29.0499289 - 22.02727828/3 < data["diff_upper_lower"][i] < 29.0499289*param + 22.02727828 ): buy = int((data["open"][i] + data["close"][i]) / 2) @@ -269,35 +264,6 @@ class BuySellChecker: weight = 1 return sell, weight - param = 1 - if ( - data["diff_avg27"][i] > 0.371828521*param and - data["diff_avg3_avg27"][i] > 6.254009915 * param and - data["diff_avg3_avg54"][i] > 8.234179061 * param and - - data["diff_avg6_avg27"][i] > 4.87605716 * param and - data["diff_avg6_avg54"][i] > 6.856226305*param and - - data["diff_avg9_avg27"][i] > 3.664333625 * param and - data["diff_avg9_avg54"][i] > 5.64450277*param and - - data["diff_avg12_avg27"][i] > 2.802566346 * param and - data["diff_avg12_avg54"][i] > 4.782735491*param and - - data["diff_change_lead1"][i] > 7.057086614 * param and - data["diff_open_lead1"][i] > 10.34448819*param and - data["diff_close_lead1"][i] > 11.17125984*param and - data["diff_high_lead1"][i] > 13.69094488*param and - data["diff_low_lead1"][i] > 7.234251969*param and - - data["diff_upper_lower"][i] > 19.77913348*param and - data["diff_change_base"][i] > 3.011811024*param - ): - - buy = int((data["open"][i] + data["close"][i]) / 2) - weight = 1 - return buy, weight - return sell, weight def getBuyPriceAndWeight_122630(self, data, i): diff --git a/resources/hts.db b/resources/hts.db index 999b662df21c4dfb043b884590b4e91bf15928e0..ab101a0a19d2de1dc630fdf192400724c14322a7 100644 GIT binary patch delta 4326 zcmYM#cU;u z&ph1HNHEHF%#Vv-7#FW#h6M(!2!aiEIN(GuLJ$fU+z3N8gd+lxh(dMLKuy#_ZPY5*1Vix%GB6B}VmLgXpb$k^ft6T=)mQ^B)?yuA!pm5X4R{3_#n^~V*o-aMif!1A z9Vo$0?80vB!Cve`DfZ(4Ud2JYhS%{14&hC_g|~4SM^FYI%JB}4;$0lWalD83aRMjt z0Y1bje1wnj2~Oh-&f*--;{ra#XZRdn;7fdki})Jf;1VvQ0)BjpN_>YaxQg%b1AfF$ z2;gV@f@`S4ulNnW;}86a>-Y;da1(#y7XHC){EPpV^4l+f#4NE$42e||B(X{C5{JYo z36_LNLM1MVTM{OzCJC2BNFpUslIoHglA4lQlG>6wl4wbcBv$f(Bu-LSQcqG}(m?W{ zq@kpdq_L!lq^YEtq`9Ppq^0D}ttQBpN0KN>k|ax7Nm@(VNZLx;N!m*~NIFV7NjghX zB&m`vlCF|8NjFJ%Ne@X+NiRunNgqjHNk2({$pFbfNxEc^}CE1c3Nv>pu zWTxZ^$&->bSCS{mm&}vQmn@JxFL^<-P_js}Sh7U2RPv%^ znPj=7KvF0vlB|%dl&q4hmaLI@C2J+?Bri!`maLa-kh~(%l48k5$tKBW$rj00$u`M$ z$qq@0WT#}8WVd9GWUpkOq*StBazOH`b zFF7GODfvM8>aYG#-6*jpv@?873gS{uamtjBBp*vYk(`#Ck(`yBlbn}akbElnO!B$p z3(1#~uOt^GUrWA`T#{UtR45&n;#ZX_TU%58>T_%JkaHog`}}MtJH5G%(J{K5JFI4S z%*GLYX6joiLZ2?-9(5+eomJHvT}Jk*p}gg1&xGp_8EUNaPVF&wTGLd8>dZ90=u7GE zSMS!dC!6xsaf_v<&z|j9X5|aX@v9KCH?hyUa6LEIuYwGZQP#*?o;EUGUz;HlCsN%! zJ~Vhi@WkML&X&$_d$i-a<4Z?ba6)jTwXrqCs4~tQhm7?`o-x*W!`9Ij=e(#B3V&8< zu5xR@dfIx>y4E_!n(6e8E>4Z|W|rm{?VXG4ZS5vorL~*wgl)I2&^FVS;hY*=?5=d5 zaPM{(x@WpGoaye4?l`yM`rdWQRq9&hnk`%Uo6`~IntI1p*28Dn=vUk9s;@WasfpJDq7Fo=~uON5!;P*>&@Y2 zmrmItt9odcU)9nl86WQ5bhUB#-NiO|FOKN_G0yv|ZzQyp$I;!-Y09_zm0@dTl+`eq z%)X+$Ds{o^O)cAccUi5zYaDWjT3+hMx2VK-xPq(r9zWnmRaW|w3Mw=oFll>gK*d;7 zO*c&kyaTe&M(fnl8mxl zPFsKNNo%B<>0F%q3_kxQV=w>a;=Az<)7N}f{%Jta`11es5 z+vOLv)9wEFQAOC3Jf2pb1jFa8sM{yPS6mcO<62r&nN!=#1FCP0k3$!RriR=!TSNA# zGIy@KnXA&Z!8O!3nZ1LRC2hsOy5e-4ir1GG2UL*G`Xr#jy+yghJUVk2C-!wZ8c??l zHCg8$ysCQm^4|}rtA^pubwzpW9t}#919Io8g4``sUDp+tc4e4Wx!=^)F9%e< zo>IYjSX^q-|IfTX^X9!XhbJc|I&L{`IZcl1=HA`RZud;@=ne_peEXPH5_0E8^Q$GP z`&V>|Lx$^(`Qy#^N3yO3)Ueh2+ul2%J2}~N|A5woBh6mVczbtU`Ab0cTwWDW%d39I zFSv#({EFZ3JO03*xQ@SY12^$EZs8x?#=rPaEvYguuTn6>0s~eA!3H}Va3UBX2!#u7 zgrOS35rIfVp*m`yCTgKJ>L401h{XelLtWHEeKf#>XoyB=j3#J`W@wHUXo+|vz=K32 zAsMaE8g0-P?a&?_&=H-`87W9b7j#7$x}iIIpeK5vH~OG2`k_AtU?9>l2oK?548{-) z#UseTFg%Lk7=gzy5~Glb(HMg)jKw&N#{^8oBuvH>OvN-jj_Jro4stOAGw}qT#4OCl zQ+OKBU=E(ebC`=fs??nRKRrSW=>Px# delta 4247 zcmYM!2~<>NAAs?BXYMdC%nS&qD2RwlE~qS;NT_V?dnsv|;*O>XXlc1YntKQ;jh6a~ zxuNEkm8LS_QdVkcR%VMjTDD9|X||Zv^S8e9anA2Kci#Kn{ay+RPSh?yafG^95}Bbc z?#({j#)vm6%I8J5T^QX~!3+xwSm6g7{1E^<0^xuYE(9SMwGe_(grPR-pf18u5A_j& zNHjnc8X_8v5QD~Of~IJO2hbcX&=Rc>i`HlZIrlikBLRtMhxT|79gu{MNXA1*K__%Z z7o;K$>BvAPx}qDpqX&AT7kZ-)`l28DV*m!?VLXCC7>q1DiXj+^$M86Y;Ry`K2xMa< zMqxC@U@XRAJaRAr6Y(S_VKSb=6yzcg`Iw4ncpA@OI%eQmJcpT>h1r;cxhOy(p2s}Q z#|v11g;<2eSc0Wkh8IzUt5wBtsHe(C6 zVjIe_9XqfSuVEKWAcknBI!|(V5ckw6g;V=BXly84IBxZ?4Vo0nKKZ#A^FA0#? zC4mx$#3^w}f+WF`T9Ob+s3c5MTT(|-R}wC%C#f%qkVHxvNTMVSCDD>bk{C&2NfSv^ zNi)da zB1x5`Nzx@5l1xcgNjFJ%Ne@X+NiRunNgqjHNk2({$pFbf$-|OIB!eV_C0UY3B|{`b zC67rSmkg6UAsH?iA<34El#G&$mW+{%m5h^&m*hw$NG3|2luVLLmOLeyBFUBHN%AFA zCDSBNOP-NTm&}knD|t>bQ!-03TQWy7S5hD;lsqq)Cz&sKL9#%yP_js}Sh7U2RI*I+ zqNGT&Tv9A4k*tucl&q4JN?ww#3WV>XCWT)gc$u7xm$sWmG$v(;JlKql5ByURIk{pm6l)NoDBsnZOBB_vgB$dj; z|1WiXtd5)NRemZ;=ly+Eg*g)A<2uGA8AmEjrYLvern8|sxTjZHmp3l0Qsk)QnB=(R zgybE`yONWV_ayHtPvg=L)Nke1_&CGUa(Q%@QyjI+X~`MMhmvZ^S;;xcN0RfBk0qZ- zK9yXMd?vXl`CRga+MzP?nd#+5$?)!XG3&ne*5V&eY`4056tnY+IFVLn~fs}gQmTe zHvG>z%AH!VIYeh?aAQ1O`g+x|7{72+p*msl*mJ$gtjv~hk0Z~k9AOLCYwztSaEx*EaKt)-18)aj2s|9P!S$`{l>VwZ)Eut2 zZT6~K9!r^5ZShwd+A==FCUYP0B)trr02XUyO?nWbHr@T>}JXsa( z@!~43;cI+@>-ZMm;d@oF=Lh9iY~E#P|5Tr9U`;XoV%p{ImwPT!r{;#K0NtPA5qcl} z*k3ccg=udVgB|>_5nt+dDI@*~+|0u!W2)YJyPTUZ z&&sCjjq$0$eu+lK4wFq+Et#t7|9`JmUB%icOGm?_m3;D^i~PR?_oBI>>HAqipdW7D{a*^)C;Zk(^>F;?`HTUN%Vm!igi1Dsg zeXgrlh3U#EK38o zD}AbW-E_xY$9~6Tvo$C`sFmxQYn?00734hWnaJ8fd}$5!$kF{(H}i_W+$H%#<8}5> z4&mu^)TizlDn}RYzplD@3g7jq>xRE`vB_%6U}oW!A^*+P@uykkK7MI#iYMy~4@2pS zDxd15_nqPrEa^;6%NduTgWr+e-ulp|T*0+fjH!cZm0|ik=%AdHX_d-xUDI_g`&6MW ztd*$#x9{Q`J{3~BH>s_@v{;_!*qc5TWOfbFRVxRZyXsOl=;qmd#iz<0x@_ipwM-vm zMt7~*u0%IsMP^YA_qpar+`vuL;3xcyTeyv1a0kEQH~fx2a2J2#9{$4LYDtZ`s7ApI z3k+D{2OInm06PNVfD4B^HtL`*!ch)z(HeoZiU@Nwv9NV!2JMkKJVYhi#%^vfB Fe*o^b_O}24