From 5fd138b23992e3e41e18c39c7e92a305f88116b7 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Sun, 16 Apr 2023 11:08:26 +0900 Subject: [PATCH] init --- stock/analysis/AnalyzerSqlite.py | 21 +-------------------- stock/analysis/Common.py | 11 ++++++----- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/stock/analysis/AnalyzerSqlite.py b/stock/analysis/AnalyzerSqlite.py index 9b28332..6e589f7 100644 --- a/stock/analysis/AnalyzerSqlite.py +++ b/stock/analysis/AnalyzerSqlite.py @@ -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): diff --git a/stock/analysis/Common.py b/stock/analysis/Common.py index a7b0951..92fcc3d 100644 --- a/stock/analysis/Common.py +++ b/stock/analysis/Common.py @@ -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, ""