From fd5e7058629e50f012485f7e7e781a9e53681cde Mon Sep 17 00:00:00 2001 From: dsyoon Date: Sun, 17 Nov 2024 16:43:47 +0900 Subject: [PATCH] init --- stock/analysis/Common.py | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/stock/analysis/Common.py b/stock/analysis/Common.py index 7c89ba2..69c97a9 100644 --- a/stock/analysis/Common.py +++ b/stock/analysis/Common.py @@ -726,32 +726,19 @@ class Common: return False def buy_stock_ichimok(self, stock_daily): - # 어제의 저가는 선행 1과 2 사이에 있었는데, 오늘은 선행 1과 2 위로 올라왔다. - check_buy = False if stock_daily['close'][0] < stock_daily['open'][0]: return check_buy - for c in range(0, 4): - if stock_daily['ichimokucloud_leadingSpan1'][c] is None or stock_daily['ichimokucloud_leadingSpan2'][c] is None: - return check_buy - - # 체크 1 - if (stock_daily['ichimokucloud_leadingSpan1'][1] < stock_daily['close'][1] <= stock_daily['ichimokucloud_leadingSpan2'][1] and - stock_daily['ichimokucloud_leadingSpan1'][0] < stock_daily['ichimokucloud_leadingSpan2'][0] < stock_daily['close'][0]): - check_buy = True - - # 체크 2 - for c in range(0, 3): - if ( - # 선행1 (상승) < 종가 혹은 시가 < 선행2 (하락) 였는데, 오늘은 선행1 (상승) < 선행2 (하락) < 종가 혹은 시가 - (stock_daily['close'][(c+1)] <= max(stock_daily['ichimokucloud_leadingSpan1'][(c+1)], stock_daily['ichimokucloud_leadingSpan2'][(c+1)])) and - (max(stock_daily['ichimokucloud_leadingSpan1'][c], stock_daily['ichimokucloud_leadingSpan2'][c]) < stock_daily['close'][(c)]) - ): + ### 주가가 구름대를 상향 돌파함 + # 오늘: max(선행 1,2) < 시가 < 종가, 어제 종가 < 오늘 종가 + if (max(stock_daily['leadingSpan1'].iloc[0], stock_daily['leadingSpan2'].iloc[0]) < stock_daily['open'].iloc[0] < stock_daily['close'].iloc[0]) and (stock_daily['close'].iloc[1] < stock_daily['close'].iloc[0]): + # 어제: 시가 < 종가 <= max(스팬1,2) 이거나 + # 어제: 시가 < max(스팬1,2) < 종가 이거나 + # 어제: 시가 < 종가 < max(스팬1,2) 임 + if ((stock_daily['open'].iloc[1] < stock_daily['close'].iloc[1] <= max(stock_daily['leadingSpan1'].iloc[1], stock_daily['leadingSpan2'].iloc[1])) or + (stock_daily['open'].iloc[1] < max(stock_daily['leadingSpan1'].iloc[1], stock_daily['leadingSpan2'].iloc[1]) < stock_daily['close'].iloc[1]) or + (stock_daily['open'].iloc[1] < stock_daily['close'].iloc[1]) < max(stock_daily['leadingSpan1'].iloc[1], stock_daily['leadingSpan2'].iloc[1])): check_buy = True - break - if stock_daily['close'][(c)] < stock_daily['ichimokucloud_leadingSpan1'][c]: - check_buy = False - break return check_buy