This commit is contained in:
dosang.yoon
2022-08-10 14:13:19 +09:00
parent 9cac2fd1f5
commit 97798ee2f8
2 changed files with 18 additions and 111 deletions

View File

@@ -30,14 +30,17 @@ class HTS_122630 (HTS):
self.labelMaker = LabelMaker(RESOURCE_PATH)
return
def getDefaultSell(self, log_time, stock_code, final_price):
def getSellingPrice(self, log_time, stock_code, final_price, diff=None):
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
max_price = max(jangoDic[code]['장부가'], final_price)
if diff == None:
max_price = max(jangoDic[code]['장부가'], final_price)
sell_price = (int(max_price + 5) - int(max_price + 5) % 5) + 10
else:
sell_price = (int(final_price) - int(final_price) % 5) + diff
if code == "A"+stock_code:
sell_price = (int(max_price+5) - int(max_price+5) % 5) + 10
if log_time.strftime('%H%M') < "1430":
orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], sell_price)
print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price)
@@ -46,41 +49,6 @@ class HTS_122630 (HTS):
print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price)
return
def getSellingPrice(self, final_price):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
if final_price >= jangoDic[code]['장부가'] + 5:
return jangoDic[code]['매도가능'], final_price
else:
# 장부가 가격의 마지막 자리를 0으로 만든다. (2090 -> 2090, 2092 -> 2090, 2098 -> 2090)
sell_price = int(jangoDic[code]['장부가'] / 10) * 10
# 장부가의 마지막 자리수를 가져온다.
last_number = int(jangoDic[code]['장부가']) % 10
if last_number in [0, 1, 2, 3]:
# 장부가의 마지막 자리수가 0,1,2,3 이라면 (2090, 2091, 2092 -> 2095 에 매도)
return jangoDic[code]['매도가능'], sell_price + 5
elif last_number in [4, 5, 6, 7]:
# 장부가의 마지막 자리수가 4,5,6,7 이라면 (2093, 2094, 2095, 2096 -> 2100 에 매도)
return jangoDic[code]['매도가능'], sell_price + 10
else:
# 장부가의 마지막 자리수가 8,9 라면 (2098, 2099 -> 2105 에 매도)
return jangoDic[code]['매도가능'], sell_price + 15
return 0, 0
def getFinalSellingPrice(self, final_price):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
return jangoDic[code]['매도가능'], final_price - 5
return 0, 0
def buyRealTime(self, today):
print ("START...")
@@ -146,15 +114,8 @@ class HTS_122630 (HTS):
# 매도 미체결을 모두 취소한다.
self.cancelOrderList(orderListToCancel)
# 매도 가격을 가져온다.
selling_count, selling_price = self.getSellingPrice(final_price)
# 분석되 가격으로 매도 요청한다.
if selling_count != 0 and selling_price != 0:
# 매도를 요청한다.
orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price)
# 로그 출력
print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), selling_count, selling_price, len(orderListToCancel), len(ORDER_LIST))
# 매도 다.
self.getSellingPrice(THIS_TIME, self.stock_code, final_price)
# 로그 출력
@@ -191,14 +152,7 @@ class HTS_122630 (HTS):
result = self.getRealTime(self.stock_code, today, LAST_DATA)
final_price = result["close"][len(result["close"]) - 1]
selling_count, selling_price = self.getFinalSellingPrice(final_price)
# selling_count, selling_price = self.getSellingPrice(final_price)
# 분석되 가격으로 매도 요청한다.
if selling_count != 0 and selling_price != 0:
orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price)
# 로그 출력
print("SELL", THIS_TIME, selling_count, selling_price)
self.getSellingPrice(THIS_TIME, self.stock_code, final_price)
final_sell_check = True

View File

@@ -31,14 +31,17 @@ class HTS_252670 (HTS):
self.labelMaker = LabelMaker(RESOURCE_PATH)
return
def getDefaultSell(self, log_time, stock_code, final_price):
def getSellingPrice(self, log_time, stock_code, final_price, diff=None):
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
max_price = max (jangoDic[code]['장부가'], final_price)
if diff == None:
max_price = max(jangoDic[code]['장부가'], final_price)
sell_price = (int(max_price + 5) - int(max_price + 5) % 5) + 10
else:
sell_price = (int(final_price) - int(final_price) % 5) + diff
if code == "A"+stock_code:
sell_price = (int(max_price+5) - int(max_price+5) % 5) + 5
if log_time.strftime('%H%M') < "1430":
orderNum = self.requestOrder(OrderType.sell, stock_code, jangoDic[code]['매도가능'], sell_price)
print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price)
@@ -47,41 +50,6 @@ class HTS_252670 (HTS):
print("ORDER_SELL", stock_code, log_time.strftime('%Y%m%d %H%M%S'), jangoDic[code]['매도가능'], sell_price)
return
def getSellingPrice(self, final_price):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
if final_price >= jangoDic[code]['장부가'] + 5:
return jangoDic[code]['매도가능'], final_price
else:
# 장부가 가격의 마지막 자리를 0으로 만든다. (2090 -> 2090, 2092 -> 2090, 2098 -> 2090)
sell_price = int(jangoDic[code]['장부가'] / 10) * 10
# 장부가의 마지막 자리수를 가져온다.
last_number = int(jangoDic[code]['장부가']) % 10
if last_number in [0, 1, 2, 3]:
# 장부가의 마지막 자리수가 0,1,2,3 이라면 (2090, 2091, 2092 -> 2095 에 매도)
return jangoDic[code]['매도가능'], sell_price + 5
elif last_number in [4, 5, 6, 7]:
# 장부가의 마지막 자리수가 4,5,6,7 이라면 (2093, 2094, 2095, 2096 -> 2100 에 매도)
return jangoDic[code]['매도가능'], sell_price + 10
else:
# 장부가의 마지막 자리수가 8,9 라면 (2098, 2099 -> 2105 에 매도)
return jangoDic[code]['매도가능'], sell_price + 15
return 0, 0
def getFinalSellingPrice(self, final_price, diff):
# 만약 잔고가 있으면 장부가보다 5원 높게 매도한다.
jangoDic = self.requstJango()
if jangoDic and len(jangoDic.keys()) > 0:
for code in jangoDic:
if jangoDic[code]['매도가능'] > 0:
return jangoDic[code]['매도가능'], final_price + diff
return 0, 0
def buyRealTime(self, today):
print ("START...")
@@ -147,16 +115,8 @@ class HTS_252670 (HTS):
# 매도 미체결을 모두 취소한다.
self.cancelOrderList(orderListToCancel)
# 매도 가격을 가져온다.
selling_count, selling_price = self.getSellingPrice(final_price)
# 분석되 가격으로 매도 요청한다.
if selling_count != 0 and selling_price != 0:
# 매도를 요청한다.
orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price)
# 로그 출력
print("SELL", THIS_TIME.strftime('%Y%m%d %H%M%S'), selling_count, selling_price, len(orderListToCancel), len(ORDER_LIST))
# 매도다.
self.getSellingPrice(THIS_TIME, self.stock_code, final_price)
# 로그 출력
"""
@@ -191,14 +151,7 @@ class HTS_252670 (HTS):
result = self.getRealTime(self.stock_code, today, LAST_DATA)
final_price = result["close"][len(result["close"]) - 1]
#selling_count, selling_price = self.getFinalSellingPrice(final_price, -5)
selling_count, selling_price = self.getSellingPrice(final_price)
# 분석된 가격으로 매도 요청한다.
if selling_count != 0 and selling_price != 0:
orderNum = self.requestOrder(OrderType.sell, self.stock_code, selling_count, selling_price)
# 로그 출력
print("SELL", THIS_TIME, selling_count, selling_price)
self.getSellingPrice(THIS_TIME, self.stock_code, final_price)
final_sell_check = True