From 5b474213a0bb2de1911eb369b8fe8feaa1e715fa Mon Sep 17 00:00:00 2001 From: dsyoon Date: Sat, 21 Oct 2023 11:22:13 +0900 Subject: [PATCH] init --- Simulation.py | 74 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 27 deletions(-) diff --git a/Simulation.py b/Simulation.py index 6101f35..d1d2d44 100644 --- a/Simulation.py +++ b/Simulation.py @@ -37,8 +37,7 @@ class Simulation (HTS): data = data.loc[pd.DatetimeIndex(data.index).day == int(given_day[6:])] buy_line = bsLine['buy'][len(bsLine['buy'])-len(data):] buy_weight_line = bsLine['buy_weight'][len(bsLine['buy'])-len(data):] - sell_line = bsLine['sell'][len(bsLine['sell'])-len(data):] - sell_weight_line = bsLine['sell_weight'][len(bsLine['sell']) - len(data):] + sell_line = bsLine['sell'][len(bsLine['buy'])-len(data):] # 그래프 설정을 위한 변수를 생성한다. data = data.astype({'open': 'int', @@ -74,16 +73,13 @@ class Simulation (HTS): buy_colors.append("#0C752E") buy_size.append(10 + (5 * buy_weight_line[i])) - sell_size = [] sell_colors = [] for i in range(len(sell_line)): if sell_line[i] < 0: sell_colors.append("#ffffff") sell_line[i] = nan - sell_size.append(0) else: sell_colors.append("#00ced1") - sell_size.append(10 + (5 * sell_weight_line[i])) volume_colors = [] for i in range(len(buy_line)): @@ -97,19 +93,7 @@ class Simulation (HTS): # 그래프를 설정한다. buy_check = go.Scatter(x=data['date'], y=buy_line, mode='markers', name="buy", marker=dict(size=buy_size, color=buy_colors, line_width=0)) sell_check = go.Scatter(x=data['date'], y=sell_line, mode='markers', name="sell", marker=dict(size=14, color=sell_colors, line_width=0)) - upper = go.Scatter(x=data['date'], y=data["upper"], name="upper", line_color='#000000') - lower = go.Scatter(x=data['date'], y=data["lower"], name="lower", line_color='#000000') - avg5 = go.Scatter(x=data['date'], y=data["avg5"], name="avg5", line_color='#F81191') - avg20 = go.Scatter(x=data['date'], y=data["avg20"], name="avg20", line_color='#097F19') - avg30 = go.Scatter(x=data['date'], y=data["avg30"], name="avg30", line_color='#097F19') - avg60 = go.Scatter(x=data['date'], y=data["avg60"], name="avg60", line_color='#671BEA') - avg120 = go.Scatter(x=data['date'], y=data["avg120"], name="avg120", line_color='#DFB809') - avg200 = go.Scatter(x=data['date'], y=data["avg200"], name="avg200", line_color='#000000') - laggingSpan = go.Scatter(x=data['date'], y=data["laggingSpan"], name='laggingSpan', line_color='#B50ABB') - changeLine = go.Scatter(x=data['date'], y=data["changeLine"], name='changeLine', line_color='#14A200') - baseLine = go.Scatter(x=data['date'], y=data["baseLine"], name='baseLine', line_color='#CF6E0D') - 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', showlegend=False) #volume_line = go.Scatter(x=data['date'], y=data["volume"], mode='lines', name='volume') volume_line = go.Bar(x=data['date'], y=data["volume"], marker_color=volume_colors, name='volume') @@ -131,9 +115,45 @@ class Simulation (HTS): rsi_line = go.Scatter(x=data['date'], y=data["rsi"], line=dict(color='red', width=2), name='rsi') rsis_line = go.Scatter(x=data['date'], y=data["rsis"], line=dict(dash='dashdot', color='black', width=2), name='rsis') + upper = go.Scatter(x=data['date'], y=data["upper"], name="upper", line_color='#000000') + lower = go.Scatter(x=data['date'], y=data["lower"], name="lower", line_color='#000000') + avg5 = go.Scatter(x=data['date'], y=data["avg5"], name="avg5", line_color='#F81191') + avg20 = go.Scatter(x=data['date'], y=data["avg20"], name="avg20", line_color='#097F19') + avg30 = go.Scatter(x=data['date'], y=data["avg30"], name="avg30", line_color='#097F19') + avg60 = go.Scatter(x=data['date'], y=data["avg60"], name="avg60", line_color='#671BEA') + avg120 = go.Scatter(x=data['date'], y=data["avg120"], name="avg120", line_color='#DFB809') + avg200 = go.Scatter(x=data['date'], y=data["avg200"], name="avg200", line_color='#000000') + laggingSpan = go.Scatter(x=data['date'], y=data["laggingSpan"], name='laggingSpan', line_color='#B50ABB') + changeLine = go.Scatter(x=data['date'], y=data["changeLine"], name='changeLine', line_color='#14A200') + baseLine = go.Scatter(x=data['date'], y=data["baseLine"], name='baseLine', line_color='#CF6E0D') + + text_list = [] + for i in range(len(data['macd'])): + text = "open: {}
close: {}
high: {}
low: {}
volume: {}

avg5: {:.2f}
avg20: {:.2f}
avg60: {:.2f}
avg200: {:.2f}

d_avg5: {:.6f}
d_avg20: {:.6f}
d_avg60: {:.6f}
d_avg200: {:.6f}
d_avg5_60: {:.6f}
d_avg5_200: {:.6f}

macd: {:.2f}
slow_k: {:.2f}
rsi: {:.2f}".format( + data['open'][i],data['close'][i],data['high'][i],data['low'][i],data['volume'][i], + data['avg5'][i],data['avg20'][i],data['avg60'][i],data['avg200'][i], + data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i], + max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]) - min(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i]), + max(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i]) - min(data['disparity_avg5'][i], data['disparity_avg20'][i], data['disparity_avg60'][i], data['disparity_avg200'][i]), + data['macd'][i],data['slow_k'][i],data['rsi'][i] + ) + text_list.append(text) + + 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', + showlegend=False, + text=text_list, + hoverinfo="text" + ) + #candle_data = [candle_stick, upper, lower, avg5, avg20, avg30, avg60, avg120, avg200, buy_check, sell_check, laggingSpan, changeLine, baseLine] candle_data = [candle_stick, avg5, avg20, avg30, avg60, avg200, buy_check, sell_check] - #candle_data = [candle_stick, avg200, buy_check, sell_check] + #candle_data = [candle_stick, avg5, avg200, buy_check, sell_check] volume_data = [volume_line] disparity_data = [disparity_avg5, disparity_avg20, disparity_avg30, disparity_avg60, disparity_avg120, disparity_avg200] macd_data = [macd_line, macd_s_line, macd_o_line] @@ -149,20 +169,20 @@ class Simulation (HTS): fig = subplots.make_subplots( rows=6, cols=1, - subplot_titles=("이격도", "스토캐스틱", "RSI", "MACD", "거래량", '캔들'), + subplot_titles=("거래량", "이격도", "스토캐스틱", "RSI", "MACD", '캔들'), #specs=[[{}], [{}], [{}], [{}], [{}], [{}]], shared_xaxes=True, horizontal_spacing=0.03, vertical_spacing=0.01, row_heights=[200, 200, 200, 200, 200, 700] ) - for trace in disparity_data: - fig.append_trace(trace, 1, 1) - for trace in stochastic_data: - fig.append_trace(trace, 2, 1) - for trace in rsi_data: - fig.append_trace(trace, 3, 1) - for trace in macd_data: - fig.append_trace(trace, 4, 1) for trace in volume_data: + fig.append_trace(trace, 1, 1) + for trace in disparity_data: + fig.append_trace(trace, 2, 1) + for trace in stochastic_data: + fig.append_trace(trace, 3, 1) + for trace in rsi_data: + fig.append_trace(trace, 4, 1) + for trace in macd_data: fig.append_trace(trace, 5, 1) for trace in candle_data: fig.append_trace(trace, 6, 1)