diff --git a/hts/BuySellChecker.py b/hts/BuySellChecker.py index 3b72f88..55b6e1c 100644 --- a/hts/BuySellChecker.py +++ b/hts/BuySellChecker.py @@ -106,7 +106,7 @@ class BuySellChecker(): # 방법 1: if max(data['volume_up'][i-180:i]) < data['volume_up'][i]: if data_signal['slow_k'][si] < 70: - if ((BUY_LIST is None) or (BUY_LIST is not None and 0 < len(BUY_LIST['buy_list']) and BUY_LIST['buy_list'][-1]['buy_price'] < data['close'][i])): + if BUY_LIST is not None and 0 < len(BUY_LIST['buy_list']) and BUY_LIST['buy_list'][-1]['buy_price'] < data['close'][i]): buy_price = data['close'][i] buy_type = 'volume_up' buy_ymd = data['ymd'][i] @@ -117,12 +117,24 @@ class BuySellChecker(): else: buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) return buy_ymd, buy_price, buy_count, buy_cut, buy_type + + if BUY_LIST is None: + buy_price = data['close'][i] + buy_type = 'golden' + buy_ymd = data['ymd'][i] + if data['slow_k'][si] < 30: + buy_count = MAX_BUY_PRICE / (1 * data['close'][i]) + elif data['slow_k'][si] < 50: + buy_count = MAX_BUY_PRICE / (1.5 * data['close'][i]) + else: + buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) + return buy_ymd, buy_price, buy_count, buy_cut, buy_type """ # 방법 2: if data['avg480'][i] < data['avg120'][i] < data['avg60'][i] < data['avg20'][i] < data['avg5'][i] < data['close'][i]: if data['avg240'][i] < min(data['avg5'][i], data['avg20'][i], data['avg60'][i], data['avg120'][i]): - if ((BUY_LIST is None) or (BUY_LIST is not None and 0 < len(BUY_LIST['buy_list']) and data['ymd'][i] < BUY_LIST['buy_list'][-1]['buy_ymd'] + timedelta(minutes=10))): + if BUY_LIST is not None and 0 < len(BUY_LIST['buy_list']) and data['ymd'][i] < BUY_LIST['buy_list'][-1]['buy_ymd'] + timedelta(minutes=10): if BUY_LIST['buy_list'][-1]['buy_price'] < data['close'][i]: buy_price = data['close'][i] buy_type = 'golden' @@ -135,10 +147,24 @@ class BuySellChecker(): buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) return buy_ymd, buy_price, buy_count, buy_cut, buy_type + if BUY_LIST is None: + buy_price = data['close'][i] + buy_type = 'golden' + buy_ymd = data['ymd'][i] + if data['slow_k'][si] < 30: + buy_count = MAX_BUY_PRICE / (1 * data['close'][i]) + elif data['slow_k'][si] < 50: + buy_count = MAX_BUY_PRICE / (1.5 * data['close'][i]) + else: + buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) + return buy_ymd, buy_price, buy_count, buy_cut, buy_type + + # 방법 3: #if sum(data['avg480'][i - 5:i]) < data['avg480'][i] and sum(data['avg60'][i - 5:i]) < data['avg60'][i] and sum(data['avg20'][i - 5:i]) < data['avg20'][i] and sum(data['avg5'][i - 5:i]) < data['avg5'][i]: if data['avg480'][i] < data['avg20'][i] < data['avg5'][i] and data['avg60'][i] < data['avg20'][i] < data['avg5'][i]: - if ((BUY_LIST is None) or (BUY_LIST is not None and 0 < len(BUY_LIST['buy_list']) and BUY_LIST['buy_list'][-1]['buy_price'] < data['close'][i])): + if BUY_LIST is not None and 0 < len(BUY_LIST['buy_list']) and BUY_LIST['buy_list'][-1]['buy_price'] < data['close'][i]: + buy_price = data['close'][i] buy_type = 'trend_up' buy_ymd = data['ymd'][i] @@ -151,6 +177,18 @@ class BuySellChecker(): return buy_ymd, buy_price, buy_count, buy_cut, buy_type + if BUY_LIST is None: + buy_price = data['close'][i] + buy_type = 'golden' + buy_ymd = data['ymd'][i] + if data['slow_k'][si] < 30: + buy_count = MAX_BUY_PRICE / (1 * data['close'][i]) + elif data['slow_k'][si] < 50: + buy_count = MAX_BUY_PRICE / (1.5 * data['close'][i]) + else: + buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) + return buy_ymd, buy_price, buy_count, buy_cut, buy_type + return buy_ymd, buy_price, buy_count, buy_cut, buy_type def getSellPriceAndWeight1(self, ticker, i, data, data_signal, BUY_LIST=None):