This commit is contained in:
dosangyoon
2022-07-29 14:28:27 +09:00
parent b06a89eb2f
commit 794e2ea5f7
1082 changed files with 4441 additions and 446000 deletions

View File

@@ -37,16 +37,16 @@ class BuySellChecker:
### sell 분석 ###
################
# 1. 볼린져밴드 상단이 최고와 종가 사이 아래에 있는 경우 매도한다.
#if (data["high"][i] - data["close"][i]) / 2 + data["close"][i] > data["upper"][i]:
# sell = data["high"][i]
#if (hts["high"][i] - hts["close"][i]) / 2 + hts["close"][i] > hts["upper"][i]:
# sell = hts["high"][i]
# 2. slow_k가 90이 넘으면 매도한다.
if data["slow_k"][i] > 90:
sell = data["high"][i]
#if data["slow_k"][i] >= 85:
# if data["slow_d"][i-1] < data["slow_k"][i-1] and data["slow_k"][i] < data["slow_d"][i]:
# sell = data["high"][i]
#if hts["slow_k"][i] >= 85:
# if hts["slow_d"][i-1] < hts["slow_k"][i-1] and hts["slow_k"][i] < hts["slow_d"][i]:
# sell = hts["high"][i]
# 3. 2시 이후에는 최고가가 볼린져밴드 상단 위에 있으면 매도한다.
if i > 300 and data["high"][i] > data["upper"][i]:
@@ -347,45 +347,45 @@ class BuySellChecker:
"""
# 이동선을 이용한 매매
# 20분선이 30분선에 돌파 후 지지하는지 확인하고 해당 시점이 양봉이면 매수함
if data['avg20'][i] > data['avg30'][i]:
diff1 = data['avg20'][i] - data['avg30'][i]
diff2 = data['avg20'][i-1] - data['avg30'][i-1]
diff3 = data['avg20'][i-2] - data['avg30'][i-2]
diff4 = data['avg20'][i-3] - data['avg30'][i-3]
diff5 = data['avg20'][i-4] - data['avg30'][i-4]
if hts['avg20'][i] > hts['avg30'][i]:
diff1 = hts['avg20'][i] - hts['avg30'][i]
diff2 = hts['avg20'][i-1] - hts['avg30'][i-1]
diff3 = hts['avg20'][i-2] - hts['avg30'][i-2]
diff4 = hts['avg20'][i-3] - hts['avg30'][i-3]
diff5 = hts['avg20'][i-4] - hts['avg30'][i-4]
if 0 < diff3 < diff2 < diff1:
if data['high'][i-2] <= data['high'][i-1] <= data['high'][i]:
if data['open'][i - 2] <= data['close'][i - 2] and data['open'][i-1] <= data['close'][i-1] and data['open'][i] <= data['close'][i]:
if hts['high'][i-2] <= hts['high'][i-1] <= hts['high'][i]:
if hts['open'][i - 2] <= hts['close'][i - 2] and hts['open'][i-1] <= hts['close'][i-1] and hts['open'][i] <= hts['close'][i]:
if diff5 < diff4 < 0:
if data["rsi"][i] < 30:
buy = (data["open"][i]+data["close"][i])/2
if hts["rsi"][i] < 30:
buy = (hts["open"][i]+hts["close"][i])/2
weight = 7
return self.getBuyCheck(data, i, buy, weight)
return self.getBuyCheck(hts, i, buy, weight)
# 이동선을 이용한 매매
# 3분선과 5분선이 10분 이상 내려오다가 3분선이 5분선을 넘어 서는 순간 매수
# (2022-07-04 09:22) (2022-07-05 09:38) (2022-07-07 09:35) (2022-07-08 09:06) (2022-07-11 09:25) (2022-07-13 10:12) (2022-07-15 14:48)
if int(data["avg3"][i]) > int(data["avg5"][i]):
if int(hts["avg3"][i]) > int(hts["avg5"][i]):
valid = True
same_count = 0
for c in range(1, 11):
if int(data["avg3"][i-c]) == int(data["avg5"][i-c]):
if int(hts["avg3"][i-c]) == int(hts["avg5"][i-c]):
same_count += 1
if int(data["avg3"][i-c]) > int(data["avg5"][i-c]):
if int(hts["avg3"][i-c]) > int(hts["avg5"][i-c]):
valid = False
break
if valid and same_count < 2:
if data['macd'][i] < -5:
buy = data["close"][i] - 5
if hts['macd'][i] < -5:
buy = hts["close"][i] - 5
weight = 1
return self.getBuyCheck(data, i, buy, weight)
return self.getBuyCheck(hts, i, buy, weight)
# 만약 30원 이상 장대 양봉이 나온 경우, 다음이나 다다음 중간 값에서 매수를 한다.
if (data["close"][i] - data["low"][i]) >= 30:
middle = int((data["close"][i] + data["low"][i])/2)
if (hts["close"][i] - hts["low"][i]) >= 30:
middle = int((hts["close"][i] + hts["low"][i])/2)
buy = middle
weight = 1
return self.getBuyCheck(data, i, buy, weight)
return self.getBuyCheck(hts, i, buy, weight)
"""