diff --git a/hts/BuySellChecker.py b/hts/BuySellChecker.py index 362a720..3b72f88 100644 --- a/hts/BuySellChecker.py +++ b/hts/BuySellChecker.py @@ -106,18 +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 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] - 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 - else: + 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])): buy_price = data['close'][i] buy_type = 'volume_up' buy_ymd = data['ymd'][i] @@ -133,7 +122,7 @@ class BuySellChecker(): # 방법 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 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 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['buy_list'][-1]['buy_price'] < data['close'][i]: buy_price = data['close'][i] buy_type = 'golden' @@ -144,32 +133,23 @@ class BuySellChecker(): buy_count = MAX_BUY_PRICE / (1.5 * data['close'][i]) else: buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) - else: - 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 # 방법 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]: - buy_price = data['close'][i] - buy_type = 'trend_up' - 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]) + 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])): + buy_price = data['close'][i] + buy_type = 'trend_up' + 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 return buy_ymd, buy_price, buy_count, buy_cut, buy_type