This commit is contained in:
dsyoon
2023-05-07 22:48:43 +09:00
parent 88f8c4d681
commit 820e557a97
2 changed files with 36 additions and 3 deletions

View File

@@ -409,13 +409,15 @@ class AnalyzerSqlite:
os.mkdir(outPath)
self.makeDir("monthly_env_하단_rsi_50")
self.makeDir("monthly_env_상단")
self.makeDir("monthly_env_상단_volume")
self.makeDir("monthly_mv_5_20")
self.makeDir("monthly_mv_20_60")
self.makeDir("weekly_env_상단_volume")
self.makeDir("weekly_mv_5_20")
self.makeDir("weekly_mv_20_60")
self.makeDir("daily_env_상단_volume")
self.makeDir("daily_이전에_없던_거래량")
self.makeDir("daily_이격도")
#self.makeDir("daily_EV하단_내려옴")
@@ -472,9 +474,9 @@ class AnalyzerSqlite:
self.writeFile(dir_name, CODE, NAME, top, stock_monthly, log)
# ENV 상단 상향 돌파
check = self.common.check_env_upper(stock_monthly)
check = self.common.check_env_upper_volume(stock_monthly)
if check:
dir_name = "monthly_env_상단"
dir_name = "monthly_env_상단_volume"
log = "RSI_" + "{:.2f}".format(stock_monthly['rsi'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_monthly, log)
@@ -495,6 +497,13 @@ class AnalyzerSqlite:
# Weekly 체크
if len(stock_weekly['volume']) > 40:
# ENV 상단 상향 돌파
check = self.common.check_env_upper_volume(stock_weekly)
if check:
dir_name = "Weekly_env_상단_volume"
log = "RSI_" + "{:.2f}".format(stock_weekly['rsi'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_weekly, log)
# 5주
check = self.common.check_mv_5_20(stock_weekly)
if check:
@@ -512,6 +521,13 @@ class AnalyzerSqlite:
# 2) daily
if len(stock_daily['volume']) > 100:
# ENV 상단 상향 돌파
check = self.common.check_env_upper_volume(stock_daily)
if check:
dir_name = "Daily_env_상단_volume"
log = "RSI_" + "{:.2f}".format(stock_daily['rsi'][0])
self.writeFile(dir_name, CODE, NAME, top, stock_daily, log)
# 52주 200일 기준 평균 + 50% 보다 높은 거래량의 경우
check, log = self.common.check_volume(stock_daily)
if check:

View File

@@ -506,6 +506,23 @@ class Common:
return True
return False
def check_env_upper_volume(self, stock):
c_index = 200
check = True
max_volume = max(stock['volume'][1:c_index + 1])
if 0 < max_volume < stock['volume'][0] and stock['close'][1] < stock['close'][0]:
check = True
c_index = 20
sum_volume = sum(stock['volume'][1:c_index + 1])
avg_volume = sum_volume / c_index
if (avg_volume * 5) < stock['volume'][0] and stock['close'][1] < stock['close'][0]:
check = True
if check and stock['close'][1] < stock['envelope_upper'][1] and stock['envelope_upper'][0] < stock['close'][0]:
return True
return False
def check_mv_5_20(self, stock):
if stock['avg5'][1] < stock['avg20'][1] and stock['avg20'][0] < stock['avg5'][0]:
return True