This commit is contained in:
dosangyoon
2022-08-09 00:32:33 +09:00
parent 2173156d41
commit 9725368faf
4 changed files with 39 additions and 389 deletions

View File

@@ -30,6 +30,17 @@ class HTS_122630 (HTS):
self.labelMaker = LabelMaker(RESOURCE_PATH) self.labelMaker = LabelMaker(RESOURCE_PATH)
return return
def getDefaultSell(self, log_time, stock_code):
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
if code == "A"+stock_code:
orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60)
print("SELL", log_time, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60)
return
def getSellingPrice(self, final_price): def getSellingPrice(self, final_price):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango() jangoDic = self.requstJango()
@@ -67,9 +78,6 @@ class HTS_122630 (HTS):
def buyRealTime(self, today): def buyRealTime(self, today):
timecheckList = pd.read_csv("hts/timecheck.csv").values.tolist()
timecheck = {today + " " + str(second).zfill(6):False for second, check in timecheckList}
print ("START...") print ("START...")
THIS_TIME = datetime.now() THIS_TIME = datetime.now()
final_sell_check = False final_sell_check = False
@@ -80,7 +88,12 @@ class HTS_122630 (HTS):
if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'):
# 3시 까지만 매수를 시도한다. # 3시 까지만 매수를 시도한다.
if THIS_TIME.strftime('%Y%m%d %H%M%S') in timecheck and not timecheck[THIS_TIME.strftime('%Y%m%d %H%M%S')]: if THIS_TIME.strftime('%S') in ("09", "19", "29", "39", "49", "59"):
# 10초마다 체크하여 체결된 내역이 있으면 60원 높게 매도를 주문한다.
self.getDefaultSell(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code)
if THIS_TIME.strftime('%S') == "05":
# 매분 3초마다 실행한다.
# 데이터를 가지고 온다. # 데이터를 가지고 온다.
result = self.getRealTime(self.stock_code, today, LAST_DATA) result = self.getRealTime(self.stock_code, today, LAST_DATA)
@@ -144,8 +157,6 @@ class HTS_122630 (HTS):
data["fast_k"][data_size - 2], data["slow_k"][data_size - 2], data["slow_d"][data_size - 1], data["fast_k"][data_size - 2], data["slow_k"][data_size - 2], data["slow_d"][data_size - 1],
data["rsi"][data_size - 1], data["rsis"][data_size - 1])) data["rsi"][data_size - 1], data["rsis"][data_size - 1]))
timecheck[THIS_TIME] = True
elif datetime.strptime(today + " 151530", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151600", '%Y%m%d %H%M%S'): elif datetime.strptime(today + " 151530", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151600", '%Y%m%d %H%M%S'):
# 3시 15분 30초부터 3시 16분 사이는 잔량을 매도한다. # 3시 15분 30초부터 3시 16분 사이는 잔량을 매도한다.

View File

@@ -31,6 +31,17 @@ class HTS_252670 (HTS):
self.labelMaker = LabelMaker(RESOURCE_PATH) self.labelMaker = LabelMaker(RESOURCE_PATH)
return return
def getDefaultSell(self, log_time, stock_code):
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
if code == "A"+stock_code:
orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60)
print("SELL", log_time, jangoDic[code]['매도가능'], jangoDic[code]['장부가']+60)
return
def getSellingPrice(self, final_price): def getSellingPrice(self, final_price):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango() jangoDic = self.requstJango()
@@ -56,21 +67,18 @@ class HTS_252670 (HTS):
return 0, 0 return 0, 0
def getFinalSellingPrice(self, final_price): def getFinalSellingPrice(self, final_price, diff):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다. # 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango() jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0: if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic: for code in jangoDic:
if jangoDic[code]['매도가능'] > 0: if jangoDic[code]['매도가능'] > 0:
return jangoDic[code]['매도가능'], final_price - 5 return jangoDic[code]['매도가능'], final_price + diff
return 0, 0 return 0, 0
def buyRealTime(self, today): def buyRealTime(self, today):
timecheckList = pd.read_csv("hts/timecheck.csv").values.tolist()
timecheck = {today + " " + str(second).zfill(6):False for second, check in timecheckList}
print ("START...") print ("START...")
THIS_TIME = datetime.now() THIS_TIME = datetime.now()
final_sell_check = False final_sell_check = False
@@ -81,7 +89,13 @@ class HTS_252670 (HTS):
if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'): if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'):
# 3시 까지만 매수를 시도한다. # 3시 까지만 매수를 시도한다.
if THIS_TIME.strftime('%Y%m%d %H%M%S') in timecheck and not timecheck[THIS_TIME.strftime('%Y%m%d %H%M%S')]: if THIS_TIME.strftime('%S') in ("06", "16", "26", "36", "46", "56"):
# 10초마다 체크하여 체결된 내역이 있으면 60원 높게 매도를 주문한다.
self.getDefaultSell(THIS_TIME.strftime('%Y%m%d %H%M%S'), self.stock_code)
#if THIS_TIME.strftime('%Y%m%d %H%M%S') in timecheck and not timecheck[THIS_TIME.strftime('%Y%m%d %H%M%S')]:
if THIS_TIME.strftime('%S') == "03":
# 매분 3초마다 실행한다.
# 데이터를 가지고 온다. # 데이터를 가지고 온다.
result = self.getRealTime(self.stock_code, today, LAST_DATA) result = self.getRealTime(self.stock_code, today, LAST_DATA)
@@ -164,7 +178,7 @@ class HTS_252670 (HTS):
result = self.getRealTime(self.stock_code, today, LAST_DATA) result = self.getRealTime(self.stock_code, today, LAST_DATA)
final_price = result["close"][len(result["close"]) - 1] final_price = result["close"][len(result["close"]) - 1]
#selling_count, selling_price = self.getFinalSellingPrice(final_price) #selling_count, selling_price = self.getFinalSellingPrice(final_price, -5)
selling_count, selling_price = self.getSellingPrice(final_price) selling_count, selling_price = self.getSellingPrice(final_price)
# 분석된 가격으로 매도 요청한다. # 분석된 가격으로 매도 요청한다.

View File

@@ -298,7 +298,7 @@ class HTS:
if (ret == 2 or ret == 3): if (ret == 2 or ret == 3):
print("통신 오류", ret) print("통신 오류", ret)
return False; return False
# 통신 초과 요청 방지에 의한 요류 인 경우 # 통신 초과 요청 방지에 의한 요류 인 경우
while (ret == 4): # 연속 주문 오류 임. 이 경우는 남은 시간동안 반드시 대기해야 함. while (ret == 4): # 연속 주문 오류 임. 이 경우는 남은 시간동안 반드시 대기해야 함.

View File

@@ -1,375 +0,0 @@
time, check
090103,False
090203,False
090303,False
090403,False
090503,False
090603,False
090703,False
090803,False
090903,False
091003,False
091103,False
091203,False
091303,False
091403,False
091503,False
091603,False
091703,False
091803,False
091903,False
092003,False
092103,False
092203,False
092303,False
092403,False
092503,False
092603,False
092703,False
092803,False
092903,False
093003,False
093103,False
093203,False
093303,False
093403,False
093503,False
093603,False
093703,False
093803,False
093903,False
094003,False
094103,False
094203,False
094303,False
094403,False
094503,False
094603,False
094703,False
094803,False
094903,False
095003,False
095103,False
095203,False
095303,False
095403,False
095503,False
095603,False
095703,False
095803,False
095903,False
100003,False
100103,False
100203,False
100303,False
100403,False
100503,False
100603,False
100703,False
100803,False
100903,False
101003,False
101103,False
101203,False
101303,False
101403,False
101503,False
101603,False
101703,False
101803,False
101903,False
102003,False
102103,False
102203,False
102303,False
102403,False
102503,False
102603,False
102703,False
102803,False
102903,False
103003,False
103103,False
103203,False
103303,False
103403,False
103503,False
103603,False
103703,False
103803,False
103903,False
104003,False
104103,False
104203,False
104303,False
104403,False
104503,False
104603,False
104703,False
104803,False
104903,False
105003,False
105103,False
105203,False
105303,False
105403,False
105503,False
105603,False
105703,False
105803,False
105903,False
110003,False
110103,False
110203,False
110303,False
110403,False
110503,False
110603,False
110703,False
110803,False
110903,False
111003,False
111103,False
111203,False
111303,False
111403,False
111503,False
111603,False
111703,False
111803,False
111903,False
112003,False
112103,False
112203,False
112303,False
112403,False
112503,False
112603,False
112703,False
112803,False
112903,False
113003,False
113103,False
113203,False
113303,False
113403,False
113503,False
113603,False
113703,False
113803,False
113903,False
114003,False
114103,False
114203,False
114303,False
114403,False
114503,False
114603,False
114703,False
114803,False
114903,False
115003,False
115103,False
115203,False
115303,False
115403,False
115503,False
115603,False
115703,False
115803,False
115903,False
120003,False
120103,False
120203,False
120303,False
120403,False
120503,False
120603,False
120703,False
120803,False
120903,False
121003,False
121103,False
121203,False
121303,False
121403,False
121503,False
121603,False
121703,False
121803,False
121903,False
122003,False
122103,False
122203,False
122303,False
122403,False
122503,False
122603,False
122703,False
122803,False
122903,False
123003,False
123103,False
123203,False
123303,False
123403,False
123503,False
123603,False
123703,False
123803,False
123903,False
124003,False
124103,False
124203,False
124303,False
124403,False
124503,False
124603,False
124703,False
124803,False
124903,False
125003,False
125103,False
125203,False
125303,False
125403,False
125503,False
125603,False
125703,False
125803,False
125903,False
130003,False
130103,False
130203,False
130303,False
130403,False
130503,False
130603,False
130703,False
130803,False
130903,False
131003,False
131103,False
131203,False
131303,False
131403,False
131503,False
131603,False
131703,False
131803,False
131903,False
132003,False
132103,False
132203,False
132303,False
132403,False
132503,False
132603,False
132703,False
132803,False
132903,False
133003,False
133103,False
133203,False
133303,False
133403,False
133503,False
133603,False
133703,False
133803,False
133903,False
134003,False
134103,False
134203,False
134303,False
134403,False
134503,False
134603,False
134703,False
134803,False
134903,False
135003,False
135103,False
135203,False
135303,False
135403,False
135503,False
135603,False
135703,False
135803,False
135903,False
140003,False
140103,False
140203,False
140303,False
140403,False
140503,False
140603,False
140703,False
140803,False
140903,False
141003,False
141103,False
141203,False
141303,False
141403,False
141503,False
141603,False
141703,False
141803,False
141903,False
142003,False
142103,False
142203,False
142303,False
142403,False
142503,False
142603,False
142703,False
142803,False
142903,False
143003,False
143103,False
143203,False
143303,False
143403,False
143503,False
143603,False
143703,False
143803,False
143903,False
144003,False
144103,False
144203,False
144303,False
144403,False
144503,False
144603,False
144703,False
144803,False
144903,False
145003,False
145103,False
145203,False
145303,False
145403,False
145503,False
145603,False
145703,False
145803,False
145903,False
150003,False
150103,False
150203,False
150303,False
150403,False
150503,False
150603,False
150703,False
150803,False
150903,False
151003,False
151103,False
151203,False
151303,False
151403,False
1 time check
2 090103 False
3 090203 False
4 090303 False
5 090403 False
6 090503 False
7 090603 False
8 090703 False
9 090803 False
10 090903 False
11 091003 False
12 091103 False
13 091203 False
14 091303 False
15 091403 False
16 091503 False
17 091603 False
18 091703 False
19 091803 False
20 091903 False
21 092003 False
22 092103 False
23 092203 False
24 092303 False
25 092403 False
26 092503 False
27 092603 False
28 092703 False
29 092803 False
30 092903 False
31 093003 False
32 093103 False
33 093203 False
34 093303 False
35 093403 False
36 093503 False
37 093603 False
38 093703 False
39 093803 False
40 093903 False
41 094003 False
42 094103 False
43 094203 False
44 094303 False
45 094403 False
46 094503 False
47 094603 False
48 094703 False
49 094803 False
50 094903 False
51 095003 False
52 095103 False
53 095203 False
54 095303 False
55 095403 False
56 095503 False
57 095603 False
58 095703 False
59 095803 False
60 095903 False
61 100003 False
62 100103 False
63 100203 False
64 100303 False
65 100403 False
66 100503 False
67 100603 False
68 100703 False
69 100803 False
70 100903 False
71 101003 False
72 101103 False
73 101203 False
74 101303 False
75 101403 False
76 101503 False
77 101603 False
78 101703 False
79 101803 False
80 101903 False
81 102003 False
82 102103 False
83 102203 False
84 102303 False
85 102403 False
86 102503 False
87 102603 False
88 102703 False
89 102803 False
90 102903 False
91 103003 False
92 103103 False
93 103203 False
94 103303 False
95 103403 False
96 103503 False
97 103603 False
98 103703 False
99 103803 False
100 103903 False
101 104003 False
102 104103 False
103 104203 False
104 104303 False
105 104403 False
106 104503 False
107 104603 False
108 104703 False
109 104803 False
110 104903 False
111 105003 False
112 105103 False
113 105203 False
114 105303 False
115 105403 False
116 105503 False
117 105603 False
118 105703 False
119 105803 False
120 105903 False
121 110003 False
122 110103 False
123 110203 False
124 110303 False
125 110403 False
126 110503 False
127 110603 False
128 110703 False
129 110803 False
130 110903 False
131 111003 False
132 111103 False
133 111203 False
134 111303 False
135 111403 False
136 111503 False
137 111603 False
138 111703 False
139 111803 False
140 111903 False
141 112003 False
142 112103 False
143 112203 False
144 112303 False
145 112403 False
146 112503 False
147 112603 False
148 112703 False
149 112803 False
150 112903 False
151 113003 False
152 113103 False
153 113203 False
154 113303 False
155 113403 False
156 113503 False
157 113603 False
158 113703 False
159 113803 False
160 113903 False
161 114003 False
162 114103 False
163 114203 False
164 114303 False
165 114403 False
166 114503 False
167 114603 False
168 114703 False
169 114803 False
170 114903 False
171 115003 False
172 115103 False
173 115203 False
174 115303 False
175 115403 False
176 115503 False
177 115603 False
178 115703 False
179 115803 False
180 115903 False
181 120003 False
182 120103 False
183 120203 False
184 120303 False
185 120403 False
186 120503 False
187 120603 False
188 120703 False
189 120803 False
190 120903 False
191 121003 False
192 121103 False
193 121203 False
194 121303 False
195 121403 False
196 121503 False
197 121603 False
198 121703 False
199 121803 False
200 121903 False
201 122003 False
202 122103 False
203 122203 False
204 122303 False
205 122403 False
206 122503 False
207 122603 False
208 122703 False
209 122803 False
210 122903 False
211 123003 False
212 123103 False
213 123203 False
214 123303 False
215 123403 False
216 123503 False
217 123603 False
218 123703 False
219 123803 False
220 123903 False
221 124003 False
222 124103 False
223 124203 False
224 124303 False
225 124403 False
226 124503 False
227 124603 False
228 124703 False
229 124803 False
230 124903 False
231 125003 False
232 125103 False
233 125203 False
234 125303 False
235 125403 False
236 125503 False
237 125603 False
238 125703 False
239 125803 False
240 125903 False
241 130003 False
242 130103 False
243 130203 False
244 130303 False
245 130403 False
246 130503 False
247 130603 False
248 130703 False
249 130803 False
250 130903 False
251 131003 False
252 131103 False
253 131203 False
254 131303 False
255 131403 False
256 131503 False
257 131603 False
258 131703 False
259 131803 False
260 131903 False
261 132003 False
262 132103 False
263 132203 False
264 132303 False
265 132403 False
266 132503 False
267 132603 False
268 132703 False
269 132803 False
270 132903 False
271 133003 False
272 133103 False
273 133203 False
274 133303 False
275 133403 False
276 133503 False
277 133603 False
278 133703 False
279 133803 False
280 133903 False
281 134003 False
282 134103 False
283 134203 False
284 134303 False
285 134403 False
286 134503 False
287 134603 False
288 134703 False
289 134803 False
290 134903 False
291 135003 False
292 135103 False
293 135203 False
294 135303 False
295 135403 False
296 135503 False
297 135603 False
298 135703 False
299 135803 False
300 135903 False
301 140003 False
302 140103 False
303 140203 False
304 140303 False
305 140403 False
306 140503 False
307 140603 False
308 140703 False
309 140803 False
310 140903 False
311 141003 False
312 141103 False
313 141203 False
314 141303 False
315 141403 False
316 141503 False
317 141603 False
318 141703 False
319 141803 False
320 141903 False
321 142003 False
322 142103 False
323 142203 False
324 142303 False
325 142403 False
326 142503 False
327 142603 False
328 142703 False
329 142803 False
330 142903 False
331 143003 False
332 143103 False
333 143203 False
334 143303 False
335 143403 False
336 143503 False
337 143603 False
338 143703 False
339 143803 False
340 143903 False
341 144003 False
342 144103 False
343 144203 False
344 144303 False
345 144403 False
346 144503 False
347 144603 False
348 144703 False
349 144803 False
350 144903 False
351 145003 False
352 145103 False
353 145203 False
354 145303 False
355 145403 False
356 145503 False
357 145603 False
358 145703 False
359 145803 False
360 145903 False
361 150003 False
362 150103 False
363 150203 False
364 150303 False
365 150403 False
366 150503 False
367 150603 False
368 150703 False
369 150803 False
370 150903 False
371 151003 False
372 151103 False
373 151203 False
374 151303 False
375 151403 False