This commit is contained in:
dsyoon
2022-08-13 17:16:47 +09:00
parent 8ec05b8447
commit f9ffa363fa
5 changed files with 100 additions and 126 deletions

View File

@@ -285,9 +285,13 @@ class Stock2Vector(HTS):
Y = np.asarray(Y, dtype='int64')
return X, Y
def getVectorData(self, data, type="avg10", VECTOR_SIZE = 32):
def getVectorData(self, data, VECTOR_SIZE = 32):
return self.getVectorData_2(data, VECTOR_SIZE)
def getVectorData_1(self, data, VECTOR_SIZE):
df = self.buySellChecker.getVectorFeature(data)
# avg10, 볼린져밴드 상단과 하단의 차이, rsi, avg3만 이용한다.
# channel1: avg10, channel2: diff_upper_lower, channel3: abs_avg_2, channel4: abs_avg_3
avg10 = df['avg10'].tolist()
diff_upper_lower = df['diff_upper_lower'].tolist()
@@ -313,11 +317,55 @@ class Stock2Vector(HTS):
h = 0
batch_X.append(X)
batch_Y.append(label[i])
"""
if label[i] == 2:
batch_Y.append([0, 0, 1])
elif label[i] == 1:
batch_Y.append([0, 1, 0])
else:
batch_Y.append([1, 0, 0])
"""
batch_X = np.asarray(batch_X)
batch_Y = np.asarray(batch_Y, dtype='int64')
return batch_X, batch_Y
def getVectorData_2(self, data, VECTOR_SIZE = 32):
df = self.buySellChecker.getVectorFeature(data)
# avg10, 볼린져밴드 상단과 하단의 차이, rsi, avg3만 이용한다.
# channel1: avg10, channel2: diff_upper_lower, channel3: abs_avg_2, channel4: abs_avg_3
avg3 = df['avg3'].tolist()
avg6 = df['avg6'].tolist()
avg9 = df['avg9'].tolist()
diff_upper_lower = df['diff_upper_lower'].tolist()
rsi = df['rsi'].tolist()
abs_avg_3 = df['abs_avg_3'].tolist()
size = len(avg10)
batch_X, batch_Y = [], []
X = np.zeros((4, VECTOR_SIZE, VECTOR_SIZE))
label = df['label'].tolist()
for i in range(VECTOR_SIZE * VECTOR_SIZE - 1, size):
w, h = 0, 0
for j in range(i - VECTOR_SIZE * VECTOR_SIZE + 1, i + 1):
X[0, h, w] = avg10[j]
X[1, h, w] = diff_upper_lower[j]
X[2, h, w] = abs_avg_3[j]
X[3, h, w] = rsi[j]
w += 1
if w >= VECTOR_SIZE:
w = 0
h += 1
if h >= VECTOR_SIZE:
h = 0
batch_X.append(X)
batch_Y.append(label[i])
batch_X = np.asarray(batch_X)
batch_Y = np.asarray(batch_Y, dtype='int64')
return batch_X, batch_Y
def getDataset3D(self, data, VECTOR_SIZE = 299):
df, minmax_df = self.preprocessData(data)