init
This commit is contained in:
@@ -86,7 +86,7 @@ class Simulation (HTS):
|
||||
avg10 = go.Scatter(x=data['date'], y=data["avg10"], name="avg10", line_color='#ff00ff')
|
||||
avg20 = go.Scatter(x=data['date'], y=data["avg20"], name="avg20", line_color='#1469F4')
|
||||
avg30 = go.Scatter(x=data['date'], y=data["avg30"], name="avg30", line_color='#000000')
|
||||
#avg60 = go.Scatter(x=hts['date'], y=hts["avg60"], name="avg60", line_color='#008000')
|
||||
avg60 = go.Scatter(x=data['date'], y=data["avg60"], name="avg60", line_color='#008000')
|
||||
|
||||
candle_stick = go.Candlestick(x=data['date'], open=data['open'], high=data['high'], low=data['low'], close=data['close'], increasing_line_color='red', decreasing_line_color='blue')
|
||||
volume_line = go.Scatter(x=data['date'], y=data["volume"], mode='lines', name='volume')
|
||||
@@ -102,7 +102,7 @@ class Simulation (HTS):
|
||||
rsi_line = go.Scatter(x=data['date'], y=data["rsi"], mode='lines', name='rsi')
|
||||
rsis_line = go.Scatter(x=data['date'], y=data["rsis"], mode='lines', name='rsis')
|
||||
|
||||
candle_data = [candle_stick, upper, lower, avg3, avg5, avg10, avg20, avg30, buy_check, sell_check]
|
||||
candle_data = [candle_stick, upper, lower, avg3, avg5, avg10, avg20, avg30, avg60, buy_check, sell_check]
|
||||
volume_data = [volume_line]
|
||||
macd_data = [macd_line, macd_s_line, macd_o_line]
|
||||
stochastic_data = [slow_k_line, slow_d_line]
|
||||
@@ -175,11 +175,11 @@ if __name__ == "__main__":
|
||||
|
||||
# to check bying
|
||||
stock_codes = {
|
||||
"122630": ['20220810'],
|
||||
"252670": ['20220810'],
|
||||
"122630": ['20220809'],
|
||||
"252670": ['20220809'],
|
||||
}
|
||||
|
||||
method = "answer" # "rule", "ml", "answer"
|
||||
method = "rule" # "rule", "ml", "answer"
|
||||
for stock_code in stock_codes:
|
||||
simulation = Simulation(RESOURCE_PATH)
|
||||
|
||||
|
||||
@@ -199,6 +199,16 @@ class BuySellChecker:
|
||||
# "15:00" 까지만 매수
|
||||
return buy, weight
|
||||
|
||||
# 20분과 30분 아래에서, 3분선이 5분선 위로 올라오면 매수,
|
||||
# 20분과 30분 위에서, 3분선이 5분선 아래로 내려오면 매도,
|
||||
if data["avg3"][i - 1] <= data["avg5"][i - 1] and data["avg3"][i] > data["avg5"][i]:
|
||||
if max(data["avg3"][i], data["avg5"][i]) < min(data["avg20"][i], data["avg30"][i]):
|
||||
if min(data["avg3"][i], data["avg5"][i]) > data["avg60"][i]:
|
||||
buy = int((data["high"][i] + data["low"][i]) / 2)
|
||||
weight = 1
|
||||
return buy, weight
|
||||
|
||||
"""
|
||||
# 3분선이 10분 이상 7분선 아래에 있다가 7분선 위로 올라옴
|
||||
if i >= 381 + 10:
|
||||
vaild = True
|
||||
@@ -211,6 +221,7 @@ class BuySellChecker:
|
||||
buy = int(data["avg3"][i] - data["avg3"][i]%5)
|
||||
weight = 1
|
||||
return self.getBuyCheck(data, i, buy, weight)
|
||||
"""
|
||||
|
||||
"""
|
||||
# 중위선 20분선 아래에서 볼린져 상단을 뚫고 종료할 때
|
||||
@@ -400,6 +411,14 @@ class BuySellChecker:
|
||||
if i >= START_TIME_INDEX:
|
||||
# 매도 분석
|
||||
|
||||
# 20분과 30분 아래에서, 3분선이 5분선 위로 올라오면 매수,
|
||||
# 20분과 30분 위에서, 3분선이 5분선 아래로 내려오면 매도,
|
||||
if data["avg3"][i - 1] >= data["avg5"][i - 1] and data["avg3"][i] < data["avg5"][i]:
|
||||
if min(data["avg3"][i], data["avg5"][i]) > max(data["avg20"][i], data["avg30"][i]):
|
||||
sell = int((data["high"][i] + data["low"][i]) / 2)
|
||||
weight = 1
|
||||
return sell, weight
|
||||
"""
|
||||
# 3분선이 5분 이상 5분선 위에 있다가 5분선 아래로 내려옴
|
||||
if i >= 381 + 5:
|
||||
vaild = True
|
||||
@@ -412,7 +431,7 @@ class BuySellChecker:
|
||||
sell = int(data["avg3"][i] - data["avg3"][i]%5)
|
||||
weight = 1
|
||||
return sell, weight
|
||||
|
||||
"""
|
||||
"""
|
||||
# 3분 선이 40분 전부터 게속 20분선 위에 있다가 아래로 내려오면 매도함
|
||||
if data["avg3"][i] < data["avg20"][i]:
|
||||
@@ -500,6 +519,15 @@ class BuySellChecker:
|
||||
# "15:00" 까지만 매수
|
||||
return buy, weight
|
||||
|
||||
# 20분과 30분 아래에서, 3분선이 5분선 위로 올라오면 매수,
|
||||
# 20분과 30분 위에서, 3분선이 5분선 아래로 내려오면 매도,
|
||||
if data["avg3"][i - 1] <= data["avg5"][i - 1] and data["avg3"][i] > data["avg5"][i]:
|
||||
if max(data["avg3"][i], data["avg5"][i]) < min(data["avg20"][i], data["avg30"][i]):
|
||||
if min(data["avg3"][i], data["avg5"][i]) > data["avg60"][i]:
|
||||
buy = int((data["high"][i] + data["low"][i]) / 2)
|
||||
weight = 1
|
||||
return buy, weight
|
||||
"""
|
||||
# 3분선이 10분 이상 7분선 아래에 있다가 7분선 위로 올라옴
|
||||
if i >= 381 + 10:
|
||||
vaild = True
|
||||
@@ -512,6 +540,7 @@ class BuySellChecker:
|
||||
buy = int(data["avg3"][i] - data["avg3"][i] % 5)
|
||||
weight = 1
|
||||
return self.getBuyCheck(data, i, buy, weight)
|
||||
"""
|
||||
|
||||
"""
|
||||
# 30일 이전부터 모든 선이 좁혀졌다 녋혀지면서 다시 상승하며 좁혀짐
|
||||
@@ -702,6 +731,14 @@ class BuySellChecker:
|
||||
if i >= START_TIME_INDEX:
|
||||
# 매도 분석
|
||||
|
||||
# 20분과 30분 아래에서, 3분선이 5분선 위로 올라오면 매수,
|
||||
# 20분과 30분 위에서, 3분선이 5분선 아래로 내려오면 매도,
|
||||
if data["avg3"][i - 1] >= data["avg5"][i - 1] and data["avg3"][i] < data["avg5"][i]:
|
||||
if min(data["avg3"][i], data["avg5"][i]) > max(data["avg20"][i], data["avg30"][i]):
|
||||
sell = int((data["high"][i] + data["low"][i]) / 2)
|
||||
weight = 1
|
||||
return sell, weight
|
||||
"""
|
||||
# 3분선이 5분 이상 5분선 위에 있다가 5분선 아래로 내려옴
|
||||
if i >= 381 + 5:
|
||||
vaild = True
|
||||
@@ -714,7 +751,7 @@ class BuySellChecker:
|
||||
sell = int(data["avg3"][i] - data["avg3"][i]%5)
|
||||
weight = 1
|
||||
return sell, weight
|
||||
|
||||
"""
|
||||
"""
|
||||
# 3분 선이 40분 전부터 게속 20분선 위에 있다가 아래로 내려오면 매도함
|
||||
if data["avg3"][i] < data["avg20"][i]:
|
||||
|
||||
Reference in New Issue
Block a user