This commit is contained in:
dsyoon
2023-04-16 11:08:26 +09:00
parent cd207e2068
commit 5fd138b239
2 changed files with 7 additions and 25 deletions

View File

@@ -262,7 +262,7 @@ class AnalyzerSqlite:
return energy1, energy2
def writeFile(self, dir_name, CODE, NAME, top, stock, state, final_status_count=-1):
def writeFile(self, dir_name, CODE, NAME, top, stock, state):
# 3년 이내 한번이라도 영업이익이 났는지 체크를 함
fnguide = None
if CODE in self.fnguide:
@@ -459,9 +459,6 @@ class AnalyzerSqlite:
stock_weekly = self.getStockData(stockAnalysisWeeklyTableName, CODE)
stock_monthly = self.getStockData(stockAnalysisMonthlyTableName, CODE)
final_status = ""
final_status_count = 0
# 거래량이 10만 이상이고, 종가가 1천원 이상인지 체크 (https://happpy-rich.tistory.com/94)
if stock_daily['volume'][0] > 100000 and stock_daily['close'][0] > 1000:
@@ -474,7 +471,6 @@ class AnalyzerSqlite:
check = self.common.check_macd(stock_monthly, -300)
if check:
dir_name = "monthly_macd_n이하"
final_status_count += 1
log = "{:.2f}".format(stock_monthly['macd'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_monthly, log)
@@ -482,7 +478,6 @@ class AnalyzerSqlite:
check = self.common.check_rsi(stock_monthly, 20)
if check:
dir_name = "monthly_rsi_n이하"
final_status_count += 1
log = "{:.2f}".format(stock_monthly['rsi'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_monthly, log)
@@ -493,7 +488,6 @@ class AnalyzerSqlite:
check = self.common.check_macd(stock_weekly, -300)
if check:
dir_name = "weekly_macd_n이하"
final_status_count += 1
log = "{:.2f}".format(stock_weekly['macd'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_weekly, log)
@@ -501,7 +495,6 @@ class AnalyzerSqlite:
check = self.common.check_rsi(stock_weekly, 20)
if check:
dir_name = "weekly_rsi_n이하"
final_status_count += 1
log = "{:.2f}".format(stock_weekly['rsi'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_weekly, log)
@@ -511,7 +504,6 @@ class AnalyzerSqlite:
check = self.common.check_macd(stock_daily, -1000)
if check:
dir_name = "daily_macd_n이하"
final_status_count += 1
log = "{:.2f}".format(stock_daily['macd'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
@@ -519,7 +511,6 @@ class AnalyzerSqlite:
check = self.common.check_rsi(stock_daily, 10)
if check:
dir_name = "daily_rsi_n이하"
final_status_count += 1
log = "{:.2f}".format(stock_daily['macd'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
@@ -528,7 +519,6 @@ class AnalyzerSqlite:
check, log = self.common.check_volume(stock_daily)
if check:
dir_name = "daily_이전에_없던_거래량"
final_status_count += 1
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
# daily_이격도
@@ -536,14 +526,12 @@ class AnalyzerSqlite:
if check:
dir_name = "daily_이격도"
log = str(top)
final_status_count += 1
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
# daily_낙폭과대 (60% 이상 하락)
check, log = self.common.check_excessive_drop(stock_daily)
if check:
dir_name = "daily_낙폭과대"
final_status_count += 1
log = log + "_" + str(top)
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
@@ -552,21 +540,14 @@ class AnalyzerSqlite:
if check:
dir_name = "daily_EV하단_내려옴"
log = str(top)
final_status_count += 1
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
check = self.common.check_under_BB_Low(stock_daily)
if check:
dir_name = "daily_BB하단_내려옴"
log = str(top)
final_status_count += 1
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
if final_status_count >= 5:
dir_name = "final"
self.writeFile(dir_name, CODE, NAME, top, stock_daily, final_status, final_status_count)
return
def get_moving_average(self, stock):

View File

@@ -501,14 +501,15 @@ class Common:
c_index = 200
max_volume = max(stock['volume'][1:c_index+1])
if max_volume < stock['volume'][0]:
log = "{:.2f}".format((stock['volume'][0] - max_volume)/max_volume)
if max_volume < stock['volume'][0] and stock['close'][1] < stock['close'][0]:
log = "{:.2f}".format(stock['volume'][0]/max_volume)
return True, log
c_index = 20
sum_volume = sum(stock['volume'][1:c_index + 1])
avg_volume = sum_volume / c_index
if (avg_volume + avg_volume*0.75) < stock['volume'][0]:
log = "{:.2f}".format(max_volume/stock['volume'][0])
if (avg_volume * 5) < stock['volume'][0] and stock['close'][1] < stock['close'][0]:
log = "{:.2f}".format(stock['volume'][0]/max_volume)
return True, log
return False, ""
@@ -526,7 +527,7 @@ class Common:
c_index = 200
if len(stock['close']) > c_index:
max_value = max(stock['close'][1:c_index+1])
if stock['close'][0] < max_value * 0.6:
if max_value * 0.4 < stock['close'][0] < max_value * 0.6:
return True, "{:.2f}".format(stock['close'][0]/max_value)
return False, ""