This commit is contained in:
dsyoon
2023-01-17 12:45:41 +09:00
parent 1bf67e1919
commit 65dd70e4ef
2 changed files with 8 additions and 8 deletions

View File

@@ -30,7 +30,7 @@ class HTS_DAILY (HTS):
self.dailyStatus = DailyStatus(RESOURCE_PATH) self.dailyStatus = DailyStatus(RESOURCE_PATH)
self.buySellChecker = BuySellChecker() self.buySellChecker = BuySellChecker()
self.analyzed_day = 60 self.analyzed_day = 120
self.MAX_BUY_PRICE = 100000 self.MAX_BUY_PRICE = 100000
return return
@@ -94,7 +94,7 @@ class HTS_DAILY (HTS):
# 분석일 데이터만 활용한다 (이전 데이터는 제거) # 분석일 데이터만 활용한다 (이전 데이터는 제거)
data.drop(data.index[:self.analyzed_day], inplace=True) data.drop(data.index[:self.analyzed_day], inplace=True)
bsLine, data = self.buySellChecker.checkTransactionWithEnvelope(data, stock_code, isRealTime=False) bsLine, data = self.buySellChecker.checkTransactionWithEnvelope(data, stock_code, self.analyzed_day, isRealTime=False)
if len(data.index) > 10 and max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 0: if len(data.index) > 10 and max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 0:
last_index = len(bsLine['buy'])-1 last_index = len(bsLine['buy'])-1

View File

@@ -1061,7 +1061,7 @@ class BuySellChecker:
return False return False
return True return True
def checkWithEnvelope(self, data, isRealTime=False): def checkWithEnvelope(self, data, analyzed_day=120, isRealTime=False):
bsLine = {} bsLine = {}
size = len(data["close"]) size = len(data["close"])
@@ -1071,7 +1071,7 @@ class BuySellChecker:
bsLine['sell'] = [-1 for i in range(size)] bsLine['sell'] = [-1 for i in range(size)]
bsLine['sell_weight'] = [-1 for i in range(size)] bsLine['sell_weight'] = [-1 for i in range(size)]
gap_interval = 60 gap_interval = analyzed_day
gap_state = False gap_state = False
for i in range(size): for i in range(size):
if isRealTime: if isRealTime:
@@ -1080,7 +1080,7 @@ class BuySellChecker:
if i > 10: if i > 10:
# 만약 전일 저가와 오늘 종의 차이가 1만원이 넘으면 향후 60일은 분석하지 않는다. # 만약 전일 저가와 오늘 종의 차이가 1만원이 넘으면 향후 60일은 분석하지 않는다.
if data['low'][i-1] - data['high'][i] > 10000: if data['high'][i] < int(data['low'][i-1] * 0.7):
gap_state = True gap_state = True
gap_interval -= 1 gap_interval -= 1
continue continue
@@ -1223,14 +1223,14 @@ class BuySellChecker:
return bsLine, data return bsLine, data
def checkTransactionWithEnvelope(self, data, stock_code, isRealTime=False): def checkTransactionWithEnvelope(self, data, stock_code, analyzed_day, isRealTime=False):
if isRealTime: if isRealTime:
if stock_code == "252670": if stock_code == "252670":
bsLine, data = self.checkWithEnvelope_252670(data, isRealTime) bsLine, data = self.checkWithEnvelope_252670(data, isRealTime)
elif stock_code == "122630": elif stock_code == "122630":
bsLine, data = self.checkWithEnvelope_122630(data, isRealTime) bsLine, data = self.checkWithEnvelope_122630(data, isRealTime)
else: else:
bsLine, data = self.checkWithEnvelope(data, isRealTime) bsLine, data = self.checkWithEnvelope(data, analyzed_day, isRealTime)
else: else:
# 사야 할 시점과 팔아야 할 시점을 체크한다. # 사야 할 시점과 팔아야 할 시점을 체크한다.
if stock_code == "252670": if stock_code == "252670":
@@ -1238,6 +1238,6 @@ class BuySellChecker:
elif stock_code == "122630": elif stock_code == "122630":
bsLine, data = self.checkWithEnvelope_122630(data, isRealTime) bsLine, data = self.checkWithEnvelope_122630(data, isRealTime)
else: else:
bsLine, data = self.checkWithEnvelope(data, isRealTime) bsLine, data = self.checkWithEnvelope(data, analyzed_day, isRealTime)
return bsLine, data return bsLine, data