init
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user