diff --git a/hts/BuySellChecker.py b/hts/BuySellChecker.py index 4bb371b..4024615 100644 --- a/hts/BuySellChecker.py +++ b/hts/BuySellChecker.py @@ -102,11 +102,39 @@ class BuySellChecker(): if sum(data['trend_avg'][i - duration:i]) / duration < data['trend_avg'][i]: # 상승 트렌드 if data_signal['avg20'][si] < data_signal['avg5'][si]: + """ + # 방법 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: + 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 + """ # 방법 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 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' @@ -114,9 +142,9 @@ class BuySellChecker(): 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 / (2 * data['close'][i]) + buy_count = MAX_BUY_PRICE / (1.5 * data['close'][i]) else: - buy_count = MAX_BUY_PRICE / (3 * data['close'][i]) + buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) else: buy_price = data['close'][i] buy_type = 'golden' @@ -124,14 +152,15 @@ class BuySellChecker(): 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 / (2 * data['close'][i]) + buy_count = MAX_BUY_PRICE / (1.5 * data['close'][i]) else: - buy_count = MAX_BUY_PRICE / (3 * data['close'][i]) + 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]: + buy_price = data['close'][i] buy_type = 'trend_up' buy_ymd = data['ymd'][i] if data['slow_k'][si] < 30: @@ -141,20 +170,7 @@ class BuySellChecker(): else: buy_count = MAX_BUY_PRICE / (2 * data['close'][i]) - return buy_ymd, buy_price, buy_count, buy_cut, buy_type - - # 방법 4: - if data['avg60'][i] < data['avg20'][i] < data['avg5'][i]: - buy_type = 'short_trade' - 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