init
This commit is contained in:
@@ -221,102 +221,60 @@ class BuySellChecker:
|
||||
def getBuyPriceAndWeight(self, stock_code, i, data):
|
||||
buy, weight = -1, -1
|
||||
|
||||
if i > 40:
|
||||
max_vol_5 = max(data['volume'].to_list()[i - 4: i + 1])
|
||||
max_vol_30 = max(data['volume'].to_list()[i - 24: i - 4])
|
||||
if max_vol_30 < max_vol_5:
|
||||
if data['open'][i-1] < data['close'][i-1] and data['volume'][i-1] < data['volume'][i]:
|
||||
#if data['open'][i - 1] < data['close'][i - 1] and data['volume'][i - 1] < data['volume'][i]:
|
||||
if i < 40:
|
||||
return buy, weight
|
||||
|
||||
# 1) 스토캐스틱 과매도
|
||||
slow_k_buy = False
|
||||
max_vol_5 = max(data['volume'].to_list()[i - 4: i + 1])
|
||||
max_vol_30 = max(data['volume'].to_list()[i - 24: i - 4])
|
||||
if max_vol_30 < max_vol_5:
|
||||
if data['open'][i-1] < data['close'][i-1] and data['volume'][i-1] < data['volume'][i]:
|
||||
#if data['open'][i - 1] < data['close'][i - 1] and data['volume'][i - 1] < data['volume'][i]:
|
||||
|
||||
# 1) 스토캐스틱 과매도
|
||||
slow_k_buy = False
|
||||
for idx in range(i, i-10, -1):
|
||||
if data['slow_k'][idx] < 20:
|
||||
slow_k_buy = True
|
||||
break
|
||||
|
||||
# 2) macd 교차 신호
|
||||
macd_buy = False
|
||||
if slow_k_buy:
|
||||
for idx in range(i, i-10, -1):
|
||||
if data['slow_k'][idx] < 20:
|
||||
slow_k_buy = True
|
||||
break
|
||||
if data['macd'][idx - 1] < 0 and data['macds'][idx - 1] < 0 and data['macd'][idx] < 0 and data['macds'][idx] < 0:
|
||||
if data['macd'][idx-1] < data['macds'][idx-1] and data['macd'][idx] > data['macds'][idx]:
|
||||
macd_buy = True
|
||||
break
|
||||
|
||||
# 2) macd 교차 신호
|
||||
macd_buy = False
|
||||
if slow_k_buy:
|
||||
for idx in range(i, i-10, -1):
|
||||
if data['macd'][idx - 1] < 0 and data['macds'][idx - 1] < 0 and data['macd'][idx] < 0 and data['macds'][idx] < 0:
|
||||
if data['macd'][idx-1] < data['macds'][idx-1] and data['macd'][idx] > data['macds'][idx]:
|
||||
macd_buy = True
|
||||
break
|
||||
# 3) RSI 지수가 50위로 올라갈 때
|
||||
if macd_buy:
|
||||
if data['rsi'][i-1] < 40 and data['rsi'][i] > 40:
|
||||
buy, weight = data['close'][i] , 1
|
||||
|
||||
# 3) RSI 지수가 50위로 올라갈 때
|
||||
if macd_buy:
|
||||
if data['rsi'][i-1] < 40 and data['rsi'][i] > 40:
|
||||
buy, weight = data['close'][i] , 1
|
||||
|
||||
|
||||
|
||||
if stock_code in ("252670", "251340"):
|
||||
if data['macd'][i] < -0.2:
|
||||
if data['open'][i - 1] < data['close'][i - 1] and data['volume'][i - 1] < data['volume'][i]:
|
||||
buy, weight = data['close'][i], 1
|
||||
|
||||
if 60 < i and data['avg200'][i] < data['avg5'][i] and data['avg200'][i] < data['avg20'][i] and data['avg200'][i] < data['avg60'][i]:
|
||||
if data['open'][i] < data['close'][i]:
|
||||
if max(data['volume'][i-60:i].tolist()) * 3 < data['volume'][i]:
|
||||
if max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) - min(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) < 0.0007:
|
||||
if max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i]) - min(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i]) < 0.0009:
|
||||
buy, weight = data['close'][i], 10
|
||||
|
||||
elif stock_code in ("122630", "233740"):
|
||||
if 10 < i and data['close'][i] < data['avg200'][i] and data['open'][i] < data['close'][i] and max(data['avg5'][i], data['avg20'][i], data['avg200'][i]) < data['avg60'][i]:
|
||||
if data['open'][i] < min(data['close'][i], data['avg5'][i], data['avg20'][i], data['avg60'][i], data['avg120'][i]):
|
||||
if max(data['volume'][i-10:i].tolist()) * 4 < data['volume'][i]:
|
||||
if data['open'][i] < (data['upper'][i] + data['lower'][i])/2:
|
||||
buy, weight = data['close'][i], 3
|
||||
|
||||
if 10 < i and data['avg200'][i] < data['avg5'][i] and data['avg200'][i] < data['avg20'][i] and data['avg200'][i] < data['avg60'][i]:
|
||||
if data['open'][i] < data['close'][i]:
|
||||
if max(data['volume'][i-10:i].tolist()) * 3 < data['volume'][i]:
|
||||
if max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) - min(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) < 0.003:
|
||||
buy, weight = data['close'][i], 1
|
||||
|
||||
if data['open'][i-1] < data['close'][i-1] and data['open'][i] < data['close'][i]:
|
||||
if data['volume'][i-1] * 10 < data['volume'][i]:
|
||||
if data['upper'][i] < data['close'][i]:
|
||||
if max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) - min( data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) < 0.005:
|
||||
if max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i]) - min(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i]) < 0.006:
|
||||
if data['avg200'][i] < min(data['open'][i], data['close'][i], data['avg5'][i], data['avg20'][i], data['avg60'][i]):
|
||||
buy, weight = data['close'][i]+2, 3
|
||||
|
||||
|
||||
if 10 < i:
|
||||
check = False
|
||||
for c in range(i-10):
|
||||
if data['close'][c-1] < data['close'][c-2] < data['close'][c-3] < data['close'][c-4] < data['close'][c-5] < data['close'][c-6]:
|
||||
if data['close'][c-1] < data['lower'][c-1] and data['close'][c-2] < data['lower'][c-2] and data['close'][c-3] < data['lower'][c-3] and data['close'][c-4] < data['lower'][c-4] and data['close'][c-5] < data['lower'][c-5] and data['close'][c-6] < data['lower'][c-6]:
|
||||
check = True
|
||||
break
|
||||
if check and data['close'][i] < data['lower'][i]:
|
||||
buy, weight = data['close'][i], 1
|
||||
|
||||
if stock_code in ("233740"):
|
||||
if data['macd'][i] < -20:
|
||||
if data['macd'][i] < -10:
|
||||
if data['macd'][i-1] < data['macds'][i-1] and data['macds'][i] < data['macd'][i]:
|
||||
buy, weight = data['close'][i], 3
|
||||
|
||||
if stock_code in ("122630"):
|
||||
if data['macd'][i] < -20:
|
||||
if data['macd'][i] < -15:
|
||||
if data['macd'][i-1] < data['macds'][i-1] and data['macds'][i] < data['macd'][i]:
|
||||
buy, weight = data['close'][i], 2
|
||||
|
||||
if stock_code in ("251340"):
|
||||
if data['macd'][i] < -2:
|
||||
if data['macd'][i] < -3:
|
||||
if data['macd'][i-1] < data['macds'][i-1] and data['macds'][i] < data['macd'][i]:
|
||||
buy, weight = data['close'][i], 3
|
||||
|
||||
if stock_code in ("BCH"):
|
||||
if stock_code in ("252670"):
|
||||
if data['macd'][i] < -1:
|
||||
if data['macd'][i-1] < data['macds'][i-1] and data['macds'][i] < data['macd'][i]:
|
||||
buy, weight = data['close'][i], 3
|
||||
|
||||
return buy, weight
|
||||
|
||||
|
||||
def getSellPriceAndWeight(self, stock_code, i, data):
|
||||
sell, weight = -1, -1
|
||||
|
||||
@@ -842,6 +800,26 @@ class BuySellChecker:
|
||||
data['buy'][i] = buy
|
||||
bsLine['buy'][i] = buy
|
||||
bsLine['buy_weight'][i] = 5.0
|
||||
"""
|
||||
check = True
|
||||
for l in range(i - 3, i):
|
||||
if (
|
||||
data['gradients_low'][l - 1] < data['gradients_low'][l] or
|
||||
data['gradients_avg60'][l - 1] < data['gradients_avg60'][l] or
|
||||
data['gradients_avg20'][l - 1] < data['gradients_avg20'][l] or
|
||||
0.01 < data['gradients_low'][l - 1] < 0.21 or
|
||||
-0.09 < data['gradients_avg20'][l - 1] < -0.002 or
|
||||
0.01 < data['gradients_avg60'][l - 1] < 0.021
|
||||
):
|
||||
check = False
|
||||
break
|
||||
if check:
|
||||
if data['slow_k'][i] < 30:
|
||||
buy = data['low'][i]
|
||||
data['buy'][i] = buy
|
||||
bsLine['buy'][i] = buy
|
||||
bsLine['buy_weight'][i] = 5.0
|
||||
"""
|
||||
|
||||
|
||||
if (data['disparity'][i] < 5 and 99.0 < data['disparity_avg60'][i] < 99.1 and
|
||||
|
||||
Reference in New Issue
Block a user