This commit is contained in:
dsyoon
2024-02-14 02:08:40 +09:00
parent d5c85a9fae
commit e1ea28ab8a

View File

@@ -122,54 +122,57 @@ class AnalyzerSqlite:
def draw(self, stock):
# 참고) https://sjblog1.tistory.com/45
ymd = list(reversed(stock['ymd']))
open = list(reversed(stock['open']))
close = list(reversed(stock['close']))
high = list(reversed(stock['high']))
low = list(reversed(stock['low']))
volume = list(reversed(stock['volume']))
avg3 = list(reversed(stock['avg3']))
avg4 = list(reversed(stock['avg4']))
avg5 = list(reversed(stock['avg5']))
avg6 = list(reversed(stock['avg6']))
avg10 = list(reversed(stock['avg10']))
avg12 = list(reversed(stock['avg12']))
avg20 = list(reversed(stock['avg20']))
avg36 = list(reversed(stock['avg36']))
avg40 = list(reversed(stock['avg40']))
avg48 = list(reversed(stock['avg48']))
avg60 = list(reversed(stock['avg60']))
avg120 = list(reversed(stock['avg120']))
avg240 = list(reversed(stock['avg240']))
avg480 = list(reversed(stock['avg480']))
disparity_avg5 = list(reversed(stock['disparity_avg5']))
disparity_avg10 = list(reversed(stock['disparity_avg10']))
disparity_avg20 = list(reversed(stock['disparity_avg20']))
disparity_avg60 = list(reversed(stock['disparity_avg60']))
disparity_avg120 = list(reversed(stock['disparity_avg120']))
disparity_avg240 = list(reversed(stock['disparity_avg240']))
disparity_avg480 = list(reversed(stock['disparity_avg480']))
macd = list(reversed(stock['macd']))
macdo = list(reversed(stock['macdo']))
macds = list(reversed(stock['macds']))
rsi = list(reversed(stock['rsi']))
rsis = list(reversed(stock['rsis']))
stochastic_slow_k = list(reversed(stock['slow_k']))
stochastic_slow_d = list(reversed(stock['slow_d']))
bolingerband_upper = list(reversed(stock['upper']))
bolingerband_lower = list(reversed(stock['lower']))
bolingerband_middle = list(reversed(stock['middle']))
envelope_upper = list(reversed(stock['envelope_upper']))
envelope_lower = list(reversed(stock['envelope_lower']))
ichimokucloud_changeLine = list(reversed(stock['ichimokucloud_changeLine']))
ichimokucloud_baseLine = list(reversed(stock['ichimokucloud_baseLine']))
ymd = list(stock['ymd'])
open = list(stock['open'])
close = list(stock['close'])
high = list(stock['high'])
low = list(stock['low'])
volume = list(stock['volume'])
avg3 = list(stock['avg3'])
avg4 = list(stock['avg4'])
avg5 = list(stock['avg5'])
avg6 = list(stock['avg6'])
avg10 = list(stock['avg10'])
avg12 = list(stock['avg12'])
avg20 = list(stock['avg20'])
avg36 = list(stock['avg36'])
avg40 = list(stock['avg40'])
avg48 = list(stock['avg48'])
avg60 = list(stock['avg60'])
avg120 = list(stock['avg120'])
avg240 = list(stock['avg240'])
avg480 = list(stock['avg480'])
disparity_avg5 = list(stock['disparity_avg5'])
disparity_avg10 = list(stock['disparity_avg10'])
disparity_avg20 = list(stock['disparity_avg20'])
disparity_avg60 = list(stock['disparity_avg60'])
disparity_avg120 = list(stock['disparity_avg120'])
disparity_avg240 = list(stock['disparity_avg240'])
disparity_avg480 = list(stock['disparity_avg480'])
macd = list(stock['macd'])
macdo = list(stock['macdo'])
macds = list(stock['macds'])
rsi = list(stock['rsi'])
rsis = list(stock['rsis'])
stochastic_slow_k = list(stock['slow_k'])
stochastic_slow_d = list(stock['slow_d'])
bolingerband_upper = list(stock['upper'])
bolingerband_lower = list(stock['lower'])
bolingerband_middle = list(stock['middle'])
envelope_upper = list(stock['envelope_upper'])
envelope_lower = list(stock['envelope_lower'])
ichimokucloud_changeLine = list(stock['ichimokucloud_changeLine'])
ichimokucloud_baseLine = list(stock['ichimokucloud_baseLine'])
ichimokucloud_laggingSpan = [laggingSpan if -1 < laggingSpan else None for laggingSpan in stock['ichimokucloud_laggingSpan']]
ichimokucloud_laggingSpan = list(reversed(ichimokucloud_laggingSpan))
ichimokucloud_leadingSpan1 = list(reversed(stock['ichimokucloud_leadingSpan1']))
ichimokucloud_leadingSpan2 = list(reversed(stock['ichimokucloud_leadingSpan2']))
trend = list(reversed(stock['trend']))
trend_s = list(reversed(stock['trend_s']))
trend_k = list(reversed(stock['trend_k']))
ichimokucloud_laggingSpan = list(ichimokucloud_laggingSpan)
ichimokucloud_leadingSpan1 = list(stock['ichimokucloud_leadingSpan1'])
ichimokucloud_leadingSpan2 = list(stock['ichimokucloud_leadingSpan2'])
trend = list(stock['trend'])
trend_s = list(stock['trend_s'])
trend_k = list(stock['trend_k'])
last_min = list(stock['last_min'])
last_middle = list(stock['last_middle'])
last_max = list(stock['last_max'])
# general
candle_stick = go.Candlestick(x=ymd,
@@ -201,9 +204,12 @@ class AnalyzerSqlite:
trend = go.Scatter(x=ymd, y=trend, name="trend", line_color='#574e4c')
trend_k = go.Scatter(x=ymd, y=trend_k, name="trend_k", line_color='#ff0000')
trend_s = go.Scatter(x=ymd, y=trend_s, name="trend_s", line_color='#0000ff')
last_min = go.Scatter(x=ymd, y=last_min, name="last_min", line_color='#ff0000')
last_middle = go.Scatter(x=ymd, y=last_middle, name="last_middle", line_color='#574e4c')
last_max = go.Scatter(x=ymd, y=last_max, name="last_max", line_color='#0000ff')
candle_data = [trend, trend_k, trend_s, avg5, avg20, avg60, avg120, avg240, avg480, bolinger_upper, bolinger_lower, changeLine, baseLine, laggingSpan, candle_stick]
candle_data = [trend, trend_k, trend_s, avg5, avg20, avg60, avg120, avg240, avg480, bolinger_upper, bolinger_lower, changeLine, baseLine, laggingSpan, last_min, last_max, last_middle, candle_stick]
#candle_data = [candle_stick, trend, trend_k, trend_s, avg5, avg10, avg20, avg60, avg120, avg240, bolinger_upper, bolinger_lower, env_upper, env_lower, changeLine, baseLine]
#candle_data = [avg5, avg20, trend, trend_k, trend_s, changeLine, baseLine, laggingSpan, candle_stick]
@@ -236,7 +242,7 @@ class AnalyzerSqlite:
fig = subplots.make_subplots(
rows=6, cols=1,
subplot_titles=("MACD", "스토캐스틱", "RSI", "이격도", "거래량", '캔들'),
subplot_titles=("MACD", "스토캐스틱", "RSI", "이격도", "거래량", '캔들', ),
# specs=[[{}], [{}], [{}], [{}], [{}], [{}]],
shared_xaxes=True, horizontal_spacing=0.03, vertical_spacing=0.01,
row_heights=[200, 200, 200, 200, 200, 800]
@@ -286,9 +292,9 @@ class AnalyzerSqlite:
return energy1, energy2
def writeSummary(self, param):
bull = list(reversed(param['bull']))
bear = list(reversed(param['bear']))
even = list(reversed(param['even']))
bull = list(param['bull'])
bear = list(param['bear'])
even = list(param['even'])
ymd = [i for i in range(len(bull))]
bull_line = go.Scatter(x=ymd, y=bull, name="bull", line_color='#FF33A2')
@@ -967,13 +973,12 @@ class AnalyzerSqlite:
stock = {"CODE": item[0], "NAME": item[1], "PRICE":[]}
print("Daily # :", rowid, ", CODE: ", stock['CODE'], ", NAME: ", stock['NAME'])
sql = 'SELECT ymd, close, diff, open, high, low, volume FROM ' + stockTableName + ' where CODE=? order by ymd desc '
sql = 'SELECT ymd, close, diff, open, high, low, volume FROM ' + stockTableName + ' where CODE=? order by ymd '
sql += ' limit 500'
cursor.execute(sql, (stock['CODE'],))
items = cursor.fetchall()
items_reverse = reversed(items)
for item in items_reverse:
for item in items:
stock['PRICE'].append( self.setItem(item) )
self.analyzeAdditionalInfo(stock, cursor)
@@ -998,13 +1003,12 @@ class AnalyzerSqlite:
stock = {"CODE": item[0], "NAME": item[1], "PRICE": []}
print(type, "# :", rowid, ", CODE: ", stock['CODE'], ", NAME: ", stock['NAME'])
sql = 'SELECT ymd, close, diff, open, high, low, volume FROM ' + stockTableName + ' where CODE=? order by ymd desc '
sql = 'SELECT ymd, close, diff, open, high, low, volume FROM ' + stockTableName + ' where CODE=? order by ymd '
#sql += ' limit 350'
cursor.execute(sql, (stock['CODE'],))
items = cursor.fetchall()
items_reverse = reversed(items)
for item in items_reverse:
for item in items:
stock['PRICE'].append(
self.setItem(item)
)