diff --git a/hts/HTS.py b/hts/HTS.py index 20e54a8..657738f 100644 --- a/hts/HTS.py +++ b/hts/HTS.py @@ -692,13 +692,31 @@ class HTS: if jangoDic and len(jangoDic.keys()) > 0: for code in jangoDic: if jangoDic[code]['매도가능'] > 0: - last_number = int(jangoDic[code]['장부가']) % 10 - if last_number in [0, 1, 2]: - self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], int(jangoDic[code]['장부가'] / 10) * 10 + 5) - elif last_number in [3, 4, 5, 6]: - self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], int(jangoDic[code]['장부가'] / 10) * 10 + 10) + # 가장 마지막 현재가를 가져온다. + last_price = result['close'][len(result['close'])-1] + # 현재가가 장부가보다 크다면 현재가 + 5원 매도한다. + if last_price > int(jangoDic[code]['장부가']): + # 현재가가 장부가보다 크다면, + self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], last_price) else: - self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], int(jangoDic[code]['장부가'] / 10) * 10 + 15) + # 장부가가 현재가보다 크다면, + # 장부가의 마지막 자리수를 가져온다. + last_number = int(jangoDic[code]['장부가']) % 10 + # 장부가 가격의 마지막 자리를 0으로 만든다. (2092 -> 2090, 2098 -> 2090) + sell_price = int(jangoDic[code]['장부가'] / 10) * 10 + # 만약 오후 1시 이전이라면 한 호가 (5원) 더 올려서 매도한다. + if datetime.now() < datetime.strptime(given_day + " 130000", '%Y%m%d %H%M%S'): + sell_price += 5 + + if last_number in [0, 1, 2]: + # 장부가의 마지막 자리수가 0,1,2 라면 (2090, 2091, 2092 -> 2095 에 매도) + self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], sell_price + 5) + elif last_number in [3, 4, 5, 6]: + # 장부가의 마지막 자리수가 3,4,5,6 라면 (2093, 2094, 2095, 2096 -> 2100 에 매도) + self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], sell_price + 10) + else: + # 장부가의 마지막 자리수가 7,8,9 라면 (2097, 2098, 2099 -> 2105 에 매도) + self.requestOrder("1", stock_code, jangoDic[code]['매도가능'], sell_price + 15) time.sleep(0.9)