This commit is contained in:
dsyoon
2023-01-24 19:55:10 +09:00
parent 92d4789b31
commit 74365b7d37

View File

@@ -349,36 +349,26 @@ class Bithumb_minute(HTS):
sell_colors.append("#00ced1") sell_colors.append("#00ced1")
# 그래프를 설정한다. # 그래프를 설정한다.
buy_check = go.Scatter(x=data['ymd'], y=buy_line, mode='markers', name="buy", buy_check = go.Scatter(x=data['ymd'], y=buy_line, mode='markers', name="buy", marker=dict(size=buy_size, color=buy_colors, line_width=0))
marker=dict(size=buy_size, color=buy_colors, line_width=0)) sell_check = go.Scatter(x=data['ymd'], y=sell_line, mode='markers', name="sell", marker=dict(size=14, color=sell_colors, line_width=0))
sell_check = go.Scatter(x=data['ymd'], y=sell_line, mode='markers', name="sell",
marker=dict(size=14, color=sell_colors, line_width=0))
avg5 = go.Scatter(x=data['ymd'], y=data["avg5"], name="avg5", line_color='#6C2507') avg5 = go.Scatter(x=data['ymd'], y=data["avg5"], name="avg5", line_color='#6C2507')
avg20 = go.Scatter(x=data['ymd'], y=data["avg20"], name="avg20", line_color='#f84c43') avg20 = go.Scatter(x=data['ymd'], y=data["avg20"], name="avg20", line_color='#f84c43')
avg60 = go.Scatter(x=data['ymd'], y=data["avg60"], name="avg60", line_color='#f89543') avg60 = go.Scatter(x=data['ymd'], y=data["avg60"], name="avg60", line_color='#f89543')
candle_stick = go.Candlestick(x=data['ymd'], open=data['open'], high=data['high'], low=data['low'], candle_stick = go.Candlestick(x=data['ymd'], open=data['open'], high=data['high'], low=data['low'], close=data['close'], increasing_line_color='red', decreasing_line_color='blue', showlegend=False)
close=data['close'], increasing_line_color='red', decreasing_line_color='blue',
showlegend=False)
macd_line = go.Scatter(x=data['ymd'], y=data["macd"], line=dict(color='red', width=2), name='macd') macd_line = go.Scatter(x=data['ymd'], y=data["macd"], line=dict(color='red', width=2), name='macd')
macd_s_line = go.Scatter(x=data['ymd'], y=data["macds"], line=dict(dash='dashdot', color='black', width=2), macd_s_line = go.Scatter(x=data['ymd'], y=data["macds"], line=dict(dash='dashdot', color='black', width=2), name='macds')
name='macds')
# fast_k_line = go.Scatter(x=hts['date'], y=hts["fast_k"], mode='lines', name='fast_k') # fast_k_line = go.Scatter(x=hts['date'], y=hts["fast_k"], mode='lines', name='fast_k')
slow_k_line = go.Scatter(x=data['ymd'], y=data["slow_k"], line=dict(color='red', width=2), name='slow_k') slow_k_line = go.Scatter(x=data['ymd'], y=data["slow_k"], line=dict(color='red', width=2), name='slow_k')
slow_d_line = go.Scatter(x=data['ymd'], y=data["slow_d"], line=dict(dash='dashdot', color='black', width=2), slow_d_line = go.Scatter(x=data['ymd'], y=data["slow_d"], line=dict(dash='dashdot', color='black', width=2), name='slow_d')
name='slow_d')
rsi_line = go.Scatter(x=data['ymd'], y=data["rsi"], line=dict(color='red', width=2), name='rsi') rsi_line = go.Scatter(x=data['ymd'], y=data["rsi"], line=dict(color='red', width=2), name='rsi')
rsis_line = go.Scatter(x=data['ymd'], y=data["rsis"], line=dict(dash='dashdot', color='black', width=2), rsis_line = go.Scatter(x=data['ymd'], y=data["rsis"], line=dict(dash='dashdot', color='black', width=2), name='rsis')
name='rsis')
disparity_avg5 = go.Scatter(x=data['ymd'], y=data["disparity_avg5"], name="disparity_avg5", disparity_avg5 = go.Scatter(x=data['ymd'], y=data["disparity_avg5"], name="disparity_avg5", line_color='#8F8203')
line_color='#8F8203') disparity_avg20 = go.Scatter(x=data['ymd'], y=data["disparity_avg20"], name="disparity_avg20", line_color='#ff00ff')
disparity_avg20 = go.Scatter(x=data['ymd'], y=data["disparity_avg20"], name="disparity_avg20", disparity_avg60 = go.Scatter(x=data['ymd'], y=data["disparity_avg60"], name="disparity_avg60", line_color='#1469F4')
line_color='#ff00ff')
disparity_avg60 = go.Scatter(x=data['ymd'], y=data["disparity_avg60"], name="disparity_avg60",
line_color='#1469F4')
candle_data = [candle_stick, avg5, avg20, avg60, buy_check, sell_check] candle_data = [candle_stick, avg5, avg20, avg60, buy_check, sell_check]
disparity_data = [disparity_avg5, disparity_avg20, disparity_avg60] disparity_data = [disparity_avg5, disparity_avg20, disparity_avg60]
@@ -448,10 +438,10 @@ class Bithumb_minute(HTS):
bsLine = {} bsLine = {}
size = len(data1["close"]) size = len(data1["close"])
bsLine['buy'] = [-1 for i in range(size)] bsLine['buy'] = [-1.0 for i in range(size)]
bsLine['buy_weight'] = [-1 for i in range(size)] bsLine['buy_weight'] = [-1.0 for i in range(size)]
bsLine['sell'] = [-1 for i in range(size)] bsLine['sell'] = [-1.0 for i in range(size)]
bsLine['sell_weight'] = [-1 for i in range(size)] bsLine['sell_weight'] = [-1.0 for i in range(size)]
for i in range(size): for i in range(size):
if isRealTime: if isRealTime:
@@ -460,18 +450,19 @@ class Bithumb_minute(HTS):
if i > 10: if i > 10:
if data1['slow_k'][i] < 20 and data1['slow_k'][i - 1] < data1['slow_d'][i - 1] and data1['slow_d'][i] < data1['slow_k'][i]: if data1['slow_k'][i] < 20:
if data1['slow_k'][i - 1] < data1['slow_d'][i - 1] and data1['slow_d'][i] < data1['slow_k'][i]:
buy = data1['low'][i] buy = data1['low'][i]
data1['buy'][i] = buy data1['buy'][i] = buy
bsLine['buy'][i] = buy bsLine['buy'][i] = buy
bsLine['buy_weight'][i] = 3 bsLine['buy_weight'][i] = 2.0
if data2['slow_k'][i] < 30 and data1['slow_k'][i] < 30: if data2['slow_k'][i] < 30 and data1['slow_k'][i] < 30:
if data1['slow_k'][i-1] < data1['slow_d'][i-1] and data1['slow_d'][i] < data2['slow_k'][i]: if data1['slow_k'][i-1] < data1['slow_d'][i-1] and data1['slow_d'][i] < data2['slow_k'][i]:
buy = data1['close'][i] buy = data1['close'][i]
data1['buy'][i] = buy data1['buy'][i] = buy
bsLine['buy'][i] = buy bsLine['buy'][i] = buy
bsLine['buy_weight'][i] = 3 bsLine['buy_weight'][i] = 2.0
if data2['slow_k'][i] < 30: if data2['slow_k'][i] < 30:
@@ -480,12 +471,13 @@ class Bithumb_minute(HTS):
buy = data1['close'][i] buy = data1['close'][i]
data1['buy'][i] = buy data1['buy'][i] = buy
bsLine['buy'][i] = buy bsLine['buy'][i] = buy
bsLine['buy_weight'][i] = 1 bsLine['buy_weight'][i] = 1.0
else:
if data1['slow_k'][i-1] < data1['slow_d'][i-1] and data1['slow_d'][i] < data2['slow_k'][i]:
buy = data1['close'][i] buy = data1['close'][i]
data1['buy'][i] = buy data1['buy'][i] = buy
bsLine['buy'][i] = buy bsLine['buy'][i] = buy
bsLine['buy_weight'][i] = 0.1 bsLine['buy_weight'][i] = 1.5
""" """
if data2['slow_k'][i] > 90: if data2['slow_k'][i] > 90:
if (data1['slow_d'][i-1] < data1['slow_k'][i-1] and data1['slow_k'][i] < data1['slow_d'][i]): if (data1['slow_d'][i-1] < data1['slow_k'][i-1] and data1['slow_k'][i] < data1['slow_d'][i]):
@@ -600,7 +592,7 @@ class Bithumb_minute(HTS):
log_df.set_index('datetime', inplace=True) log_df.set_index('datetime', inplace=True)
# 10분이 지난 미체결은 취소한다. # 10분이 지난 미체결은 취소한다.
log_df = self.cancel_order(log_df, log_filename, 5) log_df = self.cancel_order(log_df, log_filename, 10)
if isRealTime: if isRealTime:
if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100: if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100:
tmp = self.bithumb.get_balance(ticker) tmp = self.bithumb.get_balance(ticker)