init
This commit is contained in:
@@ -174,12 +174,11 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
# to check bying
|
# to check bying
|
||||||
stock_codes = {
|
stock_codes = {
|
||||||
# 252670
|
"122630": ['20220808'],
|
||||||
# 122630
|
"252670": ['20220808'],
|
||||||
"252670": ['20220801', '20220802', '20220803', '20220804', '20220805'],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
method = "rul" # "rul", "ml", "answer"
|
method = "rule" # "rule", "ml", "answer"
|
||||||
for stock_code in stock_codes:
|
for stock_code in stock_codes:
|
||||||
simulation = Simulation(RESOURCE_PATH)
|
simulation = Simulation(RESOURCE_PATH)
|
||||||
|
|
||||||
|
|||||||
@@ -155,14 +155,6 @@ class BuySellChecker:
|
|||||||
if data['slow_k'][i] > 40:
|
if data['slow_k'][i] > 40:
|
||||||
buy, weight, sell = -1, -1, -1
|
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
|
return buy, weight
|
||||||
|
|
||||||
|
|
||||||
@@ -207,6 +199,20 @@ class BuySellChecker:
|
|||||||
# "15:00" 까지만 매수
|
# "15:00" 까지만 매수
|
||||||
return buy, weight
|
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분선 아래에서 볼린져 상단을 뚫고 종료할 때
|
# 중위선 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-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)
|
# (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
|
buy = (data["open"][i]+data["close"][i])/2
|
||||||
weight = 7
|
weight = 7
|
||||||
return self.getBuyCheck(data, i, buy, weight)
|
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" 까지만 매수
|
# "15:00" 까지만 매수
|
||||||
return buy, weight
|
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일 이전부터 모든 선이 좁혀졌다 녋혀지면서 다시 상승하며 좁혀짐
|
# 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 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:
|
if data["avg3"][i - 1] < data["avg3"][i] and data["macd"][i] < 20:
|
||||||
@@ -672,7 +671,7 @@ class BuySellChecker:
|
|||||||
buy = data["high"][i]
|
buy = data["high"][i]
|
||||||
weight = 3
|
weight = 3
|
||||||
return buy, weight
|
return buy, weight
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
return buy, weight
|
return buy, weight
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
view = True
|
view = True
|
||||||
stock_code = "252670"
|
stock_code = "252670"
|
||||||
ymd = "20220804"
|
ymd = "20220808"
|
||||||
|
|
||||||
if view:
|
if view:
|
||||||
bsLine, data = labelMaker.makeCandidate(stock_code, ymd, view=view)
|
bsLine, data = labelMaker.makeCandidate(stock_code, ymd, view=view)
|
||||||
|
|||||||
Reference in New Issue
Block a user