bolinger band 추가
This commit is contained in:
@@ -380,7 +380,7 @@ class Analyzer:
|
|||||||
if ((item_code in self.fnguide and not self.fnguide[item_code]) or (item_code == "KOSPI" or item_code == "KOSDAK") or result[3] == ''):
|
if ((item_code in self.fnguide and not self.fnguide[item_code]) or (item_code == "KOSPI" or item_code == "KOSDAK") or result[3] == ''):
|
||||||
rowid += 1
|
rowid += 1
|
||||||
# 다음 종목을 가져옴
|
# 다음 종목을 가져옴
|
||||||
cursor.execute('SELECT CODE, NAME, PRICE, STOCHASTIC FROM ' + self.tableName + ' WHERE rowid=?', (rowid,))
|
cursor.execute('SELECT CODE, NAME, PRICE, STOCHASTIC, BOLINGERBAND FROM ' + self.tableName + ' WHERE rowid=?', (rowid,))
|
||||||
result = cursor.fetchone()
|
result = cursor.fetchone()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -389,65 +389,48 @@ class Analyzer:
|
|||||||
result_3 = result[3].replace("NaN", "0")
|
result_3 = result[3].replace("NaN", "0")
|
||||||
if result[3]==None:
|
if result[3]==None:
|
||||||
rowid += 1
|
rowid += 1
|
||||||
cursor.execute('SELECT CODE, NAME, PRICE, STOCHASTIC FROM ' + self.tableName + ' WHERE rowid=?', (rowid,))
|
cursor.execute('SELECT CODE, NAME, PRICE, STOCHASTIC, BOLINGERBAND FROM ' + self.tableName + ' WHERE rowid=?', (rowid,))
|
||||||
result = cursor.fetchone()
|
result = cursor.fetchone()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
stock = {"CODE": result[0], "NAME": result[1], "PRICE": json.loads(result[2]), "STOCHASTIC": json.loads(result_3)}
|
stock = {"CODE": result[0], "NAME": result[1], "PRICE": json.loads(result[2]), "STOCHASTIC": json.loads(result_3), "BOLINGERBAND": json.loads(result[4])}
|
||||||
|
|
||||||
last_index = self.get_last_index(stock)
|
last_index = self.get_last_index(stock)
|
||||||
STOCK = stock['PRICE']
|
STOCK = stock['PRICE']
|
||||||
STOCHASTIC = stock['STOCHASTIC']
|
STOCHASTIC = stock['STOCHASTIC']
|
||||||
|
BOLINGERBAND = stock['BOLINGERBAND']
|
||||||
|
|
||||||
stochastic_score = STOCHASTIC[last_index]['slow_k']
|
stochastic_score = STOCHASTIC[last_index]['slow_k']
|
||||||
if stochastic_score < 50:
|
|
||||||
|
# upper: 20, lower: 10
|
||||||
|
# 14 = (14-10) / (20-10) = 0.4
|
||||||
|
# 18 = (18-10) / (20-10) = 0.8
|
||||||
|
# 5 = (5-10) / (20-10) = -0.5
|
||||||
|
if BOLINGERBAND[last_index]['upper'] == BOLINGERBAND[last_index]['lower']:
|
||||||
|
bolingerband_score = 0
|
||||||
|
else:
|
||||||
|
bolingerband_score = round(((STOCK[last_index]['close']-BOLINGERBAND[last_index]['lower'])/(BOLINGERBAND[last_index]['upper']-BOLINGERBAND[last_index]['lower'])), 2)
|
||||||
|
|
||||||
|
|
||||||
|
if stochastic_score < 50 and bolingerband_score < 0.5:
|
||||||
|
|
||||||
# 종목 상태 체크 분석
|
# 종목 상태 체크 분석
|
||||||
state, buy_price = self.analyzeFinalScore(last_index, STOCK, STOCHASTIC)
|
state, buy_price = self.analyzeFinalScore(last_index, STOCK, STOCHASTIC)
|
||||||
|
|
||||||
if state != "":
|
if state != "":
|
||||||
fig = self.draw(stock)
|
fig = self.draw(stock)
|
||||||
title = "%s (%s), %s, buy_price (%d), stochastic(%.3f) 차트" % (item_name, item_code, state, buy_price, stochastic_score)
|
title = "%s (%s), %s, buy_price (%d), stochastic(%.3f), bolingerband(%.3f) 차트" % (item_name, item_code, state, buy_price, stochastic_score, bolingerband_score)
|
||||||
fig['layout'].update(title=title)
|
fig['layout'].update(title=title)
|
||||||
fileName = "%s/%s__%.3f__%s_%s.html" % (outPath, state, stochastic_score, item_name.replace(" ", ""), item_code)
|
fileName = "%s/%s__%.3f__%.3f__%s_%s.html" % (outPath, state, stochastic_score, bolingerband_score, item_name.replace(" ", ""), item_code)
|
||||||
po.write_html(fig, file=fileName, auto_open=False)
|
po.write_html(fig, file=fileName, auto_open=False)
|
||||||
else:
|
else:
|
||||||
if STOCK[last_index]['volume'] > 1000000:
|
if STOCK[last_index]['volume'] > 1000000:
|
||||||
fig = self.draw(stock)
|
fig = self.draw(stock)
|
||||||
title = "%s (%s) buy_price (%d), stochastic(%.3f) 차트"%(item_name, item_code, buy_price, stochastic_score)
|
title = "%s (%s) buy_price (%d), stochastic(%.3f), bolingerband(%.3f) 차트"%(item_name, item_code, buy_price, stochastic_score, bolingerband_score)
|
||||||
fig['layout'].update(title=title)
|
fig['layout'].update(title=title)
|
||||||
fileName = "%s/%.3f__%s_%s.html"%(tmp_path, stochastic_score, item_name.replace(" ", ""), item_code)
|
fileName = "%s/%.3f__%.3f__%s_%s.html"%(tmp_path, bolingerband_score, stochastic_score, item_name.replace(" ", ""), item_code)
|
||||||
po.write_html(fig, file=fileName, auto_open=False)
|
po.write_html(fig, file=fileName, auto_open=False)
|
||||||
"""
|
|
||||||
try:
|
|
||||||
stock = {"CODE": result[0], "NAME": result[1], "PRICE": json.loads(result[2]), "STOCHASTIC": json.loads(result_3)}
|
|
||||||
|
|
||||||
last_index = self.get_last_index(stock)
|
|
||||||
STOCK = stock['PRICE']
|
|
||||||
STOCHASTIC = stock['STOCHASTIC']
|
|
||||||
|
|
||||||
stochastic_score = STOCHASTIC[last_index]['slow_k']
|
|
||||||
if stochastic_score < 50:
|
|
||||||
|
|
||||||
# 종목 상태 체크 분석
|
|
||||||
state, buy_price = self.analyzeFinalScore(last_index, STOCK, STOCHASTIC)
|
|
||||||
|
|
||||||
if state != "":
|
|
||||||
fig = self.draw(stock)
|
|
||||||
title = "%s (%s), %s, buy_price (%d), stochastic(%.3f) 차트" % (item_name, item_code, state, buy_price, stochastic_score)
|
|
||||||
fig['layout'].update(title=title)
|
|
||||||
fileName = "%s/%s__%.3f__%s_%s.html" % (outPath, state, stochastic_score, item_name.replace(" ", ""), item_code)
|
|
||||||
po.write_html(fig, file=fileName, auto_open=False)
|
|
||||||
else:
|
|
||||||
if STOCK[last_index]['volume'] > 1000000:
|
|
||||||
fig = self.draw(stock)
|
|
||||||
title = "%s (%s) buy_price (%d), stochastic(%.3f) 차트"%(item_name, item_code, buy_price, stochastic_score)
|
|
||||||
fig['layout'].update(title=title)
|
|
||||||
fileName = "%s/%.3f__%s_%s.html"%(tmp_path, stochastic_score, item_name.replace(" ", ""), item_code)
|
|
||||||
po.write_html(fig, file=fileName, auto_open=False)
|
|
||||||
except:
|
|
||||||
print ("error")
|
|
||||||
"""
|
|
||||||
rowid += 1
|
rowid += 1
|
||||||
cursor.execute('SELECT * FROM ' + self.tableName + ' WHERE rowid=?', (rowid,))
|
cursor.execute('SELECT * FROM ' + self.tableName + ' WHERE rowid=?', (rowid,))
|
||||||
result = cursor.fetchone()
|
result = cursor.fetchone()
|
||||||
@@ -508,7 +491,9 @@ if __name__ == "__main__":
|
|||||||
analyzer.analyzeStochastic()
|
analyzer.analyzeStochastic()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
analyzer.analyze()
|
#######
|
||||||
|
# analyzer.analyze()
|
||||||
|
#######
|
||||||
|
|
||||||
day = datetime.today().strftime("%Y%m%d")
|
day = datetime.today().strftime("%Y%m%d")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user