init
This commit is contained in:
95
HTS_etf.py
95
HTS_etf.py
@@ -372,33 +372,60 @@ class HTS_etf(HTS):
|
||||
|
||||
return result
|
||||
|
||||
def getDisparityLimit(self, ticker, RESOURCE_PATH):
|
||||
conn = sqlite3.connect(os.path.join(RESOURCE_PATH, 'hts.db'))
|
||||
cursor = conn.cursor()
|
||||
def getDisparityLimit(self, ticker):
|
||||
|
||||
cursor.execute('SELECT disparity_avg5, disparity_avg20, disparity_avg60, disparity_avg120, disparity_avg240, disparity_avg480, disparity_avg1500 FROM hts WHERE CODE=? order by ymd, hms', (ticker['stock_code'],))
|
||||
avg = {"avg5": [], "avg20": [], "avg60": [], "avg120": [], "avg240": [], "avg480": [], "avg1500": []}
|
||||
|
||||
self.connect2DB("hts.db")
|
||||
|
||||
self.cursor.execute('SELECT ymd, hms, close FROM hts WHERE CODE=? order by ymd, hms', (ticker["stock_code"],))
|
||||
|
||||
q = self.getQ()
|
||||
db_result = self.cursor.fetchall()
|
||||
for rows in db_result:
|
||||
close = rows[2]
|
||||
|
||||
q['q_5'].enqueue(close)
|
||||
q['q_20'].enqueue(close)
|
||||
q['q_60'].enqueue(close)
|
||||
q['q_120'].enqueue(close)
|
||||
q['q_240'].enqueue(close)
|
||||
q['q_480'].enqueue(close)
|
||||
q['q_1500'].enqueue(close)
|
||||
|
||||
disparity_avg5 = close / q['q_5'].avg()
|
||||
disparity_avg20 = close / q['q_20'].avg()
|
||||
disparity_avg60 = close / q['q_60'].avg()
|
||||
disparity_avg120 = close / q['q_120'].avg()
|
||||
disparity_avg240 = close / q['q_240'].avg()
|
||||
disparity_avg480 = close / q['q_480'].avg()
|
||||
disparity_avg1500 = close / q['q_1500'].avg()
|
||||
|
||||
avg["avg5"].append(disparity_avg5)
|
||||
avg["avg20"].append(disparity_avg20)
|
||||
avg["avg60"].append(disparity_avg60)
|
||||
avg["avg120"].append(disparity_avg120)
|
||||
avg["avg240"].append(disparity_avg240)
|
||||
avg["avg480"].append(disparity_avg480)
|
||||
avg["avg1500"].append(disparity_avg1500)
|
||||
|
||||
self.disconnect()
|
||||
|
||||
disparity = {
|
||||
'avg': {},
|
||||
"limit_top_1": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_bottom_1": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_top_3": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_bottom_3": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None}
|
||||
"limit_bottom_3": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_top_5": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_bottom_5": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_top_10": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_bottom_10": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_top_20": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_bottom_20": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_top_50": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None},
|
||||
"limit_bottom_50": {"avg5": None, "avg20": None, "avg60": None, "avg120": None, "avg240": None, "avg480": None, "avg1500": None}
|
||||
}
|
||||
avg = {"avg5": [], "avg20": [], "avg60": [], "avg120": [], "avg240": [], "avg480": [], "avg1500": []}
|
||||
db_result = cursor.fetchall()
|
||||
for rows in db_result:
|
||||
avg["avg5"].append(float(rows[0]))
|
||||
avg["avg20"].append(float(rows[1]))
|
||||
avg["avg60"].append(float(rows[2]))
|
||||
avg["avg120"].append(float(rows[3]))
|
||||
avg["avg240"].append(float(rows[4]))
|
||||
avg["avg480"].append(float(rows[5]))
|
||||
avg["avg1500"].append(float(rows[6]))
|
||||
|
||||
cursor.close()
|
||||
conn.close()
|
||||
|
||||
disparity['avg'] = avg
|
||||
disparity_1500 = sorted(list(set(avg['avg1500'])), reverse=True)
|
||||
disparity_480 = sorted(list(set(avg['avg480'])), reverse=True)
|
||||
@@ -408,22 +435,22 @@ class HTS_etf(HTS):
|
||||
disparity_20 = sorted(list(set(avg['avg20'])), reverse=True)
|
||||
disparity_5 = sorted(list(set(avg['avg5'])), reverse=True)
|
||||
|
||||
poses = [1, 3]
|
||||
poses = [1, 3, 5, 10, 20, 50]
|
||||
for pos in poses:
|
||||
disparity['limit_top_'+str(pos)]['avg1500'] = disparity_1500[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg1500'] = disparity_1500[len(disparity_1500)-pos]
|
||||
disparity['limit_top_'+str(pos)]['avg480'] = disparity_480[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg480'] = disparity_480[len(disparity_480)-pos]
|
||||
disparity['limit_top_'+str(pos)]['avg240'] = disparity_240[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg240'] = disparity_240[len(disparity_240)-pos]
|
||||
disparity['limit_top_'+str(pos)]['avg120'] = disparity_120[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg120'] = disparity_120[len(disparity_120)-pos]
|
||||
disparity['limit_top_'+str(pos)]['avg60'] = disparity_60[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg60'] = disparity_60[len(disparity_60)-pos]
|
||||
disparity['limit_top_'+str(pos)]['avg20'] = disparity_20[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg20'] = disparity_20[len(disparity_20)-pos]
|
||||
disparity['limit_top_'+str(pos)]['avg5'] = disparity_5[pos]
|
||||
disparity['limit_bottom_'+str(pos)]['avg5'] = disparity_5[len(disparity_5)-pos]
|
||||
disparity['limit_top_' + str(pos)]['avg1500'] = disparity_1500[pos - 1]
|
||||
disparity['limit_bottom_' + str(pos)]['avg1500'] = disparity_1500[len(disparity_1500) - pos - 1]
|
||||
disparity['limit_top_' + str(pos)]['avg480'] = disparity_480[pos]
|
||||
disparity['limit_bottom_' + str(pos)]['avg480'] = disparity_480[len(disparity_480) - pos - 1]
|
||||
disparity['limit_top_' + str(pos)]['avg240'] = disparity_240[pos]
|
||||
disparity['limit_bottom_' + str(pos)]['avg240'] = disparity_240[len(disparity_240) - pos - 1]
|
||||
disparity['limit_top_' + str(pos)]['avg120'] = disparity_120[pos]
|
||||
disparity['limit_bottom_' + str(pos)]['avg120'] = disparity_120[len(disparity_120) - pos - 1]
|
||||
disparity['limit_top_' + str(pos)]['avg60'] = disparity_60[pos]
|
||||
disparity['limit_bottom_' + str(pos)]['avg60'] = disparity_60[len(disparity_60) - pos - 1]
|
||||
disparity['limit_top_' + str(pos)]['avg20'] = disparity_20[pos]
|
||||
disparity['limit_bottom_' + str(pos)]['avg20'] = disparity_20[len(disparity_20) - pos - 1]
|
||||
disparity['limit_top_' + str(pos)]['avg5'] = disparity_5[pos]
|
||||
disparity['limit_bottom_' + str(pos)]['avg5'] = disparity_5[len(disparity_5) - pos - 1]
|
||||
|
||||
return disparity
|
||||
|
||||
|
||||
Reference in New Issue
Block a user