From e1ea28ab8a0ef5ffe2fb7d5fa351eec8071aba89 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Wed, 14 Feb 2024 02:08:40 +0900 Subject: [PATCH] init --- stock/analysis/AnalyzerSqlite.py | 120 ++++++++++++++++--------------- 1 file changed, 62 insertions(+), 58 deletions(-) diff --git a/stock/analysis/AnalyzerSqlite.py b/stock/analysis/AnalyzerSqlite.py index 648183f..b3fe707 100644 --- a/stock/analysis/AnalyzerSqlite.py +++ b/stock/analysis/AnalyzerSqlite.py @@ -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) )