init
This commit is contained in:
@@ -174,12 +174,11 @@ if __name__ == "__main__":
|
||||
|
||||
# to check bying
|
||||
stock_codes = {
|
||||
# 252670
|
||||
# 122630
|
||||
"252670": ['20220801', '20220802', '20220803', '20220804', '20220805'],
|
||||
"122630": ['20220808'],
|
||||
"252670": ['20220808'],
|
||||
}
|
||||
|
||||
method = "rul" # "rul", "ml", "answer"
|
||||
method = "rule" # "rule", "ml", "answer"
|
||||
for stock_code in stock_codes:
|
||||
simulation = Simulation(RESOURCE_PATH)
|
||||
|
||||
|
||||
@@ -155,14 +155,6 @@ class BuySellChecker:
|
||||
if data['slow_k'][i] > 40:
|
||||
buy, weight, sell = -1, -1, -1
|
||||
|
||||
high, low = 0, 0
|
||||
for c in range(1, 10):
|
||||
if data['lower'][i-c-1] < data['lower'][i-c]:
|
||||
high += 1
|
||||
else:
|
||||
low += 1
|
||||
if high > low:
|
||||
buy, weight, sell = -1, -1, -1
|
||||
return buy, weight
|
||||
|
||||
|
||||
@@ -207,6 +199,20 @@ class BuySellChecker:
|
||||
# "15:00" 까지만 매수
|
||||
return buy, weight
|
||||
|
||||
# 5분선이 10분 이상 10분선 아래에 있다가 10분선 위로 올라옴
|
||||
if i >= 381 + 10:
|
||||
vaild = True
|
||||
for c in range(2, 10):
|
||||
if data["avg5"][i - c] > data["avg10"][i - c]:
|
||||
vaild = False
|
||||
break
|
||||
if vaild:
|
||||
if data["avg5"][i - 1] >= data["avg10"][i - 1] and data["avg5"][i] >= data["avg10"][i]:
|
||||
buy = int(data["avg5"][i] - data["avg5"][i]%5)
|
||||
weight = 1
|
||||
return self.getBuyCheck(data, i, buy, weight)
|
||||
|
||||
"""
|
||||
# 중위선 20분선 아래에서 볼린져 상단을 뚫고 종료할 때
|
||||
# (2022-07-06 11:17) (2022-07-07 14:29) (2022-07-08 12:41 12:44) (2022-07-11 13:58)
|
||||
# (2022-07-13 12:02 12:03) (2022-07-14 10:50) (2022-07-15 09:52)
|
||||
@@ -328,30 +334,10 @@ class BuySellChecker:
|
||||
buy = (data["open"][i]+data["close"][i])/2
|
||||
weight = 7
|
||||
return self.getBuyCheck(data, i, buy, weight)
|
||||
"""
|
||||
|
||||
|
||||
|
||||
# 10분선이 30분 이상 20분선 아래에 있다가 20분선 위로 올라옴
|
||||
# 이때 3, 5, 10, 20분선의 max-min이 5원 미만이다.
|
||||
if i > 381 + 20:
|
||||
vaild = True
|
||||
max_price = 0
|
||||
if i > 381 + 30:
|
||||
last = 30
|
||||
else:
|
||||
last = i - 381
|
||||
for c in range(4, last):
|
||||
if data["avg10"][i - c] >= data["avg20"][i - c]:
|
||||
vaild = False
|
||||
if max_price < data["high"][i - c]:
|
||||
max_price = data["high"][i - c]
|
||||
if vaild:
|
||||
if ((data["avg10"][i-3] > data["avg20"][i-3] and data["avg10"][i-2] > data["avg20"][i-2] and data["avg10"][i-1] > data["avg20"][i-1] and data["avg10"][i] > data["avg20"][i]) or
|
||||
(abs(data["avg10"][i-3] - data["avg20"][i-3]) < 2 and abs(data["avg10"][i-2] - data["avg20"][i-2]) < 2 and abs(data["avg10"][i-1] - data["avg20"][i-1]) < 2 and abs(data["avg10"][i] - data["avg20"][i])<2)) :
|
||||
if max(data["avg3"][i], data["avg5"][i], data["avg10"][i], data["avg20"][i]) - min(data["avg3"][i], data["avg5"][i], data["avg10"][i], data["avg20"][i]) <= 5:
|
||||
if max_price - data["close"][i] >= 30:
|
||||
buy = data["high"][i]
|
||||
weight = 10
|
||||
return self.getBuyCheck(data, i, buy, weight)
|
||||
|
||||
|
||||
"""
|
||||
@@ -501,7 +487,20 @@ class BuySellChecker:
|
||||
# "15:00" 까지만 매수
|
||||
return buy, weight
|
||||
|
||||
# 5분선이 10분 이상 10분선 아래에 있다가 10분선 위로 올라옴
|
||||
if i >= 381 + 10:
|
||||
vaild = True
|
||||
for c in range(2, 10):
|
||||
if data["avg5"][i - c] > data["avg10"][i - c]:
|
||||
vaild = False
|
||||
break
|
||||
if vaild:
|
||||
if data["avg5"][i - 1] >= data["avg10"][i - 1] and data["avg5"][i] >= data["avg10"][i]:
|
||||
buy = int(data["avg5"][i] - data["avg5"][i]%5)
|
||||
weight = 1
|
||||
return self.getBuyCheck(data, i, buy, weight)
|
||||
|
||||
"""
|
||||
# 30일 이전부터 모든 선이 좁혀졌다 녋혀지면서 다시 상승하며 좁혀짐
|
||||
if max(data["avg3"][i], data["avg5"][i], data["avg10"][i], data["avg20"][i], data["avg30"][i]) - min(data["avg3"][i], data["avg5"][i], data["avg10"][i], data["avg20"][i]) < 5:
|
||||
if data["avg3"][i - 1] < data["avg3"][i] and data["macd"][i] < 20:
|
||||
@@ -672,7 +671,7 @@ class BuySellChecker:
|
||||
buy = data["high"][i]
|
||||
weight = 3
|
||||
return buy, weight
|
||||
|
||||
"""
|
||||
|
||||
|
||||
return buy, weight
|
||||
|
||||
@@ -273,7 +273,7 @@ if __name__ == "__main__":
|
||||
|
||||
view = True
|
||||
stock_code = "252670"
|
||||
ymd = "20220804"
|
||||
ymd = "20220808"
|
||||
|
||||
if view:
|
||||
bsLine, data = labelMaker.makeCandidate(stock_code, ymd, view=view)
|
||||
|
||||
Reference in New Issue
Block a user